文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2017.01.035
中文引用格式: 文武,喬龍輝,何鵬. 基于自適應差分進化極限學習機的車牌識別算法[J].電子技術應用,2017,43(1):133-136,140.
英文引用格式: Wen Wu,Qiao Longhui,He Peng. License plate recognition based on self-adaptive evolutionary extreme learning machine[J].Application of Electronic Technique,2017,43(1):133-136,140.
0 引言
作為智能交通系統的重要組成部分,車牌識別系統常用來監視交通狀況、監督車輛行為,還可以用于停車場出入管理。雖然過去十年車牌識別技術取得了很大的成就,并在很多實際場合中得以應用,但從復雜場景的圖像中識別車牌仍然是一個艱巨的任務[1]。
車牌識別一般由三部分組成:車牌定位、字符分割和字符識別。車牌定位有兩種主要的實現方法:一種是基于車牌區域顏色信息的,根據車牌區域特定的顏色信息組合來定位車牌[2];另一種是基于邊緣或紋理信息的,根據車牌區域邊緣信息較其他區域清晰來檢測車牌[3]。第一種方法對光照條件和照相機設置敏感,第二種方法當車牌褪色嚴重時,會由于檢測不到邊緣而導致定位失敗。投影法[4]、連通域法[5]和模板匹配法[6]是實現字符分割的主要方式。投影法要求字符字跡完整且沒有噪音干擾,易受光照影響。連通域法對車牌的傾斜不敏感,但不能用來處理字符斷裂和字符粘連。常用的字符識別方法有:神經網絡(BPNN和CNN)、SVM和模板匹配法。傳統的神經網絡和SVM用于字符識別時有較高的正確率,但如果參數選擇不合適會出現學習速度慢、過擬合和局部最優等缺陷[7]。模板匹配法簡單實用,但在字符出現形變、粘連等問題時會導致模板匹配法識別率降低[8]。
相較于其他常用車牌識別算法,本文所用方法在以下幾點做出了改進:(1)綜合利用顏色定位和邊緣檢測的優點,克服了單一用其中一類方法的缺陷;(2)對垂直投影法做改進,先粗分割,再精確分割,有效解決了字符的粘連、斷裂等問題;(3)用SaE-ELM來訓練模型,縮短了訓練時間,提升了字符識別率。
1 車牌定位
本文將車牌的面積、紋理、顏色、長寬比等多重特征結合起來,提出一種車牌定位的改進算法,具體執行步驟如下所示:
(1)輸入彩色車牌圖像,如圖1(a),預處理(高斯模糊和灰度化)后得到灰度圖,然后用Sobel算子得到車牌圖像的垂直邊緣(由于車頭排氣孔、車標等的影響,檢測水平邊緣會影響最后的連接結果),接著用大津法對邊緣檢測圖進行二值化并做形態學閉運算。此時可以獲得很多車牌候選區,如圖1(b)所示。
(2)將輸入的彩色圖轉成HSV圖像,若當前像素的H、S、V分量分別滿足表1所示藍色對應的H、S、V分量,則灰度值置為255。同理若滿足黃色各分量,灰度值置為200;滿足白色各分量,灰度值置為150;滿足黑色各分量,灰度值置為100;其他為0。構造出的五級灰度圖如圖1(c)所示。依次取每級灰度圖,分別做二值化和閉運算操作。以藍色分量為例,255為閾值,將灰度值不為255的全部置0,可得藍色分量候選區,如圖1(d)所示,其他分量的處理過程依此類推。
(3)將圖1(b)與圖1(d)做“與”運算可得圖1(e),候選區數量大大減少,然后借助與車牌的面積、長寬比等特征可以篩去部分偽車牌,最后由SVM分類器對每個候選車牌做分類判斷操作即可得到真正的車牌,如圖1(f)所示。對于一般場景下的車牌,經過上述3步即可定位到車牌區域。但對于某些特殊的場景,步驟(1)或步驟(2)可能存在不同程度的失效,導致最后的定位效果不佳。這里的解決辦法是用SVM對候選車牌進行判斷,若SVM判斷結果大于1,則定位結束。否則,用顏色定位或邊緣檢測進行再次定位。
閉運算操作時,車牌可能會錯分成兩個區域。這是因為車牌中的第2或第3個位置存在某些垂直邊緣不明顯的字符(比如“E”、“1”等),解決辦法是對車牌區域進行擴展,然后對擴展區域再進行一次邊緣檢測。對于低照度圖像,使用Sobel算子可能會出現邊緣提取不清楚或缺失嚴重的問題,可以改用Scharr算子來提取邊緣。完整的定位流程圖如圖2所示。本文所用定位方法綜合多種因素,具有較好的魯棒性。
2 字符分割
2.1 初步分割
傳統投影法對字符進行切分時,需要字符字跡完整且沒有噪聲干擾,此時二值圖像的垂直投影曲線會有清晰的波峰波谷,可以根據波峰波谷的跳變位置來確定字符分割點。由于受到噪聲、光照等影響,車牌垂直投影的波峰和波谷往往不明顯,圖3所示為噪聲嚴重車牌以及它的垂直投影曲線。
經分析,字符的投影曲線多數為單峰,少數為雙峰和三峰,如:H、M和斷裂字符為雙峰,川為三峰。利用該特征來對垂直投影法進行改進的步驟如下:
(1)水平掃描車牌二值圖像,根據字符區域跳變次數不小于14的經驗去除上下邊框和鉚釘。求得字符高度charHeight,單個字符寬度charWidth=2charHeight。
(2)列掃描車牌二值圖像,統計每一列白色像素點個數。設置投影閾值threshValue,完成垂直投影,并將投影結果保存在arrayTotal數組中。
(3)創建字符類Character和動態鏈表listCharacter,字符起點橫坐標記為start,中心點centerPoint,終點end。掃描arrayTotal數組,當arrayTotal[start]>0&&arrayTotal[end]=0,記當前字符寬度width[m]=end-start。依次執行以下步驟:①若2charWidth<width[m]<3charWidth,則為2個字符粘連,取其投影中點進行分割;若3charWidth<width[m]<4charWidth,則為3個字符粘連,根據charWidth確定分割的位置。②若width[m]+width[m+1]<charWidth,同時滿足兩字符間距差小于(12/45)charWidth,則判定字符發生斷裂,需對字符做合并操作。③若width[m]<0.5charWidth<width[m+1],寬度width[m]內投影值大于0.8charHeight的像素個數為num。當num小于預先設定閾值,則當前字符被判定為噪聲點,否則就被判定為數字“1”。
(4)重復步驟(3),將字符寫入鏈表listCharacter。直至遍歷邊界最右端且listCharacter中字符個數不小于7為止。
2.2 精確分割
上述步驟完成了車牌字符的初步分割,解決了字符的斷裂和粘連問題。但仍然存在車牌左右邊框的干擾,使得車牌的左右邊界并非車牌字符起始和結束位置。因此還需根據先驗知識對字符坐標值進行修正,從而完成精確分割,具體流程如下:
(1)統計listCharacter中字符個數N及對應寬度Wi,求出寬度的均值Wa與標準差Ws。
若Wi不滿足|Wi-Wa|<Ws,則將其從listCharacter中剔除,對其余字符求Wa和Ws,循環直至所有Wi都符合|Wi-Wa|<Ws,則此時Wa為字符的統計標準寬度。
(2)選定優先分割字符Cmin(與Wa差異最小的字符)。根據標準車牌字符寬度及間距等先驗信息(單字符寬45 mm,高90 mm,間隔符寬10 mm,第二和第三字符間隔34 mm,其余字符間隔均為12 mm),計算出Wa與標準寬度的比值p(如式(3)所示)。根據這一比值計算出Cmin的centerPoint在表2所處的坐標范圍,從而確定Cmin在車牌字符排列中的序號。
(3)以Cmin的centerPoint為基準點,Wa為尺度,根據表2計算出所有字符的開始和結束坐標,然后將所有坐標信息重新寫入listCharacter,字符的精確分割即可通過這些坐標值來完成。分割效果如表3所示。
3 字符識別
3.1 SaE-ELM
極限學習機是Huang Guangbin[9]提出的一種新的基于單隱層前饋神經網絡的學習方法。該方法只需訓練前設置好隱層節點數目,執行過程中隨機產生輸入權值與隱層偏差(無需通過迭代反復刷新調整),最終把復雜的問題轉化成求矩陣的Moore-Penrose廣義逆。由于隨機產生網絡的輸入權值和隱層的偏置向量參數,所以不能保證訓練出的ELM模型能夠達到最優。
本文采用基于SaE-ELM的方法來識別車牌字符。該方法利用自適應差分進化算法優化ELM網絡的輸入權值與隱層偏差,初始化后循環“突變→交叉→選擇”來生成最優參數。接著通過測試設置最優隱層節點數目,選擇適當的激勵函數計算出隱層輸出,并用最小二乘法計算出輸出權值。實驗驗證表明,該方法不僅保留了ELM算法訓練的快速性,而且具有更好的泛化能力和準確性,避免了ELM模型的隨機性。假設訓練集S包含了N個任意不同的樣本,S={(xj,tj)|xj∈Rn,tj∈Rm,j=1,2,…,N},具有L個隱層單元的SaE-ELM算法執行步驟如下:
(1)首先初始化原始種群,原始種群是包含了所有輸入權值與隱藏層偏差的NP組向量,每組向量作為一個個體向量,如式(4)所示。
其中,wi和bi是隨機賦值的,wi是輸入權值,bi是隱層偏差(i=1,2,…,L)。L是隱層節點數,G是進化代數,k=1,2,…,NP,NP表示種群大小,這里NP=10。
(2)然后通過式(5)計算出隱層輸出矩陣Hk,G,輸出權值矩陣?茁k,G則可以通過式(6)得到。
(3)接著通過變異操作獲取變異個體向量vk,G,變異過程中有4種變異策略可以選擇,如表4所示。通過Pl,G可以實現變異策略的自適應選擇,Pl,G是概率參數,表示在第G代變異操作中使用策略“l”的概率。
變異因子F用于控制步長,服從N(0.6,0.3)的正態分布,K在0~1區間隨機取值,r1~r5是1~NP內互不相等的隨機整數。概率參數Pl,G的更新規則可參考文獻[10],變異操作完成后,將變異向量與θk,G進行交叉操作可得試驗向量
交叉操作通過式(9)完成。
其中,jrand是[1,L]隨機正整數,randj是0~1之間隨機數,交叉概率CR服從N(0.3,0.1)的正態分布。重復突變、交叉與選擇,直至最大迭代次數得到最優θk,G,通過式(6)計算出輸出權值β,即可獲得模型。
3.2 字符識別
首先將字符尺寸統一為20×40,然后用方向梯度直方圖來提取字符特征(單元10×10,塊大小20×20,塊步長5×5,每個單元對應的向量是9維),則可得180維的輸入特征向量。接著用SaE-ELM訓練3個字符分類器。漢字分類器用來識別第一個字符,采用400個隱層節點和31個輸出節點。字母分類器用來識別第二個字符,采用300個隱藏層節點和24個輸出節點。字母數字分類器則用來識別剩下的5個字符,采用300個隱層節點和34個輸出節點。在2.50 GHz CPU、2 GB內存、vs2013編程的主機上進行測試,用4 000個字符(1 435個中文字符,1 000個數字,1 565個英文字符)來訓練,訓練時間為144 s(訓練用時最長的時間)。取500個字符做測試,這里是分開測試,漢字分類器識別率為96.5%,字母數字分類器的識別率為97.5%,字母分類器識別率為98.0%。從表5可知(以字母為例),在識別率與BP神經網絡和SVM區別不大的情況下,基于SaE-ELM的車牌字符識別大大縮短了訓練時間,且提高了字符識別的速度。本文算法可應用于實際復雜場景,測試效果如圖4所示。
4 結束語
經過大量測試,上述方法可以有效地識別各種復雜場景中的車牌。但所提出的方法前提是要把彩色圖轉為灰度圖,未來可考慮直接對彩色圖直接進行處理,終端完成圖像的采集工作,然后通過云平臺,把相對復雜的圖像計算部分分到多個服務器上同時進行處理。還可以考慮將深度學習用于模型的訓練,提高中文字符和相似字符的識別準確率。車牌識別技術的發展為其今后在車輛跟蹤、交通監控、停車場出入管理等領域的應用打下了良好的基礎。
參考文獻
[1] TIAN B.Hierarchical and networked vehicle surveillance in its:A survey[J].IEEE Trans.Intell.Transp.Syst.,2015,16(2):557-580.
[2] SHI X,ZHAO W,SHEN Y.Automatic license plate recognition system based on color image processing[J].Lecture Notes in Computer Science,2005,3483(4):1159-1168.
[3] ZHENG D,ZHAO Y,WANG J.An efficient method of license plate location[J].Pattern Recog.Lett.,2005,26(15):2431-2438.
[4] 張學海.車牌字符分割方法研究與實現[D].成都:西南交通大學,2010.
[5] 甘玲,林小晶.基于連通域提取的車牌字符分割算法[J].計算機仿真,2011,28(4):336-339.
[6] 穆麗娟,籍焱.基于新模板的算法在車牌字符分割中的應用[J].計算機工程與應用,2012,48(19):191-196.
[7] HONG T,GOPALAKRISHNAM A K.License plate extraction and recognition of a Thai vehicle based on MSER and BPNN[C].Knowledge and Smart Technology(KST),2015 7th International Conference on,Chonburi,2015:48-53.
[8] NEJATI M,MAJIDI A,JALALAT M.License plate recognition based on edge histogram analysis and classifier ensemble[C].2015 Signal Processing and Intelligent Systems Conference(SPIS),Tehran,2015:48-52.
[9] HUANG G B,WANG D H,LAN Y.Extreme learning machines:a survey[J].International Journal of Machine Learning and Cybernetics,2011,2(2):107-122.
[10] CAO J,LIN Z,HUANG G B.Self-adaptive evolutionary extreme learning machine[J].Neural Process.Lett.,2012,36(3):285-305.
作者信息:
文 武1,2,喬龍輝1,何 鵬1
(1.重慶郵電大學,重慶400065;2.重慶信科設計有限公司,重慶400065)