,,,,
(浙江工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 杭州 310023)
當(dāng)前,車牌識(shí)別技術(shù)在停車場(chǎng)出入口、公路卡口等場(chǎng)景下得到廣泛應(yīng)用。車牌識(shí)別技術(shù)通常包括車牌定位、字符分割和字符識(shí)別等步驟[1]。其中,車牌傾斜與錯(cuò)切對(duì)于字符分割具有重要影響。目前主流的車牌傾斜或錯(cuò)切校正方法主要分為五大類:直線法、角點(diǎn)檢測(cè)法、主方向分析法、方向場(chǎng)法和投影法。
直線法包括直線檢測(cè)[2-3]和直線擬合兩種方法。然而直線檢測(cè)法在邊框缺失的情況下無法檢測(cè)到正確的傾斜角度,直線擬合法則在車牌存在污漬、字符粘連或者斷裂的情況下,也會(huì)出現(xiàn)偏差。角點(diǎn)檢測(cè)法[4-5]在角點(diǎn)檢測(cè)時(shí)易受到污漬干擾,導(dǎo)致角點(diǎn)檢測(cè)出錯(cuò)。主方向分析法所采用的分析手段分別有主成分分析法[6-7]、圖像矩法[8-9]和K-L展開式法[10]。方向場(chǎng)法[11]則耗時(shí)長(zhǎng)。此外,以上方法只適用于車牌的水平傾斜校正,對(duì)于車牌錯(cuò)切變形的情況則難以正確處理,為此,通常需結(jié)合其他方法進(jìn)行垂直校正[12-13]。
投影法[14-19]利用車牌在傾斜方向的投影特征,通過旋轉(zhuǎn)圖像或者Radon變換計(jì)算圖像在不同角度上的投影找到投影特征值存在的角度即為車牌的傾斜角度。該方法能夠適用于車牌的水平傾斜校正和垂直錯(cuò)切校正,并且校正精度較高,容易實(shí)現(xiàn)。因此,在目前的車牌傾斜校正方法中被使用得比較多。然而,現(xiàn)有投影法均需對(duì)車牌進(jìn)行大量的旋轉(zhuǎn)操作,即使利用Radon變換,也需要固定計(jì)算一定角度范圍內(nèi)每個(gè)角度上車牌的投影特征值,所以該方法比較耗時(shí)。
提出的快速車牌傾斜與錯(cuò)切校正方法主要利用了車牌局部投影最大方差的特征,即車牌局部在其傾斜角度方向上投影值的方差將達(dá)到最大值。具體算法流程如圖1所示。根據(jù)式(1)對(duì)車牌圖像進(jìn)行垂直錯(cuò)切校正,其中,(x,y)為校正前的像素坐標(biāo),(x1,y1)為校正后的圖像坐標(biāo),θ為錯(cuò)切角度,H為車牌圖像高度。
(1)
圖1 車牌傾斜與錯(cuò)切校正算法流程圖
算法重點(diǎn)包含以下三方面的貢獻(xiàn): (1) 提取車牌圖像中的局部特征圖像用于車牌水平傾斜角度和垂直錯(cuò)切角度的計(jì)算,避免對(duì)車牌無關(guān)部位的投影計(jì)算;(2)探索一定角度范圍內(nèi)車牌投影方差的分布規(guī)律,根據(jù)方差分布規(guī)律無需計(jì)算每個(gè)角度對(duì)應(yīng)的車牌投影方差即可得到最大投影方差對(duì)應(yīng)的角度;(3)整合車牌左右兩邊的垂直錯(cuò)切角度得到最終的車牌垂直錯(cuò)切角度,提高車牌垂直錯(cuò)切角度檢測(cè)的魯棒性。下面就這三部分分別進(jìn)行介紹。
在實(shí)驗(yàn)過程中發(fā)現(xiàn)并不需要對(duì)一整幅車牌圖像進(jìn)行投影才能使其在傾斜角度方向上投影方差達(dá)到最大值。實(shí)際上,導(dǎo)致車牌在其傾斜角度方向上投影方差達(dá)到最大值的只是車牌中局部區(qū)域的投影值。因此,只需提取車牌中影響投影方差大小的局部區(qū)域作為局部特征圖像,并對(duì)這一圖像進(jìn)行不同方向的投影,即可根據(jù)最大投影方差檢測(cè)到車牌的傾斜角度。
在車牌中導(dǎo)致其在水平傾斜方向上和垂直錯(cuò)切方向上投影方差達(dá)到最大值的局部區(qū)域是不同的。首先以水平傾斜為例,投影方差越大說明在此方向上車牌投影值的波動(dòng)越大,所以需要分析車牌中哪一區(qū)域在其水平傾斜角度方向上的投影值波動(dòng)比較大,而在其他角度方向上的投影值波動(dòng)則比較平緩。如圖2所示為同一車牌在不同方向上的投影圖,圖2(a)表示車牌在其水平傾斜角度方向上的投影圖,圖2(b)表示車牌在偏離其水平傾斜角度方向10°的方向上的投影圖,圖2(c)表示車牌在偏離其水平傾斜角度方向-10°的方向上的投影圖。通過分析三幅投影圖,可以明顯看到圖2(a)所示的車牌在其水平傾斜角度方向上的投影值波動(dòng)是最大的,并且波動(dòng)比較大的投影值主要集中在圖2(a)所示的虛線框區(qū)域中。而在圖2(b)和圖2(c)所示的虛線框區(qū)域中投影值曲線則沒有明顯的波動(dòng),相比較于圖2(a)中的投影曲線更加平滑。
因此,在車牌水平傾斜角度的檢測(cè)過程中只需要關(guān)注虛線框區(qū)域內(nèi)的投影值,而無需關(guān)注虛線框區(qū)域以外的投影值。虛線框區(qū)域內(nèi)的投影值剛好對(duì)應(yīng)著車牌的頂部和底部區(qū)域,因此,只需提取車牌的頂部和底部區(qū)域,并將提取的2個(gè)區(qū)域在垂直方向上合成得到一個(gè)局部特征圖像。在檢測(cè)水平傾斜角度時(shí)只需要對(duì)這個(gè)圖像進(jìn)行不同方向投影即可找到最大投影方差對(duì)應(yīng)的角度。如圖3(a)所示,分別提取車牌的頂部四分之一和底部四分之一區(qū)域進(jìn)行合成。
圖2 車牌在不同方向上的投影圖
類似于水平傾斜的情況,導(dǎo)致車牌在其垂直錯(cuò)切方向上投影方差達(dá)到最大值的主要是車牌字符與字符之間的投影值波動(dòng),因此只需提取車牌中間字符區(qū)域計(jì)算投影值即可。如圖3(b)所示,提取車牌中間三分之一部分用于檢測(cè)車牌垂直錯(cuò)切角。
圖3 用于檢測(cè)水平傾斜角和垂直錯(cuò)切角的局部特征圖像提取示意圖
車牌水平傾斜角度的檢測(cè)需要將提取的局部特征圖像在水平方向一定角度范圍內(nèi)投影,并且找到投影方差最大的角度。車牌垂直錯(cuò)切角的檢測(cè)則需要將提取的局部特征圖像在垂直方向一定角度范圍內(nèi)投影,并且找到投影方差最大的角度。那么在一定角度范圍內(nèi)找最大投影方差對(duì)應(yīng)的角度是否必須在每個(gè)角度上計(jì)算其投影方差呢?即使是對(duì)提取的局部特征圖像而不是整張車牌圖像進(jìn)行投影,如果需要在每個(gè)角度上進(jìn)行一次投影并計(jì)算投影方差,計(jì)算量仍然非常大。下面將介紹一種基于一定角度范圍內(nèi)車牌投影方差分布規(guī)律的最大投影方差判斷方法,該方法不需要在每個(gè)角度進(jìn)行投影即可得到最大投影方差對(duì)應(yīng)的角度。
車牌垂直錯(cuò)切角檢測(cè)和水平傾斜角檢測(cè)的思路類似,下面就以水平傾斜角的檢測(cè)為例進(jìn)行介紹。圖4展示了從某張水平傾斜角度為10°的車牌中提取的局部特征圖像的投影方差在偏離水平方向-30°~30°之間的分布曲線圖,可以看到偏離水平方向10°的時(shí)候?qū)?yīng)的投影方差處于曲線的峰值,兩邊呈遞減的趨勢(shì)。通過試驗(yàn)多張車牌,發(fā)現(xiàn)從多張車牌中提取的局部特征圖像的投影方差都存在這個(gè)規(guī)律。根據(jù)這個(gè)方差分布規(guī)律,可以快速地定位到車牌最大投影方差對(duì)應(yīng)的角度,具體算法偽代碼如圖5所示。算法具體描述如下:
從水平方向0°開始,使局部特征圖像的坐標(biāo)系往逆時(shí)針方向偏離水平方向30°的方向旋轉(zhuǎn),旋轉(zhuǎn)的步長(zhǎng)為1°。每旋轉(zhuǎn)1°則將特征圖像在圖像的垂直坐標(biāo)軸上進(jìn)行一次投影并計(jì)算其投影方差。在這個(gè)過程中記錄下最大的投影方差MaxVar1和最大的投影方差對(duì)應(yīng)的角度MaxAngle1。若在當(dāng)前記錄的MaxAngle1之后連續(xù)5個(gè)角度方向上計(jì)算得到的投影方差都比記錄的最大投影方差MaxVar1的值小,則默認(rèn)當(dāng)前記錄的最大投影方差MaxVar1就是特征圖像在偏離水平方向0°~30°之間的最大投影方差,該最大投影方差對(duì)應(yīng)的角度MaxAngle1就是在偏離水平方向0°~30°之間找到的車牌的水平傾斜角度。無需再繼續(xù)計(jì)算特征圖像在其他角度方向上對(duì)應(yīng)的投影方差。
在此基礎(chǔ)上,往順時(shí)針方向從偏離水平方向-1°開始,使局部特征圖像的坐標(biāo)系往偏離水平方向-30°的方向旋轉(zhuǎn),旋轉(zhuǎn)的步長(zhǎng)同樣為1°。按照同樣的步驟記錄最大投影方差MaxVar2的值和最大的投影方差對(duì)應(yīng)的角度MaxAngle2的值。最終比較MaxVar1和MaxVar2的值,選取較大值對(duì)應(yīng)的角度作為車牌水平傾斜角度。
圖4 水平傾斜車牌特征圖像的投影方差分布圖
圖5 車牌水平傾斜角度檢測(cè)算法偽代碼
由于個(gè)別車牌字符形狀在垂直方向上本身就存在一定的傾斜,比如“7”、“6”、“9”等字符存在往左邊傾斜的現(xiàn)象。如果一個(gè)車牌中有連續(xù)幾個(gè)字符都存在這樣的現(xiàn)象,那么直接找到最大投影方差對(duì)應(yīng)的角度作為車牌的垂直錯(cuò)切角很可能會(huì)出現(xiàn)偏差。因此,為了避免這種偶然性的發(fā)生,提出了將用于檢測(cè)車牌垂直錯(cuò)切角的局部特征圖像分為左半部分和右半部分,在左半部分和右半部分分別使用第3節(jié)描述的方法檢測(cè)出垂直錯(cuò)切角度θ1和θ2,然后根據(jù)式(2)確定車牌最終的垂直錯(cuò)切角度θ。若兩邊檢測(cè)到的垂直錯(cuò)切角是同一個(gè)方向的,可信度就比較高,將選擇較小角度作為車牌的垂直錯(cuò)切角度。若兩邊檢測(cè)到的垂直錯(cuò)切角是不同方向且2個(gè)角度相差比較大,則認(rèn)為角度較大的一側(cè)受到了字符本身傾斜的影響,將選擇較小角度作為車牌的錯(cuò)切角度。若兩邊檢測(cè)到的垂直錯(cuò)切角方向不同且2個(gè)角度相差較小,則2個(gè)角度的可信度都不高,不能進(jìn)行校正。
(2)
為了驗(yàn)證所提出方法的高效性和魯棒性,將提出方法與文獻(xiàn)[16]提出的基于字符投影最小距離的車牌校正方法和文獻(xiàn)[18]在車牌定位階段中提出的基于車牌投影標(biāo)準(zhǔn)差的車牌校正方法進(jìn)行了正確率和效率上的對(duì)比。文獻(xiàn)[16]和文獻(xiàn)[18]在思路上都是采用典型的旋轉(zhuǎn)投影法,本文所提方法基本思路也是基于旋轉(zhuǎn)投影,因此實(shí)驗(yàn)中選擇與這兩種方法進(jìn)行實(shí)驗(yàn)結(jié)果的對(duì)比。使用3000張不同場(chǎng)景下的真實(shí)車牌進(jìn)行實(shí)驗(yàn),為了比較不同車牌傾斜校正方法的效率,所有車牌在實(shí)驗(yàn)過程中均規(guī)格化為204×54的大小,算法測(cè)試環(huán)境為:Windows 7, Visual Studio 2013,計(jì)算機(jī)配置是Intel(R) Celeron(R) CPU 1007U @1.50 GHZ,4 GB RAM。
實(shí)驗(yàn)對(duì)比結(jié)果如表1所示,其中正確率的統(tǒng)計(jì)中規(guī)定當(dāng)檢測(cè)到的車牌傾斜角度或者錯(cuò)切角度和真實(shí)車牌傾斜角度或者錯(cuò)切角度之間差值小于2°以內(nèi)時(shí)認(rèn)為檢測(cè)正確。經(jīng)過表1中的對(duì)比,可以看出無論在車牌校正的正確率還是算法的運(yùn)行效率上,本文所提出的方法都要優(yōu)于基于字符投影最小距離的車牌校正方法。和基于車牌投影標(biāo)準(zhǔn)差的車牌校正方法進(jìn)行比較發(fā)現(xiàn),雖然在水平校正的正確率上本文提出的方法略低,但是在水平校正和垂直校正的效率上遠(yuǎn)遠(yuǎn)高于基于車牌投影標(biāo)準(zhǔn)差的車牌校正方法。且通過對(duì)垂直錯(cuò)切角度檢測(cè)的改進(jìn),使所提出方法的垂直錯(cuò)切校正的正確率也高于基于車牌投影標(biāo)準(zhǔn)差的車牌校正方法。
表1 不同車牌校正算法的正確率和效率比較
圖6展示了其中6張車牌圖像的傾斜校正效果。從圖中可以看出,利用基于字符投影最小距離的車牌校正方法對(duì)第1張、第2張、第4張車牌的水平校正和垂直錯(cuò)切校正均失敗,且對(duì)第3張、第5張、第6張車牌的水平校正和垂直錯(cuò)切校正都存在偏差,主要是因?yàn)槭艿轿蹪n影響,其二值化圖在一定角度范圍內(nèi)各個(gè)角度方向上的投影距離都是相等的,無法找到正確的車牌傾斜角度。利用基于車牌投影標(biāo)準(zhǔn)差的車牌校正方法對(duì)第5張車牌的垂直錯(cuò)切校正失敗,主要是因?yàn)檐嚺票旧淼淖址?”在垂直方向上存在向左的傾斜的情況,導(dǎo)致整張車牌的傾斜角度檢測(cè)失敗。而使用本文方法進(jìn)行垂直錯(cuò)切校正時(shí),可以避免由于字符本身傾斜角度的影響導(dǎo)致車牌傾斜角度檢測(cè)出現(xiàn)偏差。
經(jīng)過大量真實(shí)車牌圖像的實(shí)驗(yàn),發(fā)現(xiàn)本文算法在垂直校正時(shí)還存在一定的局限性。如圖7所示的車牌圖像,左半部分檢測(cè)出來的是正確的傾斜角度,右半部分受2個(gè)“6”字符的影響,檢測(cè)出來的角度變成了-18°,由于左右兩邊檢測(cè)得到的傾斜角度是不同方向的,而且2個(gè)角度相差又比較小,因此認(rèn)為2個(gè)角度的可信度都不高,根據(jù)公式(2)得到的最終車牌的垂直錯(cuò)切角度就是0°。這雖然避免了車牌的錯(cuò)誤校正,但也使得車牌不能進(jìn)行正確的校正。所以將車牌分為兩部分分別計(jì)算錯(cuò)切角還是沒有根本性避免字符本身形狀的影響,在后續(xù)開發(fā)中需要找到一個(gè)更好的方法來解決這個(gè)問題?;蛘咴诖怪毙U倪^程中選用其他不受字符本身形狀影響的特征來代替投影方差特征進(jìn)行垂直錯(cuò)切角度的檢測(cè)。
圖7 算法局限性
針對(duì)現(xiàn)有方法的不足,本文提出基于局部投影最大方差的快速車牌傾斜與錯(cuò)切校正方法。該方法通過實(shí)驗(yàn)總結(jié)出局部投影即可反映車牌傾斜及錯(cuò)切角度的規(guī)律,在此基礎(chǔ)上,提取車牌局部特征圖像用于傾角檢測(cè)。并提出一種基于坐標(biāo)旋轉(zhuǎn)的局部投影最大方差獲取方法,從而可以快速得到車牌水平傾斜角度或垂直錯(cuò)切角度。此外,為了消除字符本身結(jié)構(gòu)對(duì)于垂直錯(cuò)切角度檢測(cè)造成的影響,提出了先左右分部檢測(cè)再合成的策略。通過對(duì)大量真實(shí)車牌進(jìn)行傾斜與錯(cuò)切校正實(shí)驗(yàn),證明本文方法能夠在保證正確率的前提下使算法的效率得到大幅度的提升,可滿足實(shí)時(shí)性需求。