使用python svm實(shí)現(xiàn)直接可用的手寫數(shù)字識(shí)別
python svm實(shí)現(xiàn)手寫數(shù)字識(shí)別——直接可用
最近在做個(gè)圍棋識(shí)別的項(xiàng)目,需要識(shí)別下面的數(shù)字,如下圖:
我發(fā)現(xiàn)現(xiàn)在網(wǎng)上很多代碼是良莠不齊,…真是一言難盡,于是記錄一下,能夠運(yùn)行成功并識(shí)別成功的一個(gè)源碼。
1、訓(xùn)練
1.1、訓(xùn)練數(shù)據(jù)集下載——已轉(zhuǎn)化成csv文件
1.2 、訓(xùn)練源碼
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訓(xùn)練 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') # 計(jì)算準(zhǔn)確率 score = svc.score(test_x, test_label) print(u'準(zhǔn)確率:%f,花費(fèi)時(shí)間:%.2fs' % (score, time.time() - t))
2、預(yù)測(cè)單張圖片
2.1、待預(yù)測(cè)圖像
2.2、預(yù)測(cè)源碼
from sklearn.externals import joblib import cv2 if __name__ =="__main__": img = cv2.imread("img_temp.jpg", 0) #test = img.reshape(1,1444) 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] # 參數(shù)含義分別是: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、預(yù)測(cè)結(jié)果
到此這篇關(guān)于使用python svm實(shí)現(xiàn)直接可用的手寫數(shù)字識(shí)別的文章就介紹到這了,更多相關(guān)python svm 手寫數(shù)字識(shí)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python內(nèi)置數(shù)據(jù)類型list各方法的性能測(cè)試過程解析
- python內(nèi)置數(shù)據(jù)類型之列表操作
- Python中內(nèi)置數(shù)據(jù)類型list,tuple,dict,set的區(qū)別和用法
- Python內(nèi)置數(shù)據(jù)類型詳解
- python基礎(chǔ)教程之基本內(nèi)置數(shù)據(jù)類型介紹
- 使用Python+OpenCV進(jìn)行卡類型及16位卡號(hào)數(shù)字的OCR功能
- python計(jì)算數(shù)字或者數(shù)組的階乘的實(shí)現(xiàn)
- python數(shù)字轉(zhuǎn)對(duì)應(yīng)中文的方法總結(jié)
- Python數(shù)字/字符串補(bǔ)零操作實(shí)例代碼
- 怎么用Python識(shí)別手勢(shì)數(shù)字
- Python的內(nèi)置數(shù)據(jù)類型中的數(shù)字
相關(guān)文章
Python實(shí)現(xiàn)Matplotlib,Seaborn動(dòng)態(tài)數(shù)據(jù)圖的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何讓Matplotlib、Seaborn的靜態(tài)數(shù)據(jù)圖動(dòng)起來,變得栩栩如生。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以學(xué)習(xí)一下2022-05-05基于python實(shí)現(xiàn)垂直爬蟲系統(tǒng)的方法詳解
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)垂直爬蟲系統(tǒng)的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03搭建Python的Django框架環(huán)境并建立和運(yùn)行第一個(gè)App的教程
時(shí)至今日Django仍然是人氣最高的Web開發(fā)框架,MVC結(jié)構(gòu)清晰內(nèi)置功能強(qiáng)大,這里我們就來共同學(xué)習(xí)搭建Python的Django框架環(huán)境并建立和運(yùn)行第一個(gè)App的教程2016-07-07python 利用turtle庫(kù)繪制笑臉和哭臉的例子
今天小編就為大家分享一篇python 利用turtle庫(kù)繪制笑臉和哭臉的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11python matplotlib餅狀圖參數(shù)及用法解析
這篇文章主要介紹了python matplotlib餅狀圖參數(shù)及用法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11