李 震,唐莉萍
(東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 201620)
基于低功耗嵌入式系統(tǒng)的車牌定位算法
李 震,唐莉萍
(東華大學(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)性。
車牌定位;Sobel算子;形態(tài)學(xué);閉運(yùn)算
基于ARM平臺(tái)主要使用ARM9、ARM11或者Cortex-A8處理器,例如文獻(xiàn)[2]用三星的ARM9芯片讀取CMOS攝像頭采集的車輛圖像進(jìn)行車牌區(qū)域判斷;文獻(xiàn)[3]將Cortex-A8芯片運(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]?;贔PGA平臺(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í)別提供保障。
本系統(tǒng)采用Aptina公司的MT9P031 CMOS傳感器作為圖像采集器件,這種傳感器具有高分辨率、高幀率、與處理器接口簡(jiǎn)單的特點(diǎn)。圖像有效像素為500萬,在全分辨率條件下幀率為14幀/s,在640×480像素下的幀率可達(dá)50幀/s,與處理器連接僅需要兩線串行接口。主控處理器選用意法半導(dǎo)體公司的STM32F429ZGT6,其內(nèi)核為Cortex-M4,最高主頻達(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所示。
圖1 系統(tǒng)硬件結(jié)構(gòu)框圖
車牌定位是從一張拍攝到的圖像中定位出車牌的位置,并提取出車牌圖像。由于Cortex-M4的硬件資源有限,要求算法的復(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è);
我國會(huì)計(jì)監(jiān)督工作的成效、問題和未來展望——基于財(cái)政部2018年會(huì)計(jì)信息質(zhì)量檢查公告的研究劉勝良22-8
(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算子。
圖2 Sobel算子、Laplacian算子、Canny算子邊緣檢測(cè)結(jié)果對(duì)比
由于嵌入式系統(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è)。
圖3 Sobel算子不同方向求導(dǎo)結(jié)果效果對(duì)比
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所示。
圖4 閉運(yùn)算開運(yùn)算對(duì)比圖
對(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)。
圖5 斷節(jié)對(duì)定位的影響
經(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)確找到車牌的位置。
將本文的車牌定位算法在本設(shè)計(jì)中的硬件平臺(tái)上進(jìn)行車牌定位檢測(cè)。使用的嵌入式處理器為STM32F429,芯片運(yùn)行主頻為180 MHz。圖7給出了該算法在實(shí)際應(yīng)用中檢測(cè)的部分圖片的效果。
圖7 部分車牌定位結(jié)果
為了驗(yàn)證算法的效率和準(zhǔn)確率,本文對(duì)不同時(shí)間段的照片進(jìn)行了實(shí)驗(yàn),白天照片測(cè)試了65張,傍晚的照片測(cè)試了60張,夜晚的照片測(cè)試了62張,實(shí)驗(yàn)結(jié)果如表1所示。
表1 定位算法結(jié)果
從實(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)確率下降。
本文提出一種基于低功耗嵌入式系統(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)性。
[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] 孔繁榮, 丁志剛. 基于嵌入式的車輛牌照識(shí)別系統(tǒng)設(shè)計(jì)[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2015, 32(10): 223-226.
[3] 張海霞. 基于ARM的車牌識(shí)別系統(tǒng)的研制[J]. 華北電力大學(xué)學(xué)報(bào), 2012, 18(6): 49-51.
[4] 張濤, 王劍魁, 張國山, 等. 基于Cortex-A8 的嵌入式車牌識(shí)別系統(tǒng)設(shè)計(jì)[J]. 電子設(shè)計(jì)工程, 2015,22(9): 167-170.
[5] 左宗鵬, 呂虹, 徐婉婷. 基于DSP 嵌入式車牌識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 工業(yè)控制計(jì)算機(jī), 2010,23 (2): 51-52.
[6] 鄭存芳, 王紫婷, 丁麗華. 基于FPGA 的車輛牌照識(shí)別系統(tǒng)的設(shè)計(jì)[J]. 制造業(yè)自動(dòng)化, 2009, 31(12): 6-8.
[7] 胡玉琛,劉一清. 基于FPGA的車牌識(shí)別系統(tǒng)研究與實(shí)現(xiàn)[J]. 電子測(cè)量技術(shù), 2015, 38(12):54-58.
[8] 湯偉,王先通,王孟效. 基于FPGA和DSP的車牌識(shí)別系統(tǒng)的研究[J]. 計(jì)算機(jī)測(cè)量與控制, 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
李震,唐莉萍.基于低功耗嵌入式系統(tǒng)的車牌定位算法[J].微型機(jī)與應(yīng)用,2017,36(3):45-48,58.
2016-10-07)
李震(1992-),男,碩士研究生,主要研究方向:圖像處理,嵌入式系統(tǒng)。
唐莉萍(1957-),女,工學(xué)碩士,副教授,主要研究方向:圖像處理及模式識(shí)別、嵌入式系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)與通信。