李 震,唐莉萍
(東華大學 信息科學與技術學院,上海 201620)
基于低功耗嵌入式系統的車牌定位算法
李 震,唐莉萍
(東華大學 信息科學與技術學院,上海 201620)
文章給出了自行設計的在低功耗嵌入式平臺上實現車牌定位檢測的算法。首先通過Sobel水平算子對車牌圖像進行垂直邊緣檢測,運用形態學方法對邊緣圖像進行閉運算得到連通圖塊。然后根據連通區域輪廓確定最小外接矩形,解決車牌位置斷節問題,得到車牌候選區域。最后根據車牌特征對提取出的車牌候選區域進行篩選實現準確的車牌定位。實驗結果證明了該算法的有效性,而且在復雜背景下也具有較好的魯棒性和自適應性。
車牌定位;Sobel算子;形態學;閉運算
基于ARM平臺主要使用ARM9、ARM11或者Cortex-A8處理器,例如文獻[2]用三星的ARM9芯片讀取CMOS攝像頭采集的車輛圖像進行車牌區域判斷;文獻[3]將Cortex-A8芯片運行于Linux操作系統,并借助于OpenCV圖形圖像處理庫中成熟的函數實現車牌的定位;張海霞選擇ARM11開發板(S3C6410為微處理器核心)作為嵌入式車牌識別系統的核心硬件電路[4]。基于DSP平臺的主流處理器是德州儀器TMS系列,例如左宗鵬等人采用TMS320DM642讀取SAA7113采集的圖像數據,通過改進的BP神經網絡算法實現車牌定位和識別[5]。基于FPGA平臺的內核是定制的軟核處理器,如鄭存芳等人用FPGA通過定制的Nios Ⅱ軟核調用接口讀取CCD攝像頭的圖像數據,運用邊緣檢測方法進行車牌定位[6];鄭存芳對比基于PC或DSP的車牌識別系統,提出了基于FPGA的車牌識別系統研究與實現方案[7]。還有研究人員將FPGA和DSP結合在一起實現車牌識別[8]。
以上文獻給出的嵌入式平臺,硬件平臺采用的處理器大多為中高端產品,產品的投入成本較高。在軟件方面有的需要運行在特定的操作系統,有些需要借助特殊的圖形圖像處理軟件,將會引起處理器內存開銷過大,影響系統的運行速度。本文研究將低端、低功耗嵌入式處理器引入移動車牌識別系統,無需操作系統,通過對相關圖像處理算法進行改進,直接在硬件電路中完成車牌定位,為后續字符的正確分割和識別提供保障。
本系統采用Aptina公司的MT9P031 CMOS傳感器作為圖像采集器件,這種傳感器具有高分辨率、高幀率、與處理器接口簡單的特點。圖像有效像素為500萬,在全分辨率條件下幀率為14幀/s,在640×480像素下的幀率可達50幀/s,與處理器連接僅需要兩線串行接口。主控處理器選用意法半導體公司的STM32F429ZGT6,其內核為Cortex-M4,最高主頻達180 MHz,內存容量為256 KB,自帶8~14位并行Camera接口,傳輸速率為54 Mb/s。系統要在硬件中直接對圖像進行各種處理,需要足夠的內存交換數據,因此增加64 KB外部存儲器件SDRAM。為了能保存歷史數據,硬件部分預留了SD卡接口。根據移動車牌識別的特點,系統與上位機采用WiFi通信模式。系統采用鋰電池供電,當檢測的圖像不變時,系統自動進入休眠狀態,每200 ms自動喚醒一次。若檢測到圖像有變化時,立即執行圖像處理算法,這樣可以有效降低移動車牌識別的系統功耗。硬件系統框圖如圖1所示。

