|
通過前幾天對svm的學習,結合最近對.net的winform的學習,昨天在以前的libsvm的基礎之上寫了一個簡單的ocr數(shù)字識別程序。 對于libsvm的使用最重要的有兩點: 1 針對不同的使用選取不同核函數(shù). 2 訓練樣本的有效性和代表性,樣本的覆蓋面約大越好。 針對數(shù)字ocr的識別,特征向量的選取就非常的重要。由于是對ocr和libsvm的嘗試,所以我的訓練使用的是手寫的圖片,拖動鼠標,在picturbox控件上畫的數(shù)字圖片,既能訓練,也能用來識別。樣本數(shù)據(jù)保存在數(shù)據(jù)庫中,需要識別的時候載入數(shù)據(jù)庫的樣本數(shù)據(jù)訓練該分類識別器。 圖片選擇160*160的大小,特征向量選擇:垂直投影,暫時沒有經(jīng)過邊緣輪廓提取。簡單的把該圖片分成16*16網(wǎng)格, 每個網(wǎng)格的特征向量值:黑色的像素點/總的像素點,每個數(shù)字樣本垂直投影后總共現(xiàn)只有16個特征向量,每個向量也就是垂直網(wǎng)格列的合計。依次順序為:1,2,3,4…..16 ,為0(也就是空白)的特征向量在訓練的時候也沒有過濾掉。
效果:還不是特別滿意: (1):1的識別率100% (2):3 和8的識別率只有40%,經(jīng)常會3識別成8,8識別成3,看來圖像沒有處理,特征向量的選擇有很大的關系。 (3):懲罰因子選擇的是100。
Ps:本人不善于表達。可惜,在這個blog上面不能貼圖,也不能上傳demo軟件。只是由于對編程的愛好,促使我把自己的一些東西拿來和大伙分享,希望能夠起到拋磚引玉的作用。也希望有更多的大蝦來指點,交流。 |
|
|