侯向?qū)?,劉華春
(成都理工大學(xué) 工程技術(shù)學(xué)院,四川 樂山 614007)
車牌定位在車牌識別系統(tǒng)中起著至關(guān)重要的作用,車牌定位的準確與否,直接會影響到后續(xù)的字符分割和字符識別的效率,從而影響整個系統(tǒng)的速度和識別率。
從廣義的角度,車牌定位可以分為基于灰度圖像的邊緣檢測和基于彩色圖像的色彩分割兩類[1]?;诨叶葓D像的邊緣檢測首先把彩色圖像轉(zhuǎn)換為灰度圖像,然后對灰度圖像進行相關(guān)處理以定位車牌。該方法的優(yōu)點在于計算量小、速度快、實時性較好;缺點是在復(fù)雜背景下定位的效果不理想。基于彩色圖像的色彩分割利用車牌的顏色特征定位車牌,其優(yōu)點是在復(fù)雜背景下車牌定位的效果很好;缺點是計算量較大、速度不夠快。
單一的車牌定位方式很難同時保證車牌定位的準確性和實時性,因此文中將在兩類算法的基礎(chǔ)上,結(jié)合兩者的優(yōu)點,使得車牌定位的準確性和實時性都能得到較大的提升。
在車牌定位方法中,邊緣檢測算法時間復(fù)雜度較低,但在實踐中效果較好,是目前較為成熟的方法。常用的邊緣檢測算法有Roberts算子、Sobel算子、Prewitt算子、Canny算子等[2-8]。選擇邊緣檢測算法時,既要考慮邊緣定位的精度,也要考慮抗噪性,當兩方面很難兼?zhèn)鋾r,要做適當?shù)臋?quán)衡[8]。在眾多邊緣檢測算法中,Sobel算子較為常用,因為Sobel算子計算量小,邊緣檢測效果好。另外,Sobel算子采用了局部平均,因此抗噪性較好[9]。
基于Sobel算子的車牌定位首先利用高斯模糊對原始圖像進行去噪,然后進行灰度化,使用Sobel查找垂直邊緣,為減少計算量,將Sobel算子生成的灰度圖像轉(zhuǎn)換為二值圖像。利用閉操作將車牌字符連成一個連通域,以便取輪廓[10],求得連通域的外接矩形,并對外接矩形的尺寸進行判斷,從而得到可能的候選車牌。最后進行歸一化,使上步得到的候選車牌保持相同的尺寸,目的是便于進行后續(xù)的機器學(xué)習,最終得到精確定位的車牌。
一般情況下,大部分的車牌可以由Sobel算子定位出來。但對于背景稍復(fù)雜,垂直邊緣交錯的場景,Sobel算子很難精確定位車牌。
由于RGB顏色空間不符合人們對顏色相似性的主觀判斷,不能通過兩個顏色點之間的距離來表示兩種顏色之間的感知的差異[11-12]。HSV顏色空間比RGB顏色空間更接近人們對顏色的主觀認識[13],因此,文中基于HSV顏色空間對彩色圖像進行分割定位。
如圖1所示,HSV空間模型是一個倒置的圓錐,其中H分量表示色調(diào),S分量表示飽和度,V分量表示亮度。H取值為0°~360°,其中0°表示紅色,120°表示綠色,240°表示藍色[14]。S和V分量的取值范圍均為0.0~1.0,S和V分量的值越大,表示顏色越來越飽和,色彩越來越明亮。
圖1 HSV空間模型
顯然,要在彩色圖像中定位出車牌,必須設(shè)置H、S和V三個分量的閾值。首先設(shè)置H分量的閾值。為了免去不必要的干擾,先將S及V的值置為1,然后不斷調(diào)整H分量,實踐中不難發(fā)現(xiàn),藍色車牌的顏色范圍H分量的值在200~280之間;黃色車牌的顏色范圍,其H分量的值在30~80之間。接下來用類似的方法來確定S和V的閾值,實踐中發(fā)現(xiàn)當S分量的值在0.35~1,V分量的值在0.30~1時,效果非常理想。
明確使用HSV模型以及用閾值進行判斷以后,顏色定位的完整流程如圖2所示。
圖2 顏色分割定位流程
首先,將RGB顏色空間轉(zhuǎn)為HSV,具體如下:
h=
v=max
二值化即遍歷原始圖像的每個像素,如果其S分量的值在0.35~1之間,V分量的值在0.30~1之間,并且H值在200~280之間或30~80之間,就將該像素置為白色,否則置為黑色。至此,從原始的彩色圖像得到了對應(yīng)的黑白兩色的二值圖像。
接下來的流程跟Sobel算子定位中后續(xù)的流程一樣,這里不做贅述。
實踐中發(fā)現(xiàn),采用HSV顏色空間模型后,在光照適當、色彩充足的情況下,近乎70%的車牌都可以被定位出來,車牌定位的效果非常好。但是當光照不均、車牌與車身顏色相近時,根本無法定位。
對于用單一方法不能成功定位的情形,采用基于HSV空間模型的顏色分割與Sobel算子相結(jié)合的定位方式,將兩種方法的優(yōu)勢結(jié)合起來,以成功實現(xiàn)各種場景下車牌的定位。為了盡可能提高車牌定位的成功率,采用SVM模型,對之前得到的候選車牌進行分類。
支持向量機(SVM)[15]是一個二分類器,把原來樣本空間中線性不可分的問題,通過非線性映射轉(zhuǎn)移至一個高維空間,將其最終轉(zhuǎn)化為特征空間中的線性可分問題,并且升維后不必擔心計算的復(fù)雜性[16]。
之前用顏色分割或Sobel算子得到的候選車牌,可能是也可能不是車牌,SVM模型的作用就是從候選車牌中找出真車牌,如圖3所示。
要達到上述功能,就必須對SVM模型進行訓(xùn)練。首先用顏色分割或Sobel算子得到3 000個候選車牌,然后給這3 000個候選車牌分別貼標簽,也就是手動進行分類,將所有車牌及非車牌圖像放置在兩個不同的文件夾里。最后把貼好標簽的圖片送OpenCV中的train方法進行訓(xùn)練,訓(xùn)練時要不斷進行參數(shù)的調(diào)優(yōu),以便達到最優(yōu)的分類效果。
圖3 從候選車牌中找出車牌
基于HSV空間模型的顏色分割與Sobel算子相結(jié)合的定位算法的流程如圖4所示。
圖4 顏色分割與Sobel算子相結(jié)合的定位算法流程
首先利用顏色分割定位算法對車牌進行定位,將候選車牌送SVM模型進行分類,如果是車牌就直接將其輸出,反之則對原始圖像用Sobel算子進行定位,并將候選車牌送SVM模型進行分類,如果是車牌就輸出,否則,就意味著兩次分類均為非車牌,算法結(jié)束。
為測試算法在各種場景下定位的準確率,利用爬蟲工具在線隨機爬取2 000幅機動車彩色圖像進行實驗,這些彩色圖像大小各異,拍攝角度、場景、光照情況也各不相同。另外,為了便于對比,實驗分別對三種算法進行了測試。
顏色分割與Sobel算子相結(jié)合的定位結(jié)果如圖5所示。
圖5 顏色分割與Sobel算子相結(jié)合的批量定位
為便于觀察,將三種算法的實驗結(jié)果導(dǎo)入表1。
表1 三種算法的實驗結(jié)果
從實驗結(jié)果可以看出,采用顏色分割與Sobel算子相結(jié)合的算法比單純用Sobel算子和顏色分割定位的準確率提高了近20~30多個百分點,不僅在正常情況下的成功率非常高,而且在光照不均、車牌與車身顏色相近以及復(fù)雜場景下,都具有很強的適應(yīng)性和魯棒性,定位成功率非常高。
在分析Sobel算子和顏色定位的基礎(chǔ)上,提出了將顏色分割與Sobel算子相結(jié)合的車牌定位方法。先采用顏色定位,當光照不均導(dǎo)致顏色定位失敗時,再采用Sobel算子進行定位。實驗結(jié)果表明,該方法與單純的顏色定位和Sobel算子定位相比,增強了系統(tǒng)的自適應(yīng)能力和魯棒性,并且大幅提高了車牌定位的精度,具有很強的適用性。