圖1 系統硬件結構框圖
車牌定位是從一張拍攝到的圖像中定位出車牌的位置,并提取出車牌圖像。由于Cortex-M4的硬件資源有限,要求算法的復雜度不能太高。為了保證定位算法的實時性,需要對CMOS傳感器采集到的圖像進行截取,在含有車輛運動的全景圖像中,截取640×480像素的車輛目標圖像作為目標車輛的最佳區域,再在該區域進行車牌定位。定位算法包括以下幾個步驟:
(1)圖像二值化處理;
(2)二值化圖像快速邊緣檢測;
我國會計監督工作的成效、問題和未來展望——基于財政部2018年會計信息質量檢查公告的研究劉勝良22-8
(3)確定車牌候選區域;
(4)候選車牌區的外接矩形劃定;
(5)對候選車牌區篩選確定最終車牌區域。
2.1 快速邊緣檢測的實現
我國車牌的顏色特征主要分為4類:藍底白字(藍牌),黃底黑字(黃牌),白底黑字(白牌),黑底白字(黑牌)。車牌顏色雖然不一,但是它們具有共同的特點:(1)都有矩形線段圍成的邊框;(2)邊框內的字符呈水平排列,并且分布間隔較均勻;(3)均表現為豐富的紋理特征,很容易捕捉到邊緣信息;(4)車牌具有統一的標準尺寸。針對以上特點,可以運用邊緣檢測算法對圖像進行初步處理。
圖像處理算法中常用的邊緣檢測算子包括Laplacian算子、Canny算子和Sobel算子。Laplacian算子是一種求圖像的二階導數算子,它將在圖像邊緣處產生一個陡峭的交叉。在通常情況下,Laplacian算子也能檢測出邊緣,但是其檢測方向不分水平和垂直,算法的復雜度高。Canny邊緣檢測算子具有很好的邊緣檢測性能,在圖像處理中得到了廣泛的應用。但是Canny邊緣檢測需要完成對圖像的高斯濾波去噪,從原始灰度圖中求出水平、垂直兩個方向的梯度圖,以及綜合梯度圖,再對3種梯度圖進行非極大抑制,進行邊緣連接等步驟,在PC中都非常難以保證算法的實時性。Sobel算子原理是對圖像求一階的水平與垂直方向導數,根據導數值的大小判斷是否是邊緣。Sobel算子分為垂直邊緣算子和水平邊緣算子,其卷積模版為:

3種邊緣檢測算法得到的結果如圖2所示。對比邊緣檢測結果,Canny檢測獲得的邊緣最清晰,Sobel邊緣檢測的清晰度結果介于Canny檢測和Laplacian之間。雖然Canny檢測獲得的邊緣最清晰,從車牌定位的目的考慮,邊緣檢測的最終目的并不是要刻畫出圖像清晰的邊緣,而只是要確定車牌的一個具體區域。并且Canny邊緣檢測算法的復雜度遠高于Sobel算子,不僅無法滿足處理器實時處理的要求,還會消耗處理器的大量內存,在硬件電路中無法實現,因此邊緣檢測算法選用Sobel算子。

圖2 Sobel算子、Laplacian算子、Canny算子邊緣檢測結果對比
由于嵌入式系統要求執行的圖像處理算法必須運算量小,占用RAM少,所以采用以塊代點的方法,將圖像分成大小為64×48的100個小塊,因車輛是左右對稱結構,按照從圖像底部往上尋找的方式找對稱塊,這是因為大多數車牌的位置離圖像的底部較近。經實驗數據測定和分析,當找到15對對稱的圖像小塊后,車牌就能快速鎖定在這30個區域塊中。然后對找到的30個區域塊進行Sobel算子邊緣檢測。
由于汽車的車牌邊框是有規則的邊緣,并且車牌的字符是有規律的排列,因此相對于水平邊緣車牌的垂直邊緣更為豐富。而汽車的車身卻有豐富的水平邊緣,垂直邊緣不明顯。根據車牌和車輛邊緣特征的不同,本文僅使用Sobel算子對找到的30個區域塊進行水平方向求導,這樣可以大大減小處理器的內存開銷,降低算法的復雜度,提高處理器的運算速度,在硬件電路上實現邊緣檢測。作為對比,對圖像進行了垂直方向和水平垂直兩個方向同時求導,結果如圖3所示。從檢測結果可以看到汽車的前端車牌附近有很多的水平邊緣,這是由車頭位置的排氣孔、汽車廠家標志等產生的。這些多余的水平邊緣很容易干擾車牌定位的結果,導致最終搜索不到真正的車牌位置。因此本文采用Sobel水平算子實現快速邊緣檢測。

