基於機器學習中KNN算法的車牌字符識別

  小編的畢業設計做的就是車牌識別系統,主要包含車牌定位、字符分割、車牌識別模塊。先附上做的系統界面圖。



  關於實現車牌定位和字符分割的算法,大家可以去網上找相關的論文,本文的重點是介紹利用機器學習的KNN算法實現簡單的字符識別。


  KNN算法全稱k-NearestNeighbor,是機器學習分類領域最簡單的算法之一。它的主要思想是將待預測的樣本和已知分類的樣本集中每一個樣本進行“距離計算”,選擇前K個“距離”最短的樣本,在這K個樣本中,分類次數出現最多的那個分類就被視爲待預測樣本的所屬分類。


  “距離計算”因樣本而不同,車牌字符識別中的樣本當然是字符圖像。每一張字符圖像都是長寬相同的二值圖像,本文是16*32的二值圖像。這樣每一張字符圖像都和16*32的二維數組一一對應,並且數組的取值只能爲0或1。爲了方便比較,我們將16*32的二維數組排成長度爲512的一維數組,則“距離計算”的公式如下。

                         

  其中xi爲待識別字符圖像對應的一維數組的第i個值,xki爲字符樣本集第k個樣本對應的一維數組的第i個值。


  本文的字符集包含了省份簡稱、英文字母、數字,一共有3500張圖像。其中英文字符“A”的所有圖像如下。




  KNN算法有一個很明顯的缺點就是要想預測樣本的分類,就要把樣本和已知分類的樣本集中的所有樣本進行比較,這樣算法的時間複雜度就比較高。還有算法的實際效果很大程度上也取決於已知分類的樣本集質量。本文系統的字符識別的正確率只有80%左右,並且每次都要等待大約6、7秒纔出結果。


  車牌字符識別算法目前已經很成熟了,大家如果有興趣,可以在網上找一找大牛做的,小編只是拋磚引玉。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章