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