圖3 Sobel算子不同方向求導結果效果對比
2.2 確定車牌候選區域
在提取車牌圖像中垂直方向的邊緣后,需要得到的二值邊緣圖像進行數學形態學運算,將車牌區域連通為一個閉合的區域。圖像處理中常用的數學形態學運算分別為開運算和閉運算。開運算是對圖像先腐蝕再膨脹,能夠使得圖像的輪廓變得更加光滑,并且可以斷開狹窄的間斷以及消除細小的突出。閉運算是對圖像先膨脹再腐蝕,與開運算相反的是,閉運算通常能夠彌補狹窄的間斷以及細長的鴻溝,并且能夠消除細小的空洞,填補輪廓線中的斷裂。針對2.1節Sobel水平求導得到的邊緣圖像進行開、閉兩種運算操作,結果如圖4所示。

圖4 閉運算開運算對比圖
對比圖4可以發現由于腐蝕的效果太強,導致開運算膨脹沒有效果,圖像中幾乎沒有有用信息。而閉運算則將圖像中車牌區域附近的一些邊緣連成圖塊,包括車牌中的字符也被連成圖塊,這些連接成塊的區域形狀不一,組成了車牌的候選區域,如圖4(a)所示。
由圖4結果對比可知,對得到的二值邊緣圖像只需要進行閉運算,就可以完成對候選區域的確定。這樣可以進一步減少運算量,提高車牌定位的實時性。
2.3 字符外接矩形斷節處理
我國標準車輛的車牌是由一個省份漢字、一個城市字母和5個字母或阿拉伯數字組成的字符序列。每個字符的寬度為45 mm,高度為90 mm,間隔符的寬度為10 mm,除了第二個和第三個字符之間的間距為 34 mm 外,字符之間的間隔寬度為12 mm,如圖5(b)車牌滬F C0439。
圖5(b)中字符F和字符C的距離大于其他相鄰字符的距離。這個距離越大,字符區域輪廓就越大,需要的字符外接矩形也就越大。當字符外接矩形設置較小時,導致滬F和C0439分隔開,這樣就只能選中距離較近的字符,如圖5(b)。由于車牌中間的字符斷開,必將影響車牌的準確定位。經過反復實驗,在保證相鄰字符距離最大時,車牌字符之間不發生斷節現象,取字符外接矩形的寬度為29個像素點,高度為9個像素點。

圖5 斷節對定位的影響
經過以上步驟處理后的圖像,能夠定位出幾個車牌的候選區域。這些候選區域中,除了真正的車牌以外,其余的是汽車標志、車燈或者排氣孔等,如圖6所示。

圖6 車牌候選區
為了在候選區域中正確定位車牌位置,可以根據我國車牌的特點以及安裝特征進行判斷。實際車牌的長寬比為定值約為2.85~3.33,圖像中車牌的像素比也應該在此范圍;車牌一般安裝在車輛的正中心偏下位置,外接矩形的角度應該小于10度;外接矩形的中心應該位于圖像中心線附近。根據這三個條件可設置一個車牌判別公式:
f(A,R,CX)=Σλixi
其中,A為外接矩形的角度,R為車牌的長寬比,CX為外接矩形的中心橫坐標,λi為3個條件的權重,xi為限制條件。將候選區外接矩形的3個參數代入這個公式,滿足f(A,R,CX)>0.9時就能準確找到車牌的位置。
將本文的車牌定位算法在本設計中的硬件平臺上進行車牌定位檢測。使用的嵌入式處理器為STM32F429,芯片運行主頻為180 MHz。圖7給出了該算法在實際應用中檢測的部分圖片的效果。

