使用python svm实现直接可用的手写数字识别
作者:翟羽嚄 时间:2023-06-09 13:57:19
python svm实现手写数字识别——直接可用
最近在做个围棋识别的项目,需要识别下面的数字,如下图:
我发现现在网上很多代码是良莠不齐,…真是一言难尽,于是记录一下,能够运行成功并识别成功的一个源码。
1、训练
1.1、训练数据集下载——已转化成csv文件
下载地址
1.2 、训练源码
train.py
import pandas as pd
from sklearn.decomposition import PCA
from sklearn import svm
from sklearn.externals import joblib
import time
if __name__ =="__main__":
train_num = 5000
test_num = 7000
data = pd.read_csv('train.csv')
train_data = data.values[0:train_num,1:]
train_label = data.values[0:train_num,0]
test_data = data.values[train_num:test_num,1:]
test_label = data.values[train_num:test_num,0]
t = time.time()
#PCA降维
pca = PCA(n_components=0.8, whiten=True)
print('start pca...')
train_x = pca.fit_transform(train_data)
test_x = pca.transform(test_data)
print(train_x.shape)
# svm训练
print('start svc...')
svc = svm.SVC(kernel = 'rbf', C = 10)
svc.fit(train_x,train_label)
pre = svc.predict(test_x)
#保存模型
joblib.dump(svc, 'model.m')
joblib.dump(pca, 'pca.m')
# 计算准确率
score = svc.score(test_x, test_label)
print(u'准确率:%f,花费时间:%.2fs' % (score, time.time() - t))
2、预测单张图片
2.1、待预测图像
2.2、预测源码
from sklearn.externals import joblib
import cv2
if __name__ =="__main__":
img = cv2.imread("img_temp.jpg", 0)
#test = img.reshape(1,1444)![在这里插入图片描述](https://img-blog.csdnimg.cn/20210630133136668.jpg#pic_center)
Tp_x = 10
Tp_y = 10
Tp_width = 20
Tp_height = 20
img_temp = img[Tp_y:Tp_y + Tp_height, Tp_x:Tp_x + Tp_width] # 参数含义分别是:y、y+h、x、x+w
cv2.namedWindow("src", 0)
cv2.imshow("src", img_temp)
cv2.waitKey(1000)
[height, width] = img_temp.shape
print(width, height)
res_img = cv2.resize(img_temp, (28, 28))
test = res_img.reshape(1, 784)
#加载模型
svc = joblib.load("model.m")
pca = joblib.load("pca.m")
# svm
print('start pca...')
test_x = pca.transform(test)
print(test_x.shape)
pre = svc.predict(test_x)
print(pre[0])
2.3、预测结果
来源:https://blog.csdn.net/mao_hui_fei/article/details/118358036
标签:python,svm,手写数字识别
0
投稿
猜你喜欢
python爬虫的数据库连接问题【推荐】
2024-01-19 18:26:41
javascript基本包装类型介绍
2024-05-05 09:05:09
详解Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库
2024-01-24 03:27:04
比较文档位置
2008-04-03 13:24:00
golang cache带索引超时缓存库实战示例
2023-07-24 04:43:11
深入php内核之php in array
2024-05-13 09:23:55
python 执行文件时额外参数获取的实例
2022-09-24 05:46:54
mysql 8.0.14 安装配置方法图文教程
2024-01-22 10:28:08
python使用js2py库运行js代码
2022-09-06 17:06:55
python微信跳一跳系列之棋子定位颜色识别
2023-01-16 04:52:49
mysql 通配符(sql 高级过滤)
2024-01-24 17:15:39
用VB编写ActiveX DLL实现ASP编程
2008-10-21 21:28:00
如何优化JavaScript脚本的性能
2008-02-19 21:47:00
asp中判断服务器是否安装了某种组件的函数
2011-02-16 10:53:00
在keras中实现查看其训练loss值
2021-03-05 05:29:44
python实现字符串和字典的转换
2023-03-02 02:57:18
Python中的基本数据类型介绍
2023-07-21 22:26:26
Vue+express+Socket实现聊天功能
2024-06-05 09:19:03
python使用requests实现发送带文件请求功能
2023-11-03 14:23:13
解决SQL Server的“此数据库没有有效所有者”问题
2011-12-14 18:29:35