聶文都 蔡錦凡
(西京學(xué)院 西安 710123)
隨著我國經(jīng)濟(jì)的高速發(fā)展,小汽車越來越普及,但小汽車也帶來了一系列的交通管理問題,因此建立智能的交通管理系統(tǒng)是很有必要的,其中汽車的車牌識別系統(tǒng)是很重要的一部分。汽車車牌識別領(lǐng)域也是數(shù)字圖像處理技術(shù)[1]、計(jì)算機(jī)視覺技術(shù)[2]和人工智能(AI)技術(shù)[3]重要的研究方向之一。通過對監(jiān)控視頻圖像進(jìn)行逐幀獲取車牌圖像,再利用上述技術(shù)進(jìn)行對車牌的精確定位分析和車牌號碼的識別。車牌識別在現(xiàn)在的高速公路、智慧停車場、城市交通等都有著廣泛的應(yīng)用。本文提出基于OpenCV和SVM的車牌識別方法,可高效獲取車輛車牌信息。
對原始圖像進(jìn)行灰度化處理,如圖1(a),再對其進(jìn)行邊緣檢測。在傳統(tǒng)車牌識別方法中常用So?bel算子對圖像進(jìn)行邊緣檢測[4],Sobel算子對灰度漸變和噪聲較多的圖像處理效果較好,但是Sobel算子對邊緣定位不是很準(zhǔn)確,檢測的精度不夠,得不到好的邊緣檢測結(jié)果。本用Canny算子來實(shí)現(xiàn)對圖像邊緣信息的檢測[5],Canny有較好的抗噪能力,能夠檢測弱邊緣,使用兩種不同的閾值分別檢測強(qiáng)邊緣和弱邊緣,能高效提取字符的邊緣信息。Canny算子處理后的圖像如圖1(b)。
圖1 圖像邊緣檢測
為了克服簡單局部平均法的弊端,目前已經(jīng)提出許多保持邊緣細(xì)節(jié)的局部平滑算法[6],主要思想是如何選擇領(lǐng)域的大小、形狀和方向、領(lǐng)域點(diǎn)的權(quán)重系數(shù)等。高斯平滑[7]就是諸多平滑算法中的一種,在高斯平滑中,對圖像進(jìn)行平均時(shí),不同位置的像素被賦予了不同的權(quán)值。對原始圖像進(jìn)行高斯平滑處理,如圖2(a)。中值濾波不但可以去除孤點(diǎn)噪聲,而且可以保持圖像的邊緣特性,不會產(chǎn)生顯著的模糊。對圖像進(jìn)行中值濾波處理,如圖2(b)。
圖2 圖像去噪
車牌定位就是從獲取到的車輛圖像中確定車牌在整張圖像中的具體位置,車牌定位的精確度是整個(gè)車牌識別的前提。傳統(tǒng)的車牌定位方法是直接對車牌進(jìn)行Sobel運(yùn)算,取其輪廓將車牌區(qū)域標(biāo)出。由于Sobel算子對邊緣檢測的抗噪能力相對較弱,所以本文使用Canny算子對車牌進(jìn)行運(yùn)算,彌補(bǔ)了Sobel算子的缺點(diǎn)。再基于HSV顏色空間[8]和SVM來實(shí)現(xiàn)對車牌的定位。
HSV(Hue Saturation Value)是一種比較直觀的顏色模型,在圖像領(lǐng)域中有較為廣泛的應(yīng)用。車牌圖像都是RGB圖像,將車牌圖像RGB值映射到HSV顏色空間上的色域值來進(jìn)行車牌定位,根據(jù)HSV顏色空間和實(shí)驗(yàn)表明,H值在220~260之間時(shí),為藍(lán)色車牌;H值在45~70之間時(shí),為黃色車牌;H值在90~150時(shí),為綠色車牌。RGB值映射到HSV色域值公式:
H值、S值和V值的計(jì)算:
傳統(tǒng)的車牌識別算法中常用SIFT算法對車牌區(qū)域進(jìn)行特征提取,從而實(shí)現(xiàn)車牌角度的旋轉(zhuǎn)。但是SIFT算法有計(jì)算復(fù)雜度高,耗時(shí)長的缺點(diǎn)。本文使用SURF算法[9]對車牌區(qū)域進(jìn)行特征提取,是一種局部特征檢測算法,對亮度、角度和噪聲不敏感。SURF在保持了SIFT優(yōu)良性能基礎(chǔ)上,也同時(shí)解決了SUFT的缺點(diǎn),實(shí)現(xiàn)了對興趣點(diǎn)提取和特征向量描述方面的改進(jìn),且計(jì)算速度得到提高。SURF特征提取步驟主要步驟:1)尺度空間的建立。2)特征點(diǎn)的提取。3)利用特征點(diǎn)周圍鄰域的信息生成特征描述子。4)特征點(diǎn)匹配。
利用OpenCV中已封裝好的SURF函數(shù)來對車牌的亮度、旋轉(zhuǎn)角度和亮度等特征進(jìn)行提取,將此提取到的特征作為SVM分類器的分類依據(jù)。車牌角度調(diào)整的結(jié)果如圖3所示,圖3(a)為調(diào)整前的車牌圖,圖3(b)為調(diào)整后的車牌圖。
圖3 車牌角度調(diào)整
SVM(Support Vector Machine)算法[10~11]是一個(gè)監(jiān)督學(xué)習(xí)算法,也是一個(gè)二分類算法,SVM是基于樣本線性可分的情況的有效分類器。將數(shù)據(jù)繪制在n維空間中(n代表數(shù)據(jù)的特征數(shù)),然后查找可以將數(shù)據(jù)分成兩類的超平面,支持向量指的是觀察的樣本在n為空間中的坐標(biāo),SVM是將樣本分成兩類的最佳超平面?,F(xiàn)有樣本數(shù)據(jù){(x1,y1),(x2,y2),…,(xn,yn)},其中x∈Rn,y∈{-1,1}為空間中的超平面方程可以寫成:
可以利用高等數(shù)學(xué)的方法實(shí)現(xiàn)點(diǎn)到超平面的間隔最小化,最終得到目標(biāo)超平面。SVM算法的實(shí)現(xiàn)總體上可分為如下步驟:
1)如果樣本線性不可分,利用核函數(shù)方法轉(zhuǎn)換到線性可分的空間。
2)利用最大化間隔的方法獲取間隔最大的分割線,進(jìn)而得到支持向量。
3)利用分割線和支持向量,對新樣本進(jìn)行分類預(yù)測。
將定位得到的車牌區(qū)域進(jìn)行二值化處理,如圖4(a)所示。再使用形態(tài)學(xué)操作處理[12],如圖4(b)所示。
圖4 車牌圖像處理
對字符圖像進(jìn)行灰度化,然后對車牌灰度圖像進(jìn)行灰度垂直投影[13],可以清晰看到車牌的7個(gè)投影區(qū)域,如圖5所示。即為車牌的7個(gè)字符灰度圖像垂直投影。根據(jù)車牌的基本幾何資料可知,車牌除去邊框后,只剩下字母和數(shù)字,且?guī)缀纬叽缍际谴_定的,因此可以確定車牌的7個(gè)垂直投影區(qū)域?qū)挾确秶褪亲址麑挾乳撝捣秶7指钸^后如圖6所示。
圖5 垂直投影區(qū)域
圖6 字符分割
分割完后,本文采用Z-score標(biāo)準(zhǔn)化(Z-score normalization)進(jìn)行字符歸一化處理[14],對序列x1,x2,…,xn進(jìn)行變換,轉(zhuǎn)換的公式為
新序列y1,y2,…,yn的均值為0,方差為1,且無量綱。
根據(jù)車牌字符的性質(zhì)構(gòu)建SVM分類器[15],根據(jù)我國大陸車牌字符選取的規(guī)定,字母“I”和“O”是不會出現(xiàn)在車牌字符中的,所以車牌字符樣本有50個(gè)漢字、24個(gè)英文字母和10阿拉伯?dāng)?shù)字,總共有84個(gè)字符。本文分類器構(gòu)建的思想是將1個(gè)字符和另外83個(gè)字符構(gòu)成一個(gè)分類器,即總共需要84個(gè)分類器。針對漢字的50個(gè)分類器,針對字母的24個(gè)分類器,針對數(shù)字的10個(gè)分類器。
基于PyCharm利用OpenCV將該車牌識別方法做成一個(gè)人機(jī)交互的友好界面,可實(shí)現(xiàn)對車牌圖像或者視頻流的車牌字符識別。對總共100張藍(lán)、黃、綠車牌圖進(jìn)行了識別測試,其中34張藍(lán)色車牌,33張黃色車牌,33張綠色車牌。對應(yīng)部分實(shí)驗(yàn)測試結(jié)果分別如圖7、圖8、圖9所示。對100張藍(lán)、黃、綠車牌測試中正確率的情況如表1所示。
圖7 藍(lán)色車牌
圖8 黃色車牌
圖9 綠色車牌
表1 車牌測試情況
根據(jù)實(shí)驗(yàn)測試結(jié)果分析,整個(gè)測試實(shí)驗(yàn)中,該方法對藍(lán)色和黃色車牌的顏色識別沒有出現(xiàn)錯(cuò)誤,對綠色車牌的顏色識別出現(xiàn)過錯(cuò)誤。根據(jù)表1可知在測試實(shí)驗(yàn)中綠色車牌的識別正確率為93.9%,藍(lán)色車牌識別正確率為100%,黃色車牌識別正確率為96.7%,總體車牌識別正確率為97%。綠色車牌識別正確率最低,藍(lán)色車牌識別正確率最高,造成這樣的結(jié)果可能是數(shù)據(jù)的樣本來源存在著總體數(shù)據(jù)樣本數(shù)量小、車牌圖像質(zhì)量差、綠色車牌和黃色車牌數(shù)量小于藍(lán)色車牌數(shù)量等原因,但總體的識別效率還是很高。
本文提出了基于OpenCV與SVM的車牌識別方法,通過Canny算子對車牌圖像進(jìn)行邊緣檢測,使用形態(tài)學(xué)方法突出車牌邊緣信息,再將邊緣信息和HSV顏色空間結(jié)合進(jìn)行車牌的定位;使用SURF算法對車牌圖像進(jìn)行角度調(diào)整,再使用多個(gè)SVM二分類器對分割字符進(jìn)行識別,在開源的OpenCV庫中用以封裝好的算法和各種函數(shù)對圖像的進(jìn)行處理,最后基于PyCharm和OpenCV將該方法開發(fā)成一個(gè)人機(jī)交互的友好系統(tǒng),從而實(shí)現(xiàn)對車牌進(jìn)行識別。實(shí)驗(yàn)結(jié)果表明,OpenCV開源庫處理圖像效率高,結(jié)合SVM算法的該方法在車牌識別效率上有較好的應(yīng)用前景。