圖7 部分車牌定位結果
為了驗證算法的效率和準確率,本文對不同時間段的照片進行了實驗,白天照片測試了65張,傍晚的照片測試了60張,夜晚的照片測試了62張,實驗結果如表1所示。

表1 定位算法結果
從實驗結果分析,白天定位準確率較低,原因是陽光的光線照射對車牌邊緣檢測存在干擾,而且更多的邊緣信息導致每張照片定位的平均耗時也相對較長。傍晚的
陽光沒有那么強烈,攝像頭能夠捕獲到相對柔和的照片,光線對邊緣信息的干擾會相對減少,因此準確率上升的同時耗時也有所下降。夜晚時,光線明顯不足,導致車牌邊緣信息存在一定的丟失,導致檢測耗時下降和準確率下降。
本文提出一種基于低功耗嵌入式系統的車牌定位檢測算法。首先使用Sobel水平算子對車牌圖像進行垂直邊緣檢測,運用形態學方法對邊緣圖像進行閉運算得到連通圖塊。再根據連通區域輪廓確定最小外接矩形,解決車牌位置斷節問題,從而得到車牌候選區域,最后根據車牌結構特征對提取出的車牌候選區域進行篩選,得到準確的車牌定位。實驗結果表明該方法有效,而且在復雜背景下也具有較好的魯棒性和自適應性。
[1] ANAGNOSTOPOULOS C N E, ANAGNOSTOPOULOS I E, LOUMOS V, et al. A license plate-recognition algorithm for intelligent transportation system applications[J]. IEEE Transactions on Intelligent transportation systems, 2006, 7(3): 377-392.
[2] 孔繁榮, 丁志剛. 基于嵌入式的車輛牌照識別系統設計[J]. 計算機應用與軟件, 2015, 32(10): 223-226.
[3] 張海霞. 基于ARM的車牌識別系統的研制[J]. 華北電力大學學報, 2012, 18(6): 49-51.
[4] 張濤, 王劍魁, 張國山, 等. 基于Cortex-A8 的嵌入式車牌識別系統設計[J]. 電子設計工程, 2015,22(9): 167-170.
[5] 左宗鵬, 呂虹, 徐婉婷. 基于DSP 嵌入式車牌識別系統的設計與實現[J]. 工業控制計算機, 2010,23 (2): 51-52.
[6] 鄭存芳, 王紫婷, 丁麗華. 基于FPGA 的車輛牌照識別系統的設計[J]. 制造業自動化, 2009, 31(12): 6-8.
[7] 胡玉琛,劉一清. 基于FPGA的車牌識別系統研究與實現[J]. 電子測量技術, 2015, 38(12):54-58.
[8] 湯偉,王先通,王孟效. 基于FPGA和DSP的車牌識別系統的研究[J]. 計算機測量與控制, 2016, 24(2):297-299.
License plate location algorithm based on low power embedded system
Li Zhen, Tang Liping
(School of Information Science and Technology, University of Donghua, Shanghai 201620, China)
A Chinese number plate locating algorithm is proposed for low power consumption embedded system. Sobel operator is applied in horizontal direction to detect vertical edge component. Connected edge outputs are obtained by image morphology operations. Minimum rectangular area is determined with the connected edge outputs. Then the possible range of number plated is obtained, its location is fine-tuned with known properties of number plate. Experimental results show that the proposed algorithm is effective and it also has good robustness and adaptability in various application environments.
number plate locating; Sobel operator; morphology; close operation
TP391.41
A
10.19358/j.issn.1674- 7720.2017.03.014
李震,唐莉萍.基于低功耗嵌入式系統的車牌定位算法[J].微型機與應用,2017,36(3):45-48,58.
2016-10-07)
李震(1992-),男,碩士研究生,主要研究方向:圖像處理,嵌入式系統。
唐莉萍(1957-),女,工學碩士,副教授,主要研究方向:圖像處理及模式識別、嵌入式系統、計算機網絡與通信。