劉佳慧,李檬,秦松,賈小林
(西南科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,綿陽(yáng) 621010)
隨著科學(xué)技術(shù)的不斷發(fā)展,圖像、視頻、紅外、無(wú)線射頻等技術(shù)的不斷進(jìn)步,為車輛信息管理提供了多種技術(shù)選擇[1]。車牌識(shí)別技術(shù)起于國(guó)外,早在20世紀(jì)80年代就有對(duì)車牌進(jìn)行識(shí)別研究。國(guó)內(nèi)在90年代也開(kāi)始自己的汽車牌照編碼識(shí)別研究。其主要途徑是通過(guò)對(duì)照片進(jìn)行處理,識(shí)別出照片里的車牌,同時(shí)自動(dòng)提取車牌信息,實(shí)現(xiàn)字符分割。
項(xiàng)目以圖像處理中字符定位、分割和識(shí)別等算法為基礎(chǔ),進(jìn)行針對(duì)國(guó)內(nèi)車牌識(shí)別技術(shù)的研究,建立識(shí)別系統(tǒng),通過(guò)對(duì)出入車輛圖像的采集和處理,實(shí)現(xiàn)車牌號(hào)碼的準(zhǔn)確識(shí)別,提高停車場(chǎng)和交通管理效率,緩解車輛管理等問(wèn)題。
針對(duì)攝像機(jī)采集到的圖像,首先對(duì)讀入的圖像進(jìn)行預(yù)處理,從而選擇出車牌號(hào)碼在圖像上的大概區(qū)域,通過(guò)進(jìn)一步定位,得到最終的車牌區(qū)域。其主要步驟如下:
灰度化:灰度主要是為了將圖片轉(zhuǎn)化為單通道的圖像,更利于后續(xù)的二值化等處理。
二值化:采用迭代閾值法對(duì)圖像進(jìn)行二值化,直到算法收斂,將圖像分成黑和白,更加有利于做圖像處理判別。
圖像閾值分割-迭代算法處理流程:
(1)為全局閾值選擇一個(gè)初始估計(jì)值T(圖像的平均灰度)。
(2)用T分割圖像。產(chǎn)生兩組像素:G1有灰度值大于T的像素組成,G2有小于等于T像素組成。
(3)計(jì)算G1和G2像素的平均灰度值m1和m2;
(4)計(jì)算一個(gè)新的閾值:T=(m1+m2)/2;
(5)重復(fù)步驟(2)和(4),直到連續(xù)迭代中的 T 值間的差小于一個(gè)預(yù)定義參數(shù)為止。
Gaussian去噪:通過(guò)高斯平滑處理,以減少數(shù)字圖像中噪聲對(duì)車牌圖像后續(xù)處理中的干擾。

圖1 攝像頭采集到的原始圖像

圖2 高斯濾波后得到的圖像

圖3 突出垂直邊緣

圖4 閾值化處理后的圖像
對(duì)圖像進(jìn)行閾值處理之后,利用數(shù)學(xué)形態(tài)學(xué)(主要為開(kāi)運(yùn)算和閉運(yùn)算)和邊緣分析,得到連通域和無(wú)干擾的預(yù)處理圖片[2]。先對(duì)圖像進(jìn)行膨脹,調(diào)用CvDilate()函數(shù),具體的次數(shù)為三次,如果結(jié)構(gòu)元素的值都為正的,則輸出圖像會(huì)比輸入圖像亮,根據(jù)輸入圖像中暗細(xì)節(jié)的灰度值以及它們的形狀相對(duì)于結(jié)構(gòu)元素的關(guān)系,結(jié)構(gòu)元素在運(yùn)算中或被消減或被除掉[3]。
閉運(yùn)算:將車牌字母連接,形成一個(gè)連通域,便于輪廓提取。
開(kāi)運(yùn)算:排除一些干擾。

圖5 開(kāi)運(yùn)算處理后的圖像

圖6 閉運(yùn)算處理后的圖像
得到預(yù)處理后的圖像,即可以運(yùn)用一定的比例(在程序中設(shè)置寬高比為5:17的矩形[1])來(lái)定位圖像車牌號(hào)碼所在部分的大體位置。
(1)選出有可能是車牌的區(qū)域
可以根據(jù)車牌區(qū)域的寬高比例,面積占有率以及車牌的高度和圖片的高度進(jìn)行比較,進(jìn)而確定出車牌所在圖像中的具體位置。利用OpenCV中findContours函數(shù),尋找到車牌可能的輪廓如圖7所示。
(2)選出有可能是車牌的區(qū)域
排除非車牌部分的可能輪廓,即可得到車牌號(hào)碼所在的精確區(qū)域,如圖8所示。

圖7 車牌號(hào)碼可能輪廓抽取

圖8 排除非車牌輪廓部分的結(jié)果
在獲取到車牌較為精確的輪廓位置之后,針對(duì)圖像的預(yù)處理、號(hào)碼部分的圖像二值化、字符切分、特征提取等模塊的算法,在原始的基礎(chǔ)上做了進(jìn)一步改進(jìn)。為了提高圖像的識(shí)別正確率,利用霍夫變換和投影分析等算法,對(duì)圖像還做了傾斜矯正處理。

圖9 提取到的輪廓
針對(duì)邊緣檢測(cè)的圖像,設(shè)置相關(guān)閾值,記錄最小線段長(zhǎng)度和線段間距容忍度,通過(guò)投票表決的形式,確定圖像中央位置[4]。設(shè)置一定角度,利用getRotationMatrix2D獲取旋轉(zhuǎn)矩陣,warpAffine實(shí)現(xiàn)坐標(biāo)系仿射變換,旋轉(zhuǎn)圖片,使其趨于水平。

圖10 傾斜矯正前

圖11 傾斜矯正后
對(duì)傾斜矯正后的圖像,首先檢測(cè)到白色區(qū)域,減去白色區(qū)域,即可去除邊框和外界區(qū)域,利用二值化后的圖像,通過(guò)顏色判斷即可去除多余的空白[5]。

圖12 去除邊框前

圖13 去除邊框后
由于只對(duì)單個(gè)字符所占輪廓大小進(jìn)行簡(jiǎn)單比較,從檢測(cè)到白色的邊一直擴(kuò)展到黑色的區(qū)域作為一個(gè)字符,不能有效避免字體結(jié)構(gòu)的干擾和中間的小圓點(diǎn),因此,實(shí)驗(yàn)中對(duì)字符的切割做了改進(jìn),即增加一個(gè)最小距離的限制,使得靈活性變小,避免了字體干擾問(wèn)題。用切割函數(shù)將車牌內(nèi)容分割成單個(gè)字符如下:

圖14 切割前

圖15 切割后
Tesseract是一個(gè)Google支持的開(kāi)源的OCR圖文識(shí)別開(kāi)源項(xiàng)目,識(shí)別率非常高。在程序中采用了這個(gè)插件進(jìn)行字符識(shí)別。調(diào)用OCR圖文識(shí)別TesseractAPI對(duì)以上處理好的圖片進(jìn)行識(shí)別,輸出分析得出的結(jié)果。

圖16 識(shí)別車牌川BXX621的結(jié)果
實(shí)驗(yàn)中對(duì)大量的車牌進(jìn)行了識(shí)別,在光照條件良好、車身盡量干凈、車身與車牌中心顏色對(duì)比度較高、環(huán)境里沒(méi)有類似于車牌的雜物的情況下,能取得較好的識(shí)別率,對(duì)于傾斜矯正,能檢測(cè)到的角度極限為15度。如果車頭形狀干擾因素較多,垂直邊緣便會(huì)大大增加,導(dǎo)致極為容易檢錯(cuò)。實(shí)驗(yàn)發(fā)現(xiàn),幾乎沒(méi)有辦法處理這種車牌。只能替換邊緣檢測(cè)這種思路,采用顏色區(qū)分等方法。此外,為了方便下一步進(jìn)行檢測(cè),開(kāi)運(yùn)算與閉運(yùn)算必須要控制好。
目前針對(duì)測(cè)試圖片來(lái)說(shuō),檢測(cè)工作做得很好,但不一定適用于所有的情況。車牌定位以及圖像處理算法的一個(gè)大的問(wèn)題就是健壯性,換一個(gè)場(chǎng)景可能就得換一套參數(shù),因此需要結(jié)合使用場(chǎng)景來(lái)做調(diào)整。
對(duì)大量實(shí)驗(yàn)車牌做了調(diào)查,因?yàn)榍捌诘念A(yù)處理上做得不是很細(xì)致,沒(méi)有致力于分析圖像的整體特征,所以算法的精度上面還有提高的空間。對(duì)于85%的車牌,我們可以實(shí)現(xiàn)檢測(cè),而剩下的車牌,需要調(diào)整參數(shù),才能實(shí)現(xiàn)。
在實(shí)際應(yīng)用中要求識(shí)別算法快速、準(zhǔn)確,研究車牌號(hào)碼的快速識(shí)別算法,并將其應(yīng)用于實(shí)際車牌識(shí)別裝置中[7]。根據(jù)圖像的局部特征,充分研究字符的分割算法,采用三步投影法對(duì)圖像進(jìn)行一次分割,針對(duì)灰度分布不均勻的圖像導(dǎo)致的分割問(wèn)題采用二次分割實(shí)現(xiàn)對(duì)每個(gè)字符的準(zhǔn)確定位[8]。
各類圖像處理算法的不斷改進(jìn)與有機(jī)結(jié)合,使得圖像的識(shí)別效率和精度都得到了巨大提高,推動(dòng)了我國(guó)交通管理方面的發(fā)展。尤其是在科學(xué)技術(shù)迅猛更迭的今天,對(duì)進(jìn)一步改善和研究車牌識(shí)別技術(shù)具有十分重要的作用和意義。從現(xiàn)有的研究結(jié)果來(lái)看,基于圖像識(shí)別的算法依然受某些外界因素的影響,如圖片的過(guò)度傾斜、背景復(fù)雜度、光照條件,車身的整潔程度以及顏色對(duì)比度等干擾問(wèn)題,都會(huì)識(shí)別的精度和效率。實(shí)驗(yàn)結(jié)果中,設(shè)計(jì)還可以進(jìn)一步改進(jìn)車牌識(shí)別算法,可以采用基于字符結(jié)構(gòu)特征的識(shí)別算法以增強(qiáng)識(shí)別效果,從而提高車牌識(shí)別的正確率和適應(yīng)性。
參考文獻(xiàn):
[1]朱美玲,劉晨,王雄斌,韓燕波.基于車牌識(shí)別流數(shù)據(jù)的車輛伴隨模式發(fā)現(xiàn)方法[J].軟件學(xué)報(bào),2017,28(06):1498-1515.
[2]黎洪龍.基于圖像處理技術(shù)的車牌識(shí)別方法研究[J].科技與創(chuàng)新,2017(19):65-66.
[3]李建華.基于圖像處理技術(shù)的車牌識(shí)別方法研究與實(shí)現(xiàn)[D].河南大學(xué),2015.
[4]袁捷,胡正儀,王延平.用Hough變換的方法提取圖像拐點(diǎn)[J].武漢大學(xué)學(xué)報(bào)(自然科學(xué)版),1998(01):86-89.
[5]Wen-Min L.Research on Image Acquisition and License Plate Location in Vehicle License Plate Recognition System[J].Computer&Modernization,2009.
[6]Hong S,Hwang S,Kim S.A License Plate Recognition System Robust to Vehicle Location and Viewing Angle[J].2012,49(12):113-123.
[7]Muetzel R.License Plate Recognition System and Location Forecasting[J],2014.
[8]Rastegar S,Ghaderi R,Ardeshir G,et al.An Intelligent Control System Using an Efficient License Plate Location and Recognition Approach[J].International Journal of Image Processing,2009,3(5):252-264.