王美琴,易 敏,關(guān)財(cái)忠,王茗祎
(1.佛山科學(xué)技術(shù)學(xué)院 物理與光電工程學(xué)院,廣東 佛山 528000;2.深圳大學(xué) 物理與光電工程學(xué)院,廣東 深圳 518060)
圖1 車牌定位流程圖Fig.1 Flow chart of locating license plate
圖2 基于HSV顏色分割車牌定位圖Fig.2 Diagram of locating license plate based on HSV color segmentation arithmetic
車牌識(shí)別技術(shù)是指可自動(dòng)檢測車牌和獲取車牌信息的技術(shù),是圖像處理和智能運(yùn)輸系統(tǒng)領(lǐng)域中非?;钴S的研究主題[1]。該技術(shù)可應(yīng)用在交通道路疏通、違章車輛拍照[2]、停車場收費(fèi)管理[3]等領(lǐng)域,以降低人工成本和提高交通管理的效率。該技術(shù)包括三部分,分別為車牌定位、車牌校正和字符識(shí)別。車牌定位法有邊緣檢測[4]、顏色分割[5]等算法?;谶吘墮z測的車牌定位法實(shí)時(shí)性和降噪效果好,但易受矩形背景圖像和車牌傾斜的干擾;基于顏色車牌定位法,根據(jù)車牌的底色可以快速準(zhǔn)確地定位車牌,但不適用車牌與車輛顏色相似的情況。車牌校正法有Radon 和Hough 變換校正[6],Hough 變換速度較快,但Radon 比Hough 變換更準(zhǔn)確、依賴性小。車牌字符識(shí)別法有基于神經(jīng)網(wǎng)絡(luò)[7]、機(jī)器學(xué)習(xí)的字符識(shí)別法?;谏窠?jīng)網(wǎng)絡(luò)的字符識(shí)別算法抗干擾能力強(qiáng),但需建立大量的訓(xùn)練樣本集才有理想的識(shí)別效果;基于機(jī)器學(xué)習(xí)字符識(shí)別算法不需建立大量的訓(xùn)練樣本集也可以快速、準(zhǔn)確地識(shí)別字符。
論文主要在車牌定位、校正和識(shí)別3 個(gè)方面做了改進(jìn),分別采用HSV 顏色分割結(jié)合SVM-Sobel 邊緣檢測法定位車牌、Radon 變換結(jié)合中心投影法校正車牌和機(jī)器學(xué)習(xí)模型識(shí)別車牌字符。對設(shè)計(jì)的車牌識(shí)別系統(tǒng)進(jìn)行了不同拍攝角度、拍攝距離、光線強(qiáng)度等條件的測試以及效率測試,車牌定位、校正、字符識(shí)別成功率分別可達(dá)98.5%,99.0%,98.1%,系統(tǒng)識(shí)別車牌平均耗時(shí)4s。實(shí)踐表明,該系統(tǒng)可為地下停車場的停車查詢終端提供數(shù)據(jù)支持,解決了在無明顯特征的大型地下停車場中,當(dāng)車主忘記泊車位置時(shí),如何快速準(zhǔn)確地找到自己的車的難題。
車牌識(shí)別系統(tǒng)包括三部分,分別為車牌定位、車牌校正和字符識(shí)別。車牌定位即確定車牌在車輛圖像中的方位并將其截取出來;車牌校正即校正傾斜和畸變的車牌;字符識(shí)別即自動(dòng)識(shí)別車牌字符,獲得車牌號(hào)。
本文采用HSV 顏色分割與SVM-Sobel 邊緣檢測相結(jié)合的方法定位車牌。車牌定位算法第一步是采用HSV 顏色分割定位車牌,當(dāng)光線分布程度失衡或車輛與車牌顏色相似導(dǎo)致車牌定位失敗時(shí),第二步則采用SVM-Sobel 邊緣檢測法定位車牌[8],即根據(jù)SVM 分類模型的判斷結(jié)果調(diào)整Sobel邊緣檢測閾值,實(shí)現(xiàn)對車牌的精確定位。車牌定位流程如圖1 所示。
在RGB 顏色空間中,人眼難以判斷相似顏色的差異,而在HSV 顏色空間中,兩種顏色非相似的程度可通過計(jì)算兩點(diǎn)顏色的距離而獲得[8],所以在HSV 空間中更有利于車牌區(qū)域的提取。基于HSV 顏色空間定位車牌的流程包括3個(gè)步驟,分別為將RGB 轉(zhuǎn)HSV 空間,基于水平和垂直投影分割車牌和歸一化,最終獲取車牌區(qū)域。效果如圖2 所示。
在被樣本空間映射的高維空間中,支持向量機(jī)(SVM)將結(jié)構(gòu)風(fēng)險(xiǎn)降至最低而構(gòu)建最合適的分類超平面。SVM 不僅有較高的準(zhǔn)確率,且相比神經(jīng)網(wǎng)絡(luò)模型,SVM 數(shù)據(jù)處理的速度更快[9]。SVM 車牌分類模型的訓(xùn)練分三部分:首先,將手動(dòng)截取和HSV 顏色空間獲取的車牌和偽車牌歸一化大小,獲得250 張車牌、675 張偽車牌,并將它們存放在兩個(gè)不同的文件夾;其次,編寫程序讀取所有圖像并對其濾波及二值化,而后將其轉(zhuǎn)為行矩陣,以文件夾的命名為標(biāo)簽置于對應(yīng)行矩陣最后;最后,將數(shù)據(jù)導(dǎo)入SVM 模型,訓(xùn)練樣本數(shù)據(jù)。訓(xùn)練得到的模型識(shí)別正確率為97.6%。
SVM-Sobel 邊緣檢測車牌定位算法由圖像預(yù)處理和SVM-Sobel 邊緣檢測兩部分組成。圖像預(yù)處理包括加權(quán)平均值法灰度化、中值濾波和灰度拉伸,使車牌區(qū)域更突出。不同環(huán)境下能將車牌與背景分離的Sobel 邊緣檢測閾值不同。因此,本文將Sobel 邊緣檢測與SVM 模型結(jié)合,根據(jù)SVM 模型對Sobel 邊緣檢測獲取的車牌候選區(qū)域的判斷結(jié)果設(shè)定最佳邊緣檢測閾值。據(jù)測試,設(shè)置邊緣檢測閾值的范圍為0.02 ~0.35,能取得較高的車牌定位正確率。圖3為該算法流程。
圖3 SVM- Sobel邊緣檢測車牌定位流程Fig.3 Flow chart of locating license plate based on SVM-Sobel edge detection arithmetic
圖4 從車牌候選區(qū)選出車牌Fig.4 Diagram of selecting license plate from candidate areas
圖5 車牌校正Fig.5 License plate correction
SVM-Sobel 邊緣檢測算法包括Sobel 邊緣檢測、二值化、閉運(yùn)算、去干擾、最小外接矩形求取車牌候選區(qū)域、SVM 模型分類真?zhèn)诬嚺啤?/p>
1)Sobel 邊緣檢測
調(diào)用“BW=edge(J,’sobel’,thresh)”函數(shù)實(shí)現(xiàn)Sobel 邊緣檢測。其中,J 是預(yù)處理后灰度圖像,BW 是邊緣檢測后的圖像。thresh 是邊緣檢測的閾值,范圍從0 ~1,閾值越小,可獲得更多圖像輪廓細(xì)節(jié)。
2)圖像二值化、閉運(yùn)算、去干擾和最小外接矩形求車牌候選區(qū)域
將邊緣檢測后的車輛圖像二值化,可簡化計(jì)算。閉運(yùn)算可填補(bǔ)輪廓邊緣細(xì)小的斷痕,可選擇3×20 的矩形模板作為結(jié)構(gòu)元素進(jìn)行閉運(yùn)算。為減少干擾,調(diào)用“BW2 =bwareaopen(BW,P)”函數(shù),移除像素點(diǎn)P 少于800 的小面積對象。因車牌區(qū)域是矩形,調(diào)用regionprops 函數(shù)篩選符合車牌的寬高比的矩形區(qū)域。中國車牌的寬高尺寸一般為440mm×140mm,所以設(shè)定寬高比區(qū)間為[3.15×0.7,3.15×1.3][10],截取和保存符合該特征的矩形區(qū)域。
3)SVM 模型分類真?zhèn)诬嚺?/p>
設(shè)Sobel 邊緣檢測閾值初始值為0.02,使用SVM 模型對獲得的多個(gè)車牌候選區(qū)域進(jìn)行判斷,若其中有車牌,則輸出車牌,否則增加Sobel 邊緣檢測閾值,進(jìn)行新一輪邊緣提取及車牌真?zhèn)蔚呐袛唷Mㄟ^SVM 判斷模型,從多個(gè)車牌候選區(qū)域中獲取車牌效果如圖4 所示。
Radon 變換可校正傾斜車牌,當(dāng)Radon 校正后字符依然傾斜,說明車牌畸變,則采用中心投影法進(jìn)行畸變校正。
以原始圖像的中心為原點(diǎn),Radon 變換將在原平面內(nèi)的點(diǎn)映射到特定徑向坐標(biāo)P 與角度θ 組成平面上。Radon變換校正車牌可分為3 個(gè)步驟。首先,為提高后續(xù)車牌邊緣提取的速度及精準(zhǔn)度,需對車牌進(jìn)行灰度化和濾波處理后再檢測車牌邊緣;其次,調(diào)用Radon 函數(shù),獲得車牌上邊界的傾斜角度;最后,采用雙線性插值法校正傾斜車牌。校正效果如圖5(b)所示。
中心投影法(Perspective Mapping)可將任意四邊形的車牌區(qū)域映射到矩形區(qū)域從而進(jìn)行畸變校正。如圖5(c)所示,由點(diǎn)O,I10,I11,I01組成的任意四邊形的畸變車牌經(jīng)過中心投影法可以映射到由O,S10,S11,S10所組成的矩形區(qū)域。圖5(b)畸變校正后得到圖5(d)。
畸變車牌中的任意一點(diǎn)I 映射到矩形區(qū)域任意一點(diǎn)S,S 可表示為:
同理,畸變車牌中的任意一點(diǎn)I 可表示為(y0和y1為未知系數(shù),a0和a1為畸變車牌所確定的常數(shù)):
根據(jù)各向量之間的關(guān)系,最終可得畸變車牌與矩形區(qū)域的映射關(guān)系:
設(shè)定輸出矩形區(qū)域大小后,可由(1)式可確定x0和x1。獲取畸變車牌的4 個(gè)頂點(diǎn)坐標(biāo)后,可通過(3)式計(jì)算得到a0和a1。將已知的a0,a1,x0,x1代入(4)式,即可得到y(tǒng)0,y1的值。將y0,y1代入(2)式,可獲得I 點(diǎn)的坐標(biāo)。將畸變的車牌圖像I 點(diǎn)的灰度值賦值到矩形區(qū)域S 點(diǎn),即可校正畸變車牌。
求取車牌4 個(gè)頂點(diǎn)的坐標(biāo)包括兩步驟:首先,在HSV顏色空間中確定車牌的上下邊框的位置(防止傾斜車牌背景的干擾);其次,將車牌分割成4 份等寬的區(qū)域,在最左和最右的區(qū)域中利用四邊形對角線最長的特點(diǎn),分別可獲車牌的左上、左下和右上、右下的坐標(biāo)。
車牌字符識(shí)別流程如圖6 所示。為降低外界的干擾,首先需要對校正后的車牌區(qū)域進(jìn)行圖像預(yù)處理,即灰度化處理、中值濾波和二值化;其次,為正確分割車牌字符,需去除車牌邊框、鉚釘和間隔符(車牌圖像的第2 和第3個(gè)字符之間的圓點(diǎn)圖形);最后,本文采用機(jī)器學(xué)習(xí)模型識(shí)別車牌字符。
根據(jù)對像素點(diǎn)的逐行和逐列掃描,可確定字符的位置從而去除車牌的外邊框與鉚釘[11]。從車牌高度的一半處,分別向上和向下行掃描,記錄首個(gè)白色像素點(diǎn)數(shù)少于32 的行數(shù),即字符上、下界線的位置。一般民用車輛的車牌寬440mm,字符寬45mm,字符間距寬12mm,則車牌寬度的16/440、406/440 處分別為第一個(gè)字符和最后字符的位置。在這兩個(gè)位置分別向左和向右列掃描,記錄首個(gè)白色像素點(diǎn)數(shù)少于3 時(shí)的列數(shù),即車牌字符左右側(cè)的界線。 截取上、下、左右的字符邊界線范圍內(nèi)的圖像,可去除車牌外邊框和鉚釘。效果如圖7(b)所示。
圖6 車牌字符識(shí)別流程圖Fig.6 Flow chart of recognizing the characters of license plate
圖7 車牌字符處理過程Fig.7 License plate characters processing
間隔符的存在會(huì)使程序誤判其為車牌字符,使得字符切割錯(cuò)誤。去除邊框后,車牌寬409mm,間隔符(10mm)在2 個(gè)寬45mm 字符和寬12mm 字符間距之后,即字符區(qū)域119/409 處[11],即字符區(qū)域的0.29 處。經(jīng)測試,因拍攝距離和角度不同,間隔符也可能在整個(gè)字符區(qū)域長度的0.3或0.28 處。依次判斷這3 個(gè)位置的白色像素點(diǎn)數(shù)是否非零,記非零的位置為間隔符所處位置。從間隔符的位置向左右兩側(cè)列掃描,記錄左右兩側(cè)第一個(gè)白色像素點(diǎn)數(shù)小于1 的列數(shù),將兩列之間的圖像矩陣置0,即可去除間隔符。效果如圖7(c)所示。
采用列掃描與字符寬度的約束可實(shí)現(xiàn)車牌字符的分割。車牌第一個(gè)字符是漢字,由于個(gè)別漢字筆畫不連續(xù),需進(jìn)行字符是否斷裂和字符是否粘連兩種判斷。剩余6 個(gè)字符由字母和數(shù)字組成,筆畫連貫,只需進(jìn)行字符是否粘連的判斷。字符分割如圖7(d)所示。
有監(jiān)督的機(jī)器學(xué)習(xí)訓(xùn)練模型可以驗(yàn)證和分為二類問題或多類問題。通過同時(shí)訓(xùn)練多個(gè)機(jī)器學(xué)習(xí)模型,訓(xùn)練完成后比較它們的驗(yàn)證誤差,可選擇出最佳模型,進(jìn)而實(shí)現(xiàn)高準(zhǔn)確率的字符識(shí)別功能。車牌字符識(shí)別步驟包括制作訓(xùn)練樣本集、訓(xùn)練模型與最優(yōu)模型選取、預(yù)測字符。
1)制作訓(xùn)練樣本集
因車牌首個(gè)字符是漢字,后續(xù)6 個(gè)字符是字母與數(shù)字的隨機(jī)組合,則將漢字與字母數(shù)字分開訓(xùn)練。每個(gè)字符的訓(xùn)練需要50 張字符模板并且以該字符名作為文件夾命名。編寫程序讀取所有圖像并對其濾波、二值化,而后將其轉(zhuǎn)為行矩陣,以文件夾的命名為標(biāo)簽置于對應(yīng)行矩陣最后。
表1 車牌定位法的測試結(jié)果Table 1 Test results of license plate positioning methods
2)模型訓(xùn)練與最優(yōu)模型選取
將數(shù)據(jù)導(dǎo)入Classification learner APP 中,運(yùn)行全部訓(xùn)練模型,待模型訓(xùn)練完畢,將識(shí)別率最高的模型導(dǎo)出。
3)字符預(yù)測
歸一化切割出來的字符,并將其圖像矩陣轉(zhuǎn)為行矩陣,用訓(xùn)練好的機(jī)器學(xué)習(xí)模型對該字符進(jìn)行預(yù)測。
以不同角度、距離、光線強(qiáng)度拍攝的700 張地下停車場車輛圖像為測試樣本,從車牌定位、車牌校正和字符識(shí)別3 個(gè)方面對論文設(shè)計(jì)的系統(tǒng)進(jìn)行效果測試。
測試520 張不同情況的車輛,HSV 顏色空間車牌定位法、SVM-Sobel 邊緣檢測車牌定位法和兩種方法的結(jié)合的定位結(jié)果見表1。
由表1 可知,以上3 種定位法在亮暗環(huán)境都適用。在SVM 顏色空間無法定位車身與車牌顏色相似的車牌,SVMSobel 邊緣檢測法易受車牌傾斜程度的影響。針對非車身與車牌顏色一致且傾斜的車輛,兩種方法的結(jié)合的定位成功率基本可達(dá)97.0%~98.5%。
對200 張傾斜或畸變的車牌進(jìn)行校正。校正結(jié)果見表2。Radon 變換只能對車牌進(jìn)行旋轉(zhuǎn)校正,適用性低。中心投影法的校正效果比Radon 變換效果好,但有少部分車牌因過于傾斜而無法正確獲取車牌4 個(gè)頂點(diǎn)坐標(biāo)進(jìn)而導(dǎo)致校正失敗。Radon 變換結(jié)合中心投影法校正車牌,可以在一定程度上彌補(bǔ)這兩種方法單獨(dú)使用時(shí)的缺陷,校正成功率達(dá)99.0%。
表2 200張車牌校正測試結(jié)果Table 2 Test results of correcting license plate
表3 字符識(shí)別結(jié)果Table 3 Test results of recognizing license plate characters
從表3 可看出,測試200 張車牌分割出的字符,k 近鄰(k-nearest neighbor)模型的漢字識(shí)別正確率可達(dá)99%。SVM 模型的數(shù)字和字母識(shí)別率可達(dá)98.1%。在KNN 模型中,只要漢字不過于殘缺或扭曲,基本可被識(shí)別。在SVM模型中,個(gè)別數(shù)字或字母容易混淆,比如8 和B,0 和D,G 和Q。綜合兩種模型的判斷結(jié)果,車牌字符識(shí)別正確率為98.1%。
本文設(shè)計(jì)的車牌識(shí)別系統(tǒng)能夠較好地實(shí)現(xiàn)地下停車場的車牌識(shí)別功能,但依然存在需改進(jìn)之處。在車牌定位方面,本文所采取的方法針對車牌與車身顏色相同的傾斜車牌的定位成功率較低,需繼續(xù)完善算法。在車牌校正方面,可采用更合適的算法直接提取車牌4 個(gè)頂點(diǎn)坐標(biāo)。在車牌字符識(shí)別方面,為提高字符識(shí)別正確率,訓(xùn)練樣本可以加入一定數(shù)量的傾斜或筆畫稍微殘缺的字符。改善后,該系統(tǒng)有望應(yīng)用在高速公路收費(fèi),違章車輛拍照和違法車輛跟蹤等領(lǐng)域。