李震,,唐莉萍
(東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,,上海 201620)
摘要:文章給出了自行設(shè)計(jì)的在低功耗嵌入式平臺(tái)上實(shí)現(xiàn)車牌定位檢測(cè)的算法。首先通過Sobel水平算子對(duì)車牌圖像進(jìn)行垂直邊緣檢測(cè),,運(yùn)用形態(tài)學(xué)方法對(duì)邊緣圖像進(jìn)行閉運(yùn)算得到連通圖塊,。然后根據(jù)連通區(qū)域輪廓確定最小外接矩形,解決車牌位置斷節(jié)問題,得到車牌候選區(qū)域,。最后根據(jù)車牌特征對(duì)提取出的車牌候選區(qū)域進(jìn)行篩選實(shí)現(xiàn)準(zhǔn)確的車牌定位,。實(shí)驗(yàn)結(jié)果證明了該算法的有效性,而且在復(fù)雜背景下也具有較好的魯棒性和自適應(yīng)性,。
關(guān)鍵詞:車牌定位,;Sobel算子;形態(tài)學(xué),;閉運(yùn)算
中圖分類號(hào):TP391.41文獻(xiàn)標(biāo)識(shí)碼:ADOI: 10.19358/j.issn.1674-7720.2017.03.014
引用格式:李震,,唐莉萍.基于低功耗嵌入式系統(tǒng)的車牌定位算法[J].微型機(jī)與應(yīng)用,2017,36(3):45-48,,58.
0引言
在大型停車場(chǎng)的出入口和停車智能收費(fèi)場(chǎng)所都裝有攝像頭,,對(duì)進(jìn)出場(chǎng)所的車輛進(jìn)行圖像拍攝,以獲取車輛的車牌號(hào),。對(duì)含有車輛的圖像進(jìn)行車牌識(shí)別是車輛收費(fèi)管理系統(tǒng)的一個(gè)重要環(huán)節(jié),。在車牌識(shí)別中,要實(shí)現(xiàn)字符的正確分割和識(shí)別,,首先需要完成對(duì)車輛車牌的精確定位,。車牌定位的精度直接影響監(jiān)控系統(tǒng)的性能[1]。多數(shù)收費(fèi)管理系統(tǒng)采用的方案是攝像頭加PC,,由攝像頭采集圖像,,由PC通過圖像處理算法得到車牌號(hào)。這種方法不易實(shí)現(xiàn)活動(dòng)場(chǎng)所的車牌識(shí)別,。因此基于嵌入式平臺(tái)的移動(dòng)車牌識(shí)別成為一個(gè)新的研究熱點(diǎn),。目前主流的嵌入式平臺(tái)有三種:ARM平臺(tái)、DSP平臺(tái)和FPGA平臺(tái),。
基于ARM平臺(tái)主要使用ARM9,、ARM11或者CortexA8處理器,例如文獻(xiàn)[2]用三星的ARM9芯片讀取CMOS攝像頭采集的車輛圖像進(jìn)行車牌區(qū)域判斷,;文獻(xiàn)[3]將CortexA8芯片運(yùn)行于Linux操作系統(tǒng),,并借助于OpenCV圖形圖像處理庫中成熟的函數(shù)實(shí)現(xiàn)車牌的定位;張海霞選擇ARM11開發(fā)板(S3C6410為微處理器核心)作為嵌入式車牌識(shí)別系統(tǒng)的核心硬件電路[4],?;贒SP平臺(tái)的主流處理器是德州儀器TMS系列,例如左宗鵬等人采用TMS320DM642讀取SAA7113采集的圖像數(shù)據(jù),,通過改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)算法實(shí)現(xiàn)車牌定位和識(shí)別[5],。基于FPGA平臺(tái)的內(nèi)核是定制的軟核處理器,,如鄭存芳等人用FPGA通過定制的Nios Ⅱ軟核調(diào)用接口讀取CCD攝像頭的圖像數(shù)據(jù),,運(yùn)用邊緣檢測(cè)方法進(jìn)行車牌定位[6],;鄭存芳對(duì)比基于PC或DSP的車牌識(shí)別系統(tǒng),提出了基于FPGA的車牌識(shí)別系統(tǒng)研究與實(shí)現(xiàn)方案[7],。還有研究人員將FPGA和DSP結(jié)合在一起實(shí)現(xiàn)車牌識(shí)別[8],。
以上文獻(xiàn)給出的嵌入式平臺(tái),硬件平臺(tái)采用的處理器大多為中高端產(chǎn)品,,產(chǎn)品的投入成本較高,。在軟件方面有的需要運(yùn)行在特定的操作系統(tǒng),有些需要借助特殊的圖形圖像處理軟件,,將會(huì)引起處理器內(nèi)存開銷過大,,影響系統(tǒng)的運(yùn)行速度。本文研究將低端,、低功耗嵌入式處理器引入移動(dòng)車牌識(shí)別系統(tǒng),,無需操作系統(tǒng),通過對(duì)相關(guān)圖像處理算法進(jìn)行改進(jìn),,直接在硬件電路中完成車牌定位,,為后續(xù)字符的正確分割和識(shí)別提供保障。
1系統(tǒng)組成
本系統(tǒng)采用Aptina公司的MT9P031 CMOS傳感器作為圖像采集器件,,這種傳感器具有高分辨率,、高幀率、與處理器接口簡(jiǎn)單的特點(diǎn),。圖像有效像素為500萬,,在全分辨率條件下幀率為14幀/s,在640×480像素下的幀率可達(dá)50幀/s,,與處理器連接僅需要兩線串行接口,。主控處理器選用意法半導(dǎo)體公司的STM32F429ZGT6,其內(nèi)核為CortexM4,,最高主頻達(dá)180 MHz,,內(nèi)存容量為256 KB,自帶8~14位并行Camera接口,,傳輸速率為54 Mb/s,。系統(tǒng)要在硬件中直接對(duì)圖像進(jìn)行各種處理,需要足夠的內(nèi)存交換數(shù)據(jù),,因此增加64 KB外部存儲(chǔ)器件SDRAM,。為了能保存歷史數(shù)據(jù),,硬件部分預(yù)留了SD卡接口,。根據(jù)移動(dòng)車牌識(shí)別的特點(diǎn),系統(tǒng)與上位機(jī)采用WiFi通信模式,。系統(tǒng)采用鋰電池供電,,當(dāng)檢測(cè)的圖像不變時(shí),,系統(tǒng)自動(dòng)進(jìn)入休眠狀態(tài),每200 ms自動(dòng)喚醒一次,。若檢測(cè)到圖像有變化時(shí),,立即執(zhí)行圖像處理算法,這樣可以有效降低移動(dòng)車牌識(shí)別的系統(tǒng)功耗,。硬件系統(tǒng)框圖如圖1所示,。
2定位算法
車牌定位是從一張拍攝到的圖像中定位出車牌的位置,,并提取出車牌圖像,。由于CortexM4的硬件資源有限,要求算法的復(fù)雜度不能太高,。為了保證定位算法的實(shí)時(shí)性,,需要對(duì)CMOS傳感器采集到的圖像進(jìn)行截取,在含有車輛運(yùn)動(dòng)的全景圖像中,,截取640×480像素的車輛目標(biāo)圖像作為目標(biāo)車輛的最佳區(qū)域,,再在該區(qū)域進(jìn)行車牌定位。定位算法包括以下幾個(gè)步驟:
(1)圖像二值化處理;
(2)二值化圖像快速邊緣檢測(cè);
(3)確定車牌候選區(qū)域;
(4)候選車牌區(qū)的外接矩形劃定;
(5)對(duì)候選車牌區(qū)篩選確定最終車牌區(qū)域,。
2.1快速邊緣檢測(cè)的實(shí)現(xiàn)
我國車牌的顏色特征主要分為4類:藍(lán)底白字(藍(lán)牌),,黃底黑字(黃牌),白底黑字(白牌),,黑底白字(黑牌),。車牌顏色雖然不一,但是它們具有共同的特點(diǎn):(1)都有矩形線段圍成的邊框,;(2)邊框內(nèi)的字符呈水平排列,,并且分布間隔較均勻;(3)均表現(xiàn)為豐富的紋理特征,,很容易捕捉到邊緣信息,;(4)車牌具有統(tǒng)一的標(biāo)準(zhǔn)尺寸。針對(duì)以上特點(diǎn),,可以運(yùn)用邊緣檢測(cè)算法對(duì)圖像進(jìn)行初步處理,。
圖像處理算法中常用的邊緣檢測(cè)算子包括Laplacian算子、Canny算子和Sobel算子,。Laplacian算子是一種求圖像的二階導(dǎo)數(shù)算子,,它將在圖像邊緣處產(chǎn)生一個(gè)陡峭的交叉。在通常情況下,,Laplacian算子也能檢測(cè)出邊緣,,但是其檢測(cè)方向不分水平和垂直,算法的復(fù)雜度高,。Canny邊緣檢測(cè)算子具有很好的邊緣檢測(cè)性能,,在圖像處理中得到了廣泛的應(yīng)用,。但是Canny邊緣檢測(cè)需要完成對(duì)圖像的高斯濾波去噪,從原始灰度圖中求出水平,、垂直兩個(gè)方向的梯度圖,,以及綜合梯度圖,再對(duì)3種梯度圖進(jìn)行非極大抑制,,進(jìn)行邊緣連接等步驟,,在PC中都非常難以保證算法的實(shí)時(shí)性。Sobel算子原理是對(duì)圖像求一階的水平與垂直方向?qū)?shù),,根據(jù)導(dǎo)數(shù)值的大小判斷是否是邊緣,。Sobel算子分為垂直邊緣算子和水平邊緣算子,其卷積模版為:
3種邊緣檢測(cè)算法得到的結(jié)果如圖2所示,。對(duì)比邊緣檢測(cè)結(jié)果,,Canny檢測(cè)獲得的邊緣最清晰,Sobel邊緣檢測(cè)的清晰度結(jié)果介于Canny檢測(cè)和Laplacian之間,。雖然Canny檢測(cè)獲得的邊緣最清晰,,從車牌定位的目的考慮,邊緣檢測(cè)的最終目的并不是要刻畫出圖像清晰的邊緣,,而只是要確定車牌的一個(gè)具體區(qū)域,。并且Canny邊緣檢測(cè)算法的復(fù)雜度遠(yuǎn)高于Sobel算子,不僅無法滿足處理器實(shí)時(shí)處理的要求,,還會(huì)消耗處理器的大量?jī)?nèi)存,,在硬件電路中無法實(shí)現(xiàn),因此邊緣檢測(cè)算法選用Sobel算子,。
由于嵌入式系統(tǒng)要求執(zhí)行的圖像處理算法必須運(yùn)算量小,,占用RAM少,所以采用以塊代點(diǎn)的方法,,將圖像分成大小為64×48的100個(gè)小塊,,因車輛是左右對(duì)稱結(jié)構(gòu),按照從圖像底部往上尋找的方式找對(duì)稱塊,,這是因?yàn)榇蠖鄶?shù)車牌的位置離圖像的底部較近,。經(jīng)實(shí)驗(yàn)數(shù)據(jù)測(cè)定和分析,當(dāng)找到15對(duì)對(duì)稱的圖像小塊后,,車牌就能快速鎖定在這30個(gè)區(qū)域塊中,。然后對(duì)找到的30個(gè)區(qū)域塊進(jìn)行Sobel算子邊緣檢測(cè)。
由于汽車的車牌邊框是有規(guī)則的邊緣,,并且車牌的字符是有規(guī)律的排列,,因此相對(duì)于水平邊緣車牌的垂直邊緣更為豐富。而汽車的車身卻有豐富的水平邊緣,垂直邊緣不明顯,。根據(jù)車牌和車輛邊緣特征的不同,本文僅使用Sobel算子對(duì)找到的30個(gè)區(qū)域塊進(jìn)行水平方向求導(dǎo),,這樣可以大大減小處理器的內(nèi)存開銷,,降低算法的復(fù)雜度,提高處理器的運(yùn)算速度,,在硬件電路上實(shí)現(xiàn)邊緣檢測(cè),。作為對(duì)比,對(duì)圖像進(jìn)行了垂直方向和水平垂直兩個(gè)方向同時(shí)求導(dǎo),,結(jié)果如圖3所示,。從檢測(cè)結(jié)果可以看到汽車的前端車牌附近有很多的水平邊緣,這是由車頭位置的排氣孔,、汽車廠家標(biāo)志等產(chǎn)生的,。這些多余的水平邊緣很容易干擾車牌定位的結(jié)果,導(dǎo)致最終搜索不到真正的車牌位置,。因此本文采用Sobel水平算子實(shí)現(xiàn)快速邊緣檢測(cè),。
2.2確定車牌候選區(qū)域
在提取車牌圖像中垂直方向的邊緣后,,需要得到的二值邊緣圖像進(jìn)行數(shù)學(xué)形態(tài)學(xué)運(yùn)算,,將車牌區(qū)域連通為一個(gè)閉合的區(qū)域。圖像處理中常用的數(shù)學(xué)形態(tài)學(xué)運(yùn)算分別為開運(yùn)算和閉運(yùn)算,。開運(yùn)算是對(duì)圖像先腐蝕再膨脹,,能夠使得圖像的輪廓變得更加光滑,并且可以斷開狹窄的間斷以及消除細(xì)小的突出,。閉運(yùn)算是對(duì)圖像先膨脹再腐蝕,,與開運(yùn)算相反的是,閉運(yùn)算通常能夠彌補(bǔ)狹窄的間斷以及細(xì)長(zhǎng)的鴻溝,,并且能夠消除細(xì)小的空洞,,填補(bǔ)輪廓線中的斷裂。針對(duì)2.1節(jié)Sobel水平求導(dǎo)得到的邊緣圖像進(jìn)行開,、閉兩種運(yùn)算操作,,結(jié)果如圖4所示。
對(duì)比圖4可以發(fā)現(xiàn)由于腐蝕的效果太強(qiáng),,導(dǎo)致開運(yùn)算膨脹沒有效果,,圖像中幾乎沒有有用信息。而閉運(yùn)算則將圖像中車牌區(qū)域附近的一些邊緣連成圖塊,,包括車牌中的字符也被連成圖塊,,這些連接成塊的區(qū)域形狀不一,組成了車牌的候選區(qū)域,,如圖4(a)所示,。
由圖4結(jié)果對(duì)比可知,,對(duì)得到的二值邊緣圖像只需要進(jìn)行閉運(yùn)算,就可以完成對(duì)候選區(qū)域的確定,。這樣可以進(jìn)一步減少運(yùn)算量,,提高車牌定位的實(shí)時(shí)性。
2.3字符外接矩形斷節(jié)處理
我國標(biāo)準(zhǔn)車輛的車牌是由一個(gè)省份漢字,、一個(gè)城市字母和5個(gè)字母或阿拉伯?dāng)?shù)字組成的字符序列,。每個(gè)字符的寬度為45 mm,高度為90 mm,,間隔符的寬度為10 mm,,除了第二個(gè)和第三個(gè)字符之間的間距為 34 mm 外,字符之間的間隔寬度為12 mm,,如圖5(b)車牌滬F C0439,。
圖5(b)中字符F和字符C的距離大于其他相鄰字符的距離。這個(gè)距離越大,,字符區(qū)域輪廓就越大,,需要的字符外接矩形也就越大。當(dāng)字符外接矩形設(shè)置較小時(shí),,導(dǎo)致滬F和C0439分隔開,,這樣就只能選中距離較近的字符,如圖5(b),。由于車牌中間的字符斷開,,必將影響車牌的準(zhǔn)確定位。經(jīng)過反復(fù)實(shí)驗(yàn),,在保證相鄰字符距離最大時(shí),,車牌字符之間不發(fā)生斷節(jié)現(xiàn)象,取字符外接矩形的寬度為29個(gè)像素點(diǎn),,高度為9個(gè)像素點(diǎn),。
3車牌定位區(qū)篩選
經(jīng)過以上步驟處理后的圖像,能夠定位出幾個(gè)車牌的候選區(qū)域,。這些候選區(qū)域中,,除了真正的車牌以外,其余的是汽車標(biāo)志,、車燈或者排氣孔等,,如圖6所示。
圖6車牌候選區(qū)為了在候選區(qū)域中正確定位車牌位置,,可以根據(jù)我國車牌的特點(diǎn)以及安裝特征進(jìn)行判斷,。實(shí)際車牌的長(zhǎng)寬比為定值約為2.85~3.33,圖像中車牌的像素比也應(yīng)該在此范圍;車牌一般安裝在車輛的正中心偏下位置,,外接矩形的角度應(yīng)該小于10度,;外接矩形的中心應(yīng)該位于圖像中心線附近。根據(jù)這三個(gè)條件可設(shè)置一個(gè)車牌判別公式:
f(A,R,CX)=Σλixi
其中,,A為外接矩形的角度,,R為車牌的長(zhǎng)寬比,CX為外接矩形的中心橫坐標(biāo),,λi為3個(gè)條件的權(quán)重,xi為限制條件,。將候選區(qū)外接矩形的3個(gè)參數(shù)代入這個(gè)公式,,滿足f(A,R,CX)>0.9時(shí)就能準(zhǔn)確找到車牌的位置。
4實(shí)驗(yàn)結(jié)果
將本文的車牌定位算法在本設(shè)計(jì)中的硬件平臺(tái)上進(jìn)行車牌定位檢測(cè),。使用的嵌入式處理器為STM32F429,,芯片運(yùn)行主頻為180 MHz。圖7給出了該算法在實(shí)際應(yīng)用中檢測(cè)的部分圖片的效果,。
為了驗(yàn)證算法的效率和準(zhǔn)確率,,本文對(duì)不同時(shí)間段的照片進(jìn)行了實(shí)驗(yàn),白天照片測(cè)試了65張,,傍晚的照片測(cè)試了60張,,夜晚的照片測(cè)試了62張,實(shí)驗(yàn)結(jié)果如表1所示,。
從實(shí)驗(yàn)結(jié)果分析,,白天定位準(zhǔn)確率較低,原因是陽光的光線照射對(duì)車牌邊緣檢測(cè)存在干擾,,而且更多的邊緣信息導(dǎo)致每張照片定位的平均耗時(shí)也相對(duì)較長(zhǎng),。傍晚的陽光沒有那么強(qiáng)烈,攝像頭能夠捕獲到相對(duì)柔和的照片,,光線對(duì)邊緣信息的干擾會(huì)相對(duì)減少,,因此準(zhǔn)確率上升的同時(shí)耗時(shí)也有所下降。夜晚時(shí),,光線明顯不足,,導(dǎo)致車牌邊緣信息存在一定的丟失,導(dǎo)致檢測(cè)耗時(shí)下降和準(zhǔn)確率下降,。
5結(jié)束語
本文提出一種基于低功耗嵌入式系統(tǒng)的車牌定位檢測(cè)算法,。首先使用Sobel水平算子對(duì)車牌圖像進(jìn)行垂直邊緣檢測(cè),運(yùn)用形態(tài)學(xué)方法對(duì)邊緣圖像進(jìn)行閉運(yùn)算得到連通圖塊,。再根據(jù)連通區(qū)域輪廓確定最小外接矩形,,解決車牌位置斷節(jié)問題,從而得到車牌候選區(qū)域,最后根據(jù)車牌結(jié)構(gòu)特征對(duì)提取出的車牌候選區(qū)域進(jìn)行篩選,,得到準(zhǔn)確的車牌定位,。實(shí)驗(yàn)結(jié)果表明該方法有效,而且在復(fù)雜背景下也具有較好的魯棒性和自適應(yīng)性,。
參考文獻(xiàn)
?。?] ANAGNOSTOPOULOS C N E, ANAGNOSTOPOULOS I E, LOUMOS V, et al. A license platerecognition algorithm for intelligent transportation system applications[J]. IEEE Transactions on Intelligent transportation systems, 2006, 7(3): 377-392.
[2] 孔繁榮, 丁志剛. 基于嵌入式的車輛牌照識(shí)別系統(tǒng)設(shè)計(jì)[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2015, 32(10): 223-226.
?。?] 張海霞. 基于ARM的車牌識(shí)別系統(tǒng)的研制[J]. 華北電力大學(xué)學(xué)報(bào), 2012, 18(6): 49-51.