校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 使用python svm實現直接可用的手寫數字識別

使用python svm實現直接可用的手寫數字識別

熱門標簽:外呼并發線路 ai電銷機器人源碼 長沙高頻外呼系統原理是什么 百度地圖標注沒有了 西藏房產智能外呼系統要多少錢 宿遷星美防封電銷卡 ai電話機器人哪里好 地圖標注審核表 湛江智能外呼系統廠家

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、預測結果

到此這篇關于使用python svm實現直接可用的手寫數字識別的文章就介紹到這了,更多相關python svm 手寫數字識別內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python內置數據類型list各方法的性能測試過程解析
  • python內置數據類型之列表操作
  • Python中內置數據類型list,tuple,dict,set的區別和用法
  • Python內置數據類型詳解
  • python基礎教程之基本內置數據類型介紹
  • 使用Python+OpenCV進行卡類型及16位卡號數字的OCR功能
  • python計算數字或者數組的階乘的實現
  • python數字轉對應中文的方法總結
  • Python數字/字符串補零操作實例代碼
  • 怎么用Python識別手勢數字
  • Python的內置數據類型中的數字

標簽:林芝 普洱 漯河 盤錦 南平 寧夏 大同 海南

巨人網絡通訊聲明:本文標題《使用python svm實現直接可用的手寫數字識別》,本文關鍵詞  使用,python,svm,實現,直接,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《使用python svm實現直接可用的手寫數字識別》相關的同類信息!
  • 本頁收集關于使用python svm實現直接可用的手寫數字識別的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 桦川县| 沿河| 射阳县| 宁晋县| 澄江县| 泽库县| 威海市| 鲁甸县| 子洲县| 晋宁县| 南岸区| 黎川县| 青州市| 丹阳市| 鹤山市| 灌阳县| 天津市| 永顺县| 扎囊县| 延津县| 固镇县| 宁河县| 开封县| 达拉特旗| 阿坝| 郴州市| 青铜峡市| 乐昌市| 翁牛特旗| 桃园市| 海晏县| 凤庆县| 达尔| 远安县| 登封市| 沛县| 三门峡市| 佛冈县| 昂仁县| 兰考县| 潞西市|