一種邊緣檢測(cè)與掃描線相結(jié)合的車牌定位算法
摘要:提出了基于邊緣檢測(cè)的二值化與掃描線相結(jié)合的車牌定位方法。實(shí)驗(yàn)表明該方法能夠快速、準(zhǔn)確地定位車牌,且抗干擾能力強(qiáng),定位準(zhǔn)確率在99%以上,光照和天氣對(duì)其定位結(jié)果影響很小。
關(guān)鍵詞:模式識(shí)別 車牌識(shí)別 邊緣提取
車牌識(shí)別(LPR)技術(shù)是計(jì)算機(jī)視覺(jué)、圖像處理技術(shù)與模式識(shí)別技術(shù)的融合,是智能交通系統(tǒng)中一項(xiàng)非常重要的技術(shù)。一般說(shuō)來(lái),車牌識(shí)別前期的處理技術(shù)至關(guān)重要,其前期技術(shù)包括:車牌的定位、車牌圖像的二值化及字符分割。本文主要針對(duì)車牌定位算法進(jìn)行研究。
車牌定位就是在車輛圖像中定位牌照區(qū)域的位置。由于車輛圖像都采集于自然環(huán)境中,而在自然環(huán)境中車牌和背景的成像條件一般是不可控制的,隨機(jī)變化的因素(尤其是光照條件)和復(fù)雜的背景信息給目標(biāo)搜索帶來(lái)巨大困難。不同光照下,車牌的顏色、亮度、明蟬對(duì)比度都有很大變化;背景信息通常比車牌信息更加復(fù)雜,某些背景區(qū)域可能與車牌區(qū)域差異不大;再加上攝像距離、角度的不同,要從種種干擾中區(qū)別出目標(biāo)是十分困難的。而車牌區(qū)域在整幅圖像中所占的比例較小,要從整幅圖像中定位車牌區(qū)域必然要在大量的背景信息中搜索,而且由于應(yīng)用的特殊性,要求快速、準(zhǔn)確地完成車牌定位。如果沒(méi)有高效率的搜索方法,就需要耗費(fèi)很多計(jì)算時(shí)間和存儲(chǔ)空間。所以車牌定位技術(shù)一直以來(lái)是一個(gè)難點(diǎn),是車牌識(shí)別系統(tǒng)的一個(gè)關(guān)鍵技術(shù)環(huán)節(jié)。
目前,已經(jīng)提出了很多車牌定位的方法這些方法都具有一個(gè)共同的出發(fā)點(diǎn)即通過(guò)牌照區(qū)域的特征來(lái)判斷牌照。根據(jù)不同的實(shí)現(xiàn)方法,大致可以把現(xiàn)有的定位方法分為兩類:直接法、間接法。
(1)直接法:直接分析圖像的特征。例如,文獻(xiàn)提出一種基于線模板的二值化圖像中的角檢測(cè)算法。該算法利用車牌的邊框角點(diǎn),檢測(cè)車牌的四個(gè)角點(diǎn),并以此來(lái)定位車牌。文件介紹一種基于直線邊緣識(shí)別的圖像區(qū)域定位算法,并且利用該算法定位車牌的邊框線,以此定位車牌。文件介紹利用車牌的尺寸、字符間距、字符特征等紋理特征定位車牌。文件利用車牌部分垂直高頻豐富的特點(diǎn)先利用小波提取圖像的垂直高頻信息,然后利用數(shù)學(xué)形態(tài)學(xué)方法對(duì)小波分解后的細(xì)節(jié)圖像進(jìn)行一系列的形態(tài)運(yùn)算,進(jìn)一步消除無(wú)用的信息和噪聲,以定位車牌。
(2)間接法:主要是指利用神經(jīng)網(wǎng)絡(luò)法或者遺傳算法定位車牌的方法。利用神經(jīng)網(wǎng)絡(luò)和遺傳算法等柔性方法進(jìn)行計(jì)算是當(dāng)前研究熱點(diǎn)之一。文獻(xiàn)提出利用BP神經(jīng)網(wǎng)絡(luò)定位車牌,文件提出利用DTCNN(Discrete-Time Cellular Neural Network)和模糊邏輯結(jié)合的方法。文獻(xiàn)利用多層感知器網(wǎng)絡(luò)(MLPN)對(duì)車牌進(jìn)行定位。文獻(xiàn)提出利用遺傳算法定位車牌,它利用遺傳算法對(duì)圖像進(jìn)行優(yōu)化搜索,結(jié)合區(qū)域特征矢量構(gòu)造的適應(yīng)度函數(shù),最終尋找到車牌的版照區(qū)域的最佳定位參量。
通過(guò)分析和觀測(cè)得知,與汽車圖像中其他區(qū)域相比,車牌區(qū)域主要有以下特征:
(1)車牌字符區(qū)域中的垂直邊緣較水平邊緣相對(duì)密集,而車身其他部分(如保險(xiǎn)杠等)的水平邊緣明顯,垂直邊緣較少。另外,車牌一般懸掛在車身上較低的位置,其下方基本上沒(méi)有明顯的邊緣密集區(qū)域。
(2)有明顯的邊框,在其內(nèi)部規(guī)則地排列著一系列的省名縮寫(漢字)、地區(qū)代號(hào)(英文字母)和5位字母/數(shù)字編號(hào)(普通民用車輛)。底牌與字符的顏色主要有藍(lán)底白字、黃底黑字、黑底白字和白底黑字(或紅字)四種。隨拍攝角度和車牌自身污損程度的不同,所采集到的車牌邊框經(jīng)常出現(xiàn)傾斜、斷裂等現(xiàn)象。
因此直接定位法是利用邊框特性(利用特征2)以模模匹配的方法尋找牌照的四個(gè)角來(lái)定位或者尋找車牌邊框直線定位車牌以及利用牌照區(qū)域的灰度變化頻率(利用特征1)來(lái)定位。
由于車牌邊框有時(shí)有污染,相對(duì)來(lái)說(shuō)車牌字符區(qū)域灰度頻率變化是車牌區(qū)域最穩(wěn)定的特征,所以本文提出一種利用車牌字符區(qū)域灰度變化頻率的方法定位車牌,即基于邊緣檢測(cè)和掃描線相結(jié)合的車牌定位算法。該算法的思想是首先對(duì)車牌圖像進(jìn)行邊緣增強(qiáng),再利用水平掃描線進(jìn)行車牌區(qū)域的檢測(cè)。
1 車牌定位的預(yù)處理
圖像預(yù)處理的作用是突出圖像中的有用信息,不同的圖像預(yù)處理對(duì)應(yīng)于不同的圖像分割以獲得最佳的車牌特征。車牌定位預(yù)處理目睥是突出車牌區(qū)域的特征,抑制其它無(wú)用的特征。車牌定位預(yù)處理目的是突出車牌區(qū)域的特片,抑制其它無(wú)用的特征。車牌區(qū)域的主要特征之一是垂直邊緣較密集。所以本文提出增強(qiáng)垂直邊緣的差分算子進(jìn)行垂直邊緣增強(qiáng)。
為了不失一般性,本文對(duì)灰度圖像進(jìn)行研究。由于本文采集的圖像是彩色圖像,所以要把彩色圖像轉(zhuǎn)化為灰度圖像。為了減少不必要的彩色-灰度轉(zhuǎn)化的運(yùn)算,本文只對(duì)輸入的彩色汽車圖像的綠色分量作處理。
邊緣檢測(cè)的算子很多。例如:如Sobel算子、Roberts算子、Prewitt算子、Laplacian算子等。Sobel、Roberts、Prewitt、Laplacian算子都不是專門用于檢測(cè)垂直邊緣的,且運(yùn)算量較大。雖然可以只用它們的垂直邊緣檢測(cè)算子,但是相對(duì)而言,運(yùn)算量還是比較大。為此,本文專門設(shè)計(jì)了一個(gè)水平模板算子,即[1,1,1…,1,1,1,1]。該算子與圖像進(jìn)行卷積然后再與原圖像作差分運(yùn)算,當(dāng)差分值大于某一門限值就認(rèn)為它是邊緣目標(biāo),否則是背景。
水平模板即[1,1,1…,1,1,1,1],它與圖像進(jìn)行卷積相當(dāng)于圖像水平方向進(jìn)行低通濾波,再與原圖像差分,其目的是突出圖像的垂直方向的高頻信息(相當(dāng)于對(duì)圖像進(jìn)行高通濾波)。由于該算子可以做增量運(yùn)算,也就是在計(jì)算局部平均值時(shí),先計(jì)算水平方向窗口內(nèi)各點(diǎn)之和,將前次運(yùn)算的結(jié)果減去窗口最左邊點(diǎn)的值再加上右邊新一點(diǎn)的值。這樣可以減少求和運(yùn)算次數(shù),所以其運(yùn)算量比Sobel算子少。
算子描述如下:
1/n[111...1111]-[000...1000] (1)
式(1)的左半部分是水平模板,即[1,1,1…,1,1,1,1]與圖像進(jìn)行卷積,右半部分可理解為原始圖像。它們進(jìn)行差分是式(1)的運(yùn)算結(jié)果。
由于可以做增量運(yùn)算,所以算子的長(zhǎng)度對(duì)運(yùn)算量影不大。在這里取9,其目的是與字符筆劃的寬度相符。
從圖1可以看出:圖像進(jìn)行卷積然后再與原圖像作差分的數(shù)據(jù),只有車牌區(qū)域、車輪、車燈等灰度突變處值相對(duì)較高,而其它幾乎為零。通過(guò)對(duì)整幅圖像的處理,得到車輛圖像的二值化圖像如圖2(a),對(duì)差分圖像進(jìn)行二值化,結(jié)果如圖2(b)(其中閾值取10)。
2 車牌的預(yù)定位
2.1 長(zhǎng)程濾波與顆粒濾波
(1)長(zhǎng)程濾波
從圖2(b)可以看出預(yù)處理后很多邊緣點(diǎn)連接成長(zhǎng)程帶狀曲線(特別是在車輪、車窗)。而車牌區(qū)域不會(huì)有這種情形。如果不作相應(yīng)處理,就會(huì)給車牌定位帶來(lái)干擾。因此,在定位前應(yīng)當(dāng)先作長(zhǎng)程濾波。
長(zhǎng)程濾波算法基于這樣的思想:如果許多點(diǎn)邊綴成一個(gè)長(zhǎng)程曲線L,那么長(zhǎng)程濾波器考察L在x方向和y方向的空域延展程度。如果超過(guò)閾值,即將所有屬于L的候選點(diǎn)從候選點(diǎn)集合中濾掉。
(2)顆泣濾波
長(zhǎng)程濾波后,圖像中仍有許多候選點(diǎn)集結(jié)成小型的彼此分離的顆粒狀,而車牌區(qū)的候選點(diǎn)一般不會(huì)有這種情況。由此進(jìn)行了顆粒濾波處理,濾掉顆粒噪聲。
由此本文定義兩個(gè)模塊:擊不中模板、擊中模板,如圖3所示。只要擊中模板和圖像乘積大于一定閾值,而擊不中模板與圖像乘積小于一定閾值就把擊中模板內(nèi)的圖像全置為零。
顆粒濾波基于這樣的想法:對(duì)于某一個(gè)候選點(diǎn)顆粒狀集合,在它周圍一定存在一個(gè)小矩形區(qū)(矩形區(qū)的大小與所考察的顆粒粒度有關(guān)),這個(gè)小矩形區(qū)的四周,包含非常少的候選點(diǎn)(理想情況是沒(méi)有候選點(diǎn))。那么,對(duì)全圖進(jìn)行小矩形區(qū)掃描,檢查矩形區(qū)周邊上的候選點(diǎn)個(gè)數(shù)是否小于閾值。如果小于,則認(rèn)為該矩形區(qū)內(nèi)的所有候選點(diǎn)形成了孤立的顆粒狀命令,抹去這些點(diǎn),就達(dá)到了顆粒濾波的目的。由于顆粒大小不一,可以進(jìn)行若干次不同粒度的顆粒消抹。對(duì)圖2(b)進(jìn)行長(zhǎng)程濾波與顆粒濾波后的處理結(jié)果如圖4所示。
2.2 車牌的預(yù)定位
本文利用了車牌字符的連續(xù)特性。車牌區(qū)域有連續(xù)7個(gè)字符,而且字符與字符之間的距離在一定范圍內(nèi)。本文定義從目標(biāo)到背景或者從背景到目標(biāo)為一個(gè)跳變。牌照區(qū)域相對(duì)于其它非車牌區(qū)域跳變多,而且間距在一定范圍內(nèi)和跳變次數(shù)大于一定次數(shù)。通常為14以上,因?yàn)檐嚺浦薪裼?個(gè)字符,每個(gè)字符有兩個(gè)以上跳變,為了防止字符的斷裂、模糊、車牌傾斜等的影響,本文保守起見(jiàn)采用10。
因此本文掃描線在二值化圖像中掃描定位車牌(一般來(lái)說(shuō)車牌都在車輛的下部,與車牌文字類似的文字干擾大多在上部),采用從左到右、從下到上的順序掃描。算法如下:
從下到上的順序掃描,對(duì)圖像的每一行進(jìn)行從右向左的掃描。
(1)碰到跳變點(diǎn)記錄下當(dāng)前位置,如果某行有連續(xù)10個(gè)跳變點(diǎn)以上,并且前一個(gè)跳變和后一個(gè)跳變點(diǎn)的距離在一定范圍內(nèi),就記錄下起始占烽終止點(diǎn)位置。
(2)如果連續(xù)有十行以下這樣的跳變點(diǎn),并且相鄰上下行的起始點(diǎn)和終止點(diǎn)相鄰。就認(rèn)為該區(qū)域是車牌預(yù)選區(qū)域。圖5顯示一幅典型的車輛圖像的定位結(jié)果圖。
從定位結(jié)果看,本定位算法還適合車輛圖像中包含多車牌的情況,而且定位速度受多車牌影不大。雖然車燈和車上的字符(包括車牌、車燈等垂直邊緣豐富的區(qū)域,以及繳費(fèi)車牌等)也可能定位為預(yù)選區(qū)域,但是由于它們大都在車牌的上方,本文又采用從下而上的方式對(duì)預(yù)選區(qū)域進(jìn)行篩選,所以對(duì)定位速度影響不大。在99%以上的情況下遇到的的第一個(gè)預(yù)選區(qū)域是車牌區(qū)域如圖6(a)、(c),很少有象圖6(b)的情況。基于這種情況,本文這樣設(shè)計(jì)定位策略:若要求實(shí)時(shí)處理,就只選取第一個(gè)預(yù)選區(qū)域,把它送入切分和識(shí)別模塊;如果不要求實(shí)時(shí)性,就可以把各個(gè)預(yù)選區(qū)域分別送入切分和識(shí)別模塊。同時(shí)對(duì)于2000式車牌(圖6(c)),本文算法也能準(zhǔn)確定位。對(duì)于2000式車牌中上排的字符,只能通過(guò)切分模塊反饋獲得車牌左右邊界的進(jìn)一步定位。
對(duì)大多數(shù)車輛來(lái)說(shuō)車牌定位非常準(zhǔn)確,但是對(duì)某些車牌來(lái)說(shuō),特別是貨車的車牌,牌照很有可能與附近的汽車紋理輪廓的某些區(qū)域發(fā)生了粘連,所有這些區(qū)域均構(gòu)成了候選牌照區(qū)。因此為提取正確車牌區(qū)域,必須設(shè)法去除虛假候選牌照區(qū),從粘連的候選牌照區(qū)和復(fù)合塊中分離出真正的牌照區(qū)。在實(shí)際場(chǎng)景中,用上述算法預(yù)選的區(qū)域粘連都是與車牌左右兩邊的一些紋理輪廓粘連,幾乎不與車牌上下部分粘連(由于算法只利用垂直邊緣),所以前面定位的預(yù)選區(qū)域的高度就可以近似為車牌的高度,可以依據(jù)車牌的先驗(yàn)知識(shí),根據(jù)牌照字符高寬比,可估計(jì)出牌照字符寬度CharWidth。在此可能參看文獻(xiàn)的算法。該算法通過(guò)牌照字符度估計(jì)出牌照寬度Platewidth(對(duì)于普通車牌一般取10×CharWidth),同時(shí)根據(jù)牌照區(qū)圖像的垂直邊緣圖在牌照字符處高度集中,而在其他地方相對(duì)分散的紋理特征和估計(jì)出的牌照寬度來(lái)自動(dòng)搜索牌照字符區(qū)域所在的位置,即真正車牌區(qū)域邊緣向下投影為最大。具體步驟可參看文獻(xiàn)。
采用該方法對(duì)圖7進(jìn)行了牌照左右邊界確定,結(jié)果如圖8所示。白色矩形框,是車牌的預(yù)選區(qū)域??梢钥闯銎滠嚺婆c車燈粘連,根據(jù)預(yù)定位的長(zhǎng)度比大于一定數(shù)值,就認(rèn)為車牌和車燈等區(qū)域粘連。運(yùn)行上述算法,進(jìn)一步確定車牌左右邊界。結(jié)果如圖8所示。
3 實(shí)驗(yàn)結(jié)果
部分車輛圖像定位結(jié)果如圖9所示。
結(jié)果分析:
①準(zhǔn)確性:實(shí)驗(yàn)結(jié)果表明車牌定位的準(zhǔn)確性大于99%,車牌定位的區(qū)域在外界有干擾以及車牌傾斜時(shí)比車牌稍大。
②時(shí)間特性:根據(jù)車牌情況不同在VC環(huán)境下運(yùn)行時(shí)間在0.1到0.15秒之間(128M內(nèi)存PIII 733)。
③適應(yīng)性:車牌的噪聲對(duì)定位沒(méi)有影響,在光照很強(qiáng)和光照很弱的情況下,都能提取出車牌的圖像。但對(duì)于車牌嚴(yán)重腿色的情況,由于檢測(cè)不到筆畫等的邊緣會(huì)導(dǎo)致定位失敗。
④其它特性:本定位算法適合車輛圖像中包含多車牌的情況,而且定位速度受多車牌影響不大(同時(shí)也可能出現(xiàn)定位錯(cuò)誤的區(qū)域和車燈等垂直邊緣豐富的區(qū)域以及繳費(fèi)車牌區(qū)域等,這可以在以后的切分和識(shí)別模塊進(jìn)行拋棄)。