李震,,唐莉萍
(東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 201620)
摘要:文章給出了自行設(shè)計(jì)的在低功耗嵌入式平臺(tái)上實(shí)現(xiàn)車牌定位檢測(cè)的算法,。首先通過(guò)Sobel水平算子對(duì)車牌圖像進(jìn)行垂直邊緣檢測(cè),,運(yùn)用形態(tài)學(xué)方法對(duì)邊緣圖像進(jìn)行閉運(yùn)算得到連通圖塊。然后根據(jù)連通區(qū)域輪廓確定最小外接矩形,,解決車牌位置斷節(jié)問(wèn)題,,得到車牌候選區(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通過(guò)圖像處理算法得到車牌號(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圖形圖像處理庫(kù)中成熟的函數(shù)實(shí)現(xiàn)車牌的定位,;張海霞選擇ARM11開(kāi)發(fā)板(S3C6410為微處理器核心)作為嵌入式車牌識(shí)別系統(tǒng)的核心硬件電路[4],。基于DSP平臺(tái)的主流處理器是德州儀器TMS系列,,例如左宗鵬等人采用TMS320DM642讀取SAA7113采集的圖像數(shù)據(jù),,通過(guò)改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)算法實(shí)現(xiàn)車牌定位和識(shí)別[5]?;贔PGA平臺(tái)的內(nèi)核是定制的軟核處理器,,如鄭存芳等人用FPGA通過(guò)定制的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)存開(kāi)銷過(guò)大,影響系統(tǒng)的運(yùn)行速度,。本文研究將低端,、低功耗嵌入式處理器引入移動(dòng)車牌識(shí)別系統(tǒng),無(wú)需操作系統(tǒng),,通過(guò)對(duì)相關(guān)圖像處理算法進(jìn)行改進(jìn),,直接在硬件電路中完成車牌定位,為后續(xù)字符的正確分割和識(shí)別提供保障,。
1系統(tǒng)組成
本系統(tǒng)采用Aptina公司的MT9P031 CMOS傳感器作為圖像采集器件,,這種傳感器具有高分辨率、高幀率,、與處理器接口簡(jiǎn)單的特點(diǎn),。圖像有效像素為500萬(wàn),在全分辨率條件下幀率為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所示?!?/p>
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)
我國(guó)車牌的顏色特征主要分為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算子,,不僅無(wú)法滿足處理器實(shí)時(shí)處理的要求,,還會(huì)消耗處理器的大量?jī)?nèi)存,在硬件電路中無(wú)法實(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)存開(kā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è)?!?/p>
2.2確定車牌候選區(qū)域
在提取車牌圖像中垂直方向的邊緣后,,需要得到的二值邊緣圖像進(jìn)行數(shù)學(xué)形態(tài)學(xué)運(yùn)算,將車牌區(qū)域連通為一個(gè)閉合的區(qū)域,。圖像處理中常用的數(shù)學(xué)形態(tài)學(xué)運(yùn)算分別為開(kāi)運(yùn)算和閉運(yùn)算,。開(kāi)運(yùn)算是對(duì)圖像先腐蝕再膨脹,能夠使得圖像的輪廓變得更加光滑,,并且可以斷開(kāi)狹窄的間斷以及消除細(xì)小的突出,。閉運(yùn)算是對(duì)圖像先膨脹再腐蝕,與開(kāi)運(yùn)算相反的是,,閉運(yùn)算通常能夠彌補(bǔ)狹窄的間斷以及細(xì)長(zhǎng)的鴻溝,,并且能夠消除細(xì)小的空洞,填補(bǔ)輪廓線中的斷裂,。針對(duì)2.1節(jié)Sobel水平求導(dǎo)得到的邊緣圖像進(jìn)行開(kāi),、閉兩種運(yùn)算操作,結(jié)果如圖4所示,。
對(duì)比圖4可以發(fā)現(xiàn)由于腐蝕的效果太強(qiáng),,導(dǎo)致開(kāi)運(yùn)算膨脹沒(méi)有效果,圖像中幾乎沒(méi)有有用信息,。而閉運(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é)處理
我國(guó)標(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分隔開(kāi),這樣就只能選中距離較近的字符,,如圖5(b),。由于車牌中間的字符斷開(kāi),必將影響車牌的準(zhǔn)確定位,。經(jīng)過(guò)反復(fù)實(shí)驗(yàn),,在保證相鄰字符距離最大時(shí),車牌字符之間不發(fā)生斷節(jié)現(xiàn)象,,取字符外接矩形的寬度為29個(gè)像素點(diǎn),,高度為9個(gè)像素點(diǎn)。
3車牌定位區(qū)篩選
經(jīng)過(guò)以上步驟處理后的圖像,,能夠定位出幾個(gè)車牌的候選區(qū)域,。這些候選區(qū)域中,除了真正的車牌以外,,其余的是汽車標(biāo)志,、車燈或者排氣孔等,如圖6所示,。
圖6車牌候選區(qū)為了在候選區(qū)域中正確定位車牌位置,,可以根據(jù)我國(guó)車牌的特點(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)確率較低,,原因是陽(yáng)光的光線照射對(duì)車牌邊緣檢測(cè)存在干擾,,而且更多的邊緣信息導(dǎo)致每張照片定位的平均耗時(shí)也相對(duì)較長(zhǎng)。傍晚的陽(yáng)光沒(méi)有那么強(qiáng)烈,,攝像頭能夠捕獲到相對(duì)柔和的照片,,光線對(duì)邊緣信息的干擾會(huì)相對(duì)減少,因此準(zhǔn)確率上升的同時(shí)耗時(shí)也有所下降,。夜晚時(shí),,光線明顯不足,導(dǎo)致車牌邊緣信息存在一定的丟失,,導(dǎo)致檢測(cè)耗時(shí)下降和準(zhǔn)確率下降,。
5結(jié)束語(yǔ)
本文提出一種基于低功耗嵌入式系統(tǒng)的車牌定位檢測(cè)算法。首先使用Sobel水平算子對(duì)車牌圖像進(jìn)行垂直邊緣檢測(cè),,運(yùn)用形態(tài)學(xué)方法對(duì)邊緣圖像進(jìn)行閉運(yùn)算得到連通圖塊,。再根據(jù)連通區(qū)域輪廓確定最小外接矩形,解決車牌位置斷節(jié)問(wèn)題,,從而得到車牌候選區(qū)域,,最后根據(jù)車牌結(jié)構(gòu)特征對(duì)提取出的車牌候選區(qū)域進(jìn)行篩選,得到準(zhǔn)確的車牌定位,。實(shí)驗(yàn)結(jié)果表明該方法有效,,而且在復(fù)雜背景下也具有較好的魯棒性和自適應(yīng)性,。
參考文獻(xiàn)
[1] 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.
?。?] 孔繁榮, 丁志剛. 基于嵌入式的車輛牌照識(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.