周蒙疆 王明軒 云科興
(內蒙古工業大學,內蒙古 呼和浩特 010080)
據公安部統計,截至2021 年3 月,全國機動車保有量達3.78 億輛,面對如此龐大的汽車數量,在大力發展交通設施的同時,建立高智能化的道路網絡也是解決道路交通的需求的重要手段,而車牌識別則是實現高智能化道路網絡的重要基礎。目前,車牌識別技術共有兩大類,一種是對車牌字符進行切割后對單個字符進行識別,另一種是端到端對車牌字符整體進行識別。文獻[1]對兩種識別技術進行了比對測試,發現切割成單個字符識別的準確率要高于整體識別的準確率。而對于文獻[2]提出的端到端車牌字符整體識別方法盡管精度和速度都有提升,且對于模糊的車牌識別準確率高,但卻不能在一張圖片中有多車牌時進行檢測和識別并且對于沒有車牌的圖片也會輸出檢測結果。因此,本文采用了車牌字符切割識別的方法。
車牌定位是車牌識別任務中的第一步,該步驟需要完成在圖像中找到車牌位置的任務。目前常用的車牌定位方法是基于形態學的車牌定位方法與基于HSV 顏色空間的車牌定位方法。但這兩種方法對于源圖像要求較高,在復雜的應用場景下這兩種方法的定位準確率并不高。故為了能夠在復雜情況中準確定位圖像中車牌位置,本文采用了基于YOLOV5 的車牌定位方法。
YOLOv5 于2020 年6 月發布,較于前代YOLO 系列算法,YOLOv5 的模型尺寸小,檢測速度快,部署成本低,分 別 為 YOLOv5n、YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x。截至2022 年2 月,YOLOv5 更新至6.0 版本,作者對這個版本五種網絡結構的算法性能測試如圖1所示。其中YOLOv5s 的網絡結構小,速度快,盡管AP 精度低,但對于車牌定位這樣對速度要求高的大目標檢測任務,YOLOv5s 非常適合,所以本文采用了該網絡結構,并結合CCPD 與我們自己的數據集訓練車牌定位模型,定位測試結果如圖2 所示。

圖1 YOLOv5 算法性能測試

圖2 車牌定位結果
在圖2(d)中,外部光照導致車牌區域出現了明顯的明暗分割,由于本文采用了垂直投影法分割字符,需要對車牌圖像的灰度圖像進行二值化處理,這樣的明暗分割會影響二值化后的圖像,如圖3(a)所示,故需要對圖像進行頂帽變換。頂帽變換常用于矯正不均勻光照的影響[7],灰度圖像f 的頂帽變換定義為f 減去其開操作:

其中,為了能夠更好的消除不均勻光照對二值化后圖像影響,本文選取了50×50 大小的卷積核進行開操作,矯正結果如圖3(b)所示。

圖3 曝光矯正對比
在圖2(b)中,由于拍攝角度問題,車牌圖像是傾斜的,傾斜的車牌圖像會對后續字符分割與識別形成誤差[8,9]。在車牌識別系統中,理想的車牌圖像時近似為矩形的。但在實際情況中,更多的是像圖2(b)中傾斜的車牌,故需要通過對車牌進行傾斜矯正后在進行后續的識別任務。
本文采用的傾斜矯正方法是基于透視變換的車牌傾斜矯正。透視變換就是將圖像投影到一個新的視平面,其變換公式為:

其中,u,v 是原圖像坐標點,w 為1。
透視變換矩陣:

a33值為1
變換后的坐標點為:

在這兩個方程組中共有八個未知數,需要四組映射點進行求解。本文選取定位車牌時框的四個角作為固定點,并將這四個點分別映射到新的視平面中[0,0],[0,300],[600,0],[600,300]四個位置上。矯正結果如圖4(b)所示。

圖4 傾斜矯正對比
在進行字符分割之前,需要對已得到的車牌圖像進行形態學處理, 將原始的RGB 圖像轉換為二值化后圖像,以圖4(b)為例,主要步驟如下:
3.1.1 選用3×3 的核函數對車牌圖像進行高斯濾波,降低噪聲對圖像的干擾[5],然后對車牌圖像進行灰度化,結果如圖5(a)所示。
3.1.2 對圖像做上文2.1 中提到的頂帽處理,消除曝光對圖像的影響。結果如圖5(b)所示。
3.1.3 對圖像進行二值化處理,結果如圖5(c)所示。
3.1.4 分別設置5×1,和1×5 的核函數。先用5×1的核函數對圖像做一次膨脹操作,再分別用這兩個核函數對圖像做腐蝕操作。然后用1×5 的核函數對圖像做一次膨脹操作,再分別用這兩個核函數對圖像做腐蝕操作。目的是為了去除二值化后圖像上小的白點噪聲,結果如圖5(d)所示。

圖5 分割前預處理
傳統的垂直投影分割字符算法不僅容易受到二值化圖像中噪點的干擾,而且對于車牌字符中不完全連通的字符,如川,浙,新等,容易出現誤將字符的一部分當作字符整體分割處理,為了彌補這些弊端,本文對原本的垂直投影分割算法進行了改良。
首先,先通過水平投影分割的方式將車牌邊框、鉚釘等干擾信息去除,只保留車牌字符。從水平投影直方圖6 中可以看到,在[50,250]的范圍是車牌字符的位置,而除此之外的,是車牌的邊框,鉚釘,以及二值化后大的噪點,只要截取車牌字符所在位置圖像,即可去除干擾信息,結果如圖7 所示。

圖6 水平投影直方圖

圖7 水平投影切割
然后對得到的圖像進行字符垂直分割。從垂直投影直方圖8 中可以看到,在[150,200]這個范圍內存在很少的像素點集合,這個位置便是車牌圖像中的點分隔符,為了防止此處對車牌字符分割的干擾,本文通過計算所有列像素的點的平均值,將每一列的像素點數與平均值的四分之一做比較,若像素點數量小于平均值的四分之一,則將該列的像素點歸零,否則不變。

圖8 垂直投影直方圖
為了測試本文提出方法的準確率與時效性,通過隨機選取CCPD 與互聯網上車牌共5000 張圖像,現實生活中600 張圖像進行測試,測試平臺為:酷睿i5-8300H、Win10 操作系統、NVIDIA GTX1060 6G 顯卡,測試結果如表1 所示。

表1 性能測試
本文針對復雜因素干擾下的車牌定位以及識別技術進行了研究,采用了車牌字符分割的識別方法,利用YOLOv5 進行車牌定位,并基于透視變換進行車牌的傾斜矯正,字符分割采用了改進的垂直投影法能夠有效分割不完全連通的中文字符,最后通過CNN 算法對分割好的字符進行了識別,經測試,本文提出方法能夠有效的對復雜因素干擾下的車牌進行定位以及識別,但在車牌受到的干擾過于嚴重時,識別精度并不樂觀,故還需要進一步研究。