手写数字识别的几种实现方法
我使用了手寫數字數據庫MNIST的一個子集,并做了多種處理
程序中附有數據庫,完整的數據庫在這兒下載,程序在這兒下載
實現的算法有:
模板匹配
類中心歐式距離
貝葉斯分類算法
夾角余弦距離
獎懲算法
增量校正算法
LMSE算法
特征提取方法:圖像分割為若干小塊,計算筆畫像素占小塊總像素數的比例
每一個算法都在獨立的cpp文件中,
我直接使用源數據庫而未作處理,最初使用圖像的5x5分割,
為了提高精度,后來又使用7x7分割,
下載程序中已經有這兩種分割的特征數據
主程序使用函數指針調用測試各個算法的實現,每次僅測試一個,如果你愿意,可以用一個數組,一次性全部運行測試
因為有些算法使用的5x5,有些使用的7x7,
在運行時請注意,
如果這個算法的cpp文件中出現了"digits-crop/train-feature/feature_7x7_",則相應主程序應為string test_file_name("digits-crop/test-feature/feature_7x7_");再出現變量feature_的地方替換為feature_7x7_num
如果這個算法的cpp文件中出現了"digits-crop/train-feature/feature_",則相應主程序應為string test_file_name("digits-crop/test-feature/feature_");再出現變量feature_的地方替換為feature_num
const int feature_num=25;
const int feature_7x7_num=49;
在頭文件"main_test.h"中定義
總結
以上是生活随笔為你收集整理的手写数字识别的几种实现方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WEB课程介绍
- 下一篇: 东部战区驾驶员培训一年两次分别是几月份