基于SVM的数字手势识别模型
1.将一张图片扩展为n张图片
from keras.preprocessing.image import ImageDataGenerator, array_to_img, img_to_array, load_imgdatagen = ImageDataGenerator(rotation_range=30,width_shift_range=0.2,height_shift_range=0.2,shear_range=0.2,zoom_range=0.2,horizontal_flip=True,fill_mode='nearest')img = load_img('E:\\1.jpg')
x = img_to_array(img)
x = x.reshape((1,) + x.shape)i = 0
for batch in datagen.flow(x, batch_size=1,save_to_dir='E:\Pictures_ML', save_prefix='num', save_format='jpeg'):i += 1if i >10: break
2.将图片压缩为64*48像素
from glob import glob
from PIL import Image
import ossource_dir = 'E:\Pictures_ML'
target_dir = 'E:\Pictures_64'filenames = glob('{}/*'.format(source_dir))
print(filenames)
for filename in filenames:with Image.open(filename) as im:width, height = im.sizeprint(filename, width, height, os.path.getsize(filename))threshold = 2*64*64for filename in filenames:filesize = os.path.getsize(filename)if filesize >= threshold:print(filename)if not os.path.exists(target_dir):os.makedirs(target_dir)for filename in filenames:filesize = os.path.getsize(filename)if filesize >= threshold:print(filename)with Image.open(filename) as im:width, height = im.sizenew_width = 64new_height =48print('adjusted size:', new_width, new_height)resized_im = im.resize((new_width, new_height))output_filename = filename.replace(source_dir, target_dir)resized_im.save(output_filename)
3.将文件夹内图片转pyh5格式
from PIL import Image
import os
import numpy
import h5py
from sklearn.model_selection import train_test_splitdirs = os.listdir("E:\Pictures_64")
Y = []
X = []
for filename in dirs:print(filename)label = int(filename.split('_')[0])print(label)Y.append(label)im = Image.open("E:\Pictures_64//{}".format(filename)).convert('RGB')mat = numpy.asarray(im)mat_1=mat.flatten()X.append(mat_1)
print('-------------------------分割线------------------------------------')file = h5py.File("E:\\filename.h5","a")
file.create_dataset('X', data=numpy.array(X))
file.create_dataset('Y', data=numpy.array(Y))
file.close()
4.读取h5文件内容训练模型
from PIL import Image
import os
import numpy
import h5py
import time
from sklearn.model_selection import train_test_split
from sklearn import svm
from sklearn import datasetsdata = h5py.File("E:\\filename.h5","r")
X_data = data['X']
Y_data = data['Y']print(X_data.shape)
print(Y_data.shape)print('-------------------------分割线------------------------------------')X_arr=numpy.array(X_data)
Y_arr=numpy.array(Y_data)X_train, X_test, y_train, y_test = train_test_split(X_arr,Y_arr, test_size=0.25, random_state=10)
print(y_train.shape)
print(y_test.shape)print('-------------------------分割线------------------------------------')
from sklearn.preprocessing import StandardScaler
from sklearn.svm import LinearSVC
ss = StandardScaler()
X_train = ss.fit_transform(X_train)
X_test = ss.transform(X_test)
lsvc = LinearSVC()
lsvc.fit(X_train, y_train)
y_predict = lsvc.predict(X_test)
print ('The Accuracy of Linear SVC is', lsvc.score(X_test, y_test))print('-------------------------分割线------------------------------------')
z_predict=lsvc.predict(X_arr)
print(z_predict[200])from sklearn.externals import joblib
# 保存的模型的文件名
file = 'E:\\svm.joblib'
# 保存模型
joblib.dump(lsvc,file)
# 读取模型
svm_model = joblib.load(file)
5.读取保存的模型并测试
from PIL import Image
import os
import numpy
import h5py
import time
from sklearn.model_selection import train_test_split
from sklearn import svm
from sklearn import datasets
from sklearn.externals import joblib# 保存的模型的文件名
file = "E:\\svm.joblib"
# 读取模型
lsvc= joblib.load(file)data = h5py.File("E:\\filename.h5","r")
X_data = data['X']
Y_data = data['Y']X_arr=numpy.array(X_data)
Y_arr=numpy.array(Y_data)Z_predict=lsvc.predict(X_arr)
print(Z_predict[209])import osos.system("explorer c:\program files")
基于SVM的数字手势识别模型相关推荐
- dnn模型 list index out of range_基于svm的财务预警模型
前言 本文将我国A股上市公司作为研究对象,选取了A股 2015-2019 年度被 ST 或被 *ST上市公司,剔除了部分非财务原因导致ST或*ST的上市公司.财务指标选择了T-3期的资产负债率.流动比 ...
- 数字孪生模型构建理论及应用
源自:计算机集成制造系统 作者:陶飞 张贺 戚庆林 徐 俊 孙铮 胡天亮 刘晓军 刘庭煜 关俊涛 陈畅宇 孟凡伟 张辰源 李志远 魏永利 朱铭浩 肖斌 摘 要 数字孪生作 ...
- Android基于卷积神经网络的数字手势识别识别数字手势0-10 Android studio编译
这篇博客主要基于我做的一个数字手势识别APP,具体分享下如何一步步训练一个卷积神经网络模型(CNN)模型,然后把模型集成到Android Studio中,开发一个数字手势识别APP.Android基于 ...
- 基于SVM技术的手写数字识别
老师常说,在人工智能未发展起来之前,SVM技术是一统江湖的,SVM常常听到,但究竟是什么呢?最近研究了一下基于SVM技术的手写数字识别.你没有看错,又是手写数字识别,就是喜欢这个手写数字识别,没办法( ...
- r语言 svm 大样本_r语言基于SVM模型的文本分类研究 附数据代码
1 Perceptron 与 SVM 概念介绍 1.1 感知机 (Perceptron) 感知机( perceptron ) 1957 年由 Rosenblatt 提出,是神经网络与支持向 量机的基础 ...
- ML之SVM:基于SVM(支持向量机)之SVC算法对手写数字图片识别进行预测
ML之SVM:基于SVM(支持向量机)之SVC算法对手写数字图片识别进行预测 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 X_train = ss.fit_transform(X ...
- 持久化的基于L2正则化和平均滑动模型的MNIST手写数字识别模型
持久化的基于L2正则化和平均滑动模型的MNIST手写数字识别模型 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献Tensorflow实战Google深度学习框架 实验平台: Tens ...
- 孪生神经网络_轩辕实验室:数字孪生:基于机器学习的汽车数字孪生模型
本文来源:A. Rassolkin, T. Vaimann, A. Kallaste, and V. Kuts, "Digital twin for propulsion drive of ...
- 网格向量必须包含特征点。_【专题研究】基于SVM支持向量机模型的选股策略
研究过集成学习中的随机森林和XGBoost后,本文将介绍一种更传统的机器学习方法:SVM支持向量机.SVM由于其较高的准确度,并且能够解决非线性分类问题,曾一度成为非常流行的机器学习算法.本文分别介绍 ...
最新文章
- 【Plant Cell】突破!加入一种酵母,可显著提高水稻氮利用率及产量!
- nginx中的数组结构ngx_array_t
- 鸟哥的Linux私房菜(基础篇)-第三章、主机规划与磁盘分区(三.1. Linux与硬件的搭配)
- 2259: matrix
- hdu 1568 Fibonacci 对数。。
- Qt工作笔记-使用QpropertyAnimation实现控件上下滑动的效果
- 如何用Pygame写游戏(五)
- android 快速布局,快速实现android的协同布局CoordinatorLayout
- 大数据平台搭建_【他山之石】自研搭建Hadoop数据科学开发环境,促进大数据平台建设降本增效...
- linux的pending状态怎么退出,状态显示Pending Contract
- 在计算机上配置超级终端,解决办法:如何在XP系统中设置超级终端? xp超级终端设置方法...
- R语言:企业风险分析(2)【蒙特卡罗模拟,Monte-Carlo Simulation】
- Pr零基础入门指南笔记二
- CAD看图软件查看CAD图纸
- 5w对讲机需要执照吗
- OVN 流表基础 -- 基于 kubeOVN (一)
- python使用Axes3D画三维图加入legend图例时报错AttributeError: ‘Poly3DCollection‘ object has no attribute ‘_edgecolo
- VMware:继续使用 Adob​​e Flash 管理您的 vCenter
- javafx 实现绘图板
- 家用双wan口路由器推荐_路由器串口和以太口 家用双wan口路由器推荐
热门文章
- 华中科大微型计算机接口技术课后答案,2018考研华中科技大学811微机原理及接口技术考试大纲...
- python吃显卡还是内存条_加内存条还是加显卡??
- (转)程序员不爱读书,但这很不明智
- OBS Stduio 捕获屏幕预览黑屏 win10解决方案
- shell脚本--重启服务
- Windows 10 设置不用Microsoft账户登录,将Administrator与Microsoft账户解绑,注销Microsoft账户
- msvcr110.dll php,windows,_msvcr110.dll丢失,vcredist_x64.exe设置失败,windows - phpStudy
- 主题 支持 php 7.2,最新七星修改二开正米酷影视7.2完整版/支持自定义解析/支持PHP7.0及以上...
- 【正点原子MP157连载】第四十一章 RGB转HDMI实验-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
- 飞得更高——记用友研发20年