基於機器學習中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秒才出結果。
車牌字元識別演算法目前已經很成熟了,大家如果有興趣,可以在網上找一找大牛做的,小編只是拋磚引玉。
※AI和機器學習運算 儲存系統需「給力」
※專註研究機器學習的晶元製造商
TAG:機器學習 |