您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:使用python svm实现直接可用的手写数字识别

51自学网 2021-10-30 22:23:03
  python
这篇教程使用python svm实现直接可用的手写数字识别写得很实用,希望能帮到您。

python svm实现手写数字识别——直接可用

最近在做个围棋识别的项目,需要识别下面的数字,如下图:

在这里插入图片描述

我发现现在网上很多代码是良莠不齐,…真是一言难尽,于是记录一下,能够运行成功并识别成功的一个源码。

1、训练

1.1、训练数据集下载——已转化成csv文件

下载地址

1.2 、训练源码

train.py

import pandas as pdfrom sklearn.decomposition import PCAfrom sklearn import svmfrom sklearn.externals import joblibimport timeif __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 joblibimport cv2if __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、预测结果

在这里插入图片描述

到此这篇关于使用python svm实现直接可用的手写数字识别的文章就介绍到这了,更多相关python svm 手写数字识别内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


Python Pandas的简单使用教程
Python实现端口扫描器的示例代码
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。