呂興琴 郭曉瑜 蔡小丹
摘要:近年來,我國大力推進智慧城市和智慧交通建設,在車牌識別領域所要求的識別精度、場景適用性和反映靈敏性也越來越高。文章提出了一種基于深度神經(jīng)網(wǎng)絡算法的高精度車輛識別系統(tǒng),利用開源圖形化視覺處理庫OpenCV和數(shù)據(jù)分析處理庫NumPy對車牌進行圖像預處理?;陬A處理后的數(shù)據(jù),利用深度神經(jīng)網(wǎng)絡學習框架TensorFlow進行學習訓練,實現(xiàn)了對車牌的快速精準識別。系統(tǒng)首先對車牌所在位置進行定位,其次對鎖定后的車牌圖像進行切割,再次將車牌背景和文字通過像素點移位算法由彩色圖像轉換為灰度圖像,最后實現(xiàn)字符的切割與識別,得到所要識別的車牌數(shù)據(jù)。實驗結果表明,與傳統(tǒng)識別系統(tǒng)相比,基于深度學習的識別系統(tǒng)準確率更高,識別速度更快。
關鍵詞:智慧交通;車輛識別;深度神經(jīng)網(wǎng)絡
中圖分類號:TP389文獻標志碼:A
0 引言
近年來,我國的汽車保有量在不斷增加,交通安全、城市公共管理等領域對于車牌識別技術的需求日益增加,能夠更有效、便捷地對車輛進行管控對我國的基礎建設十分重要[1]。
隨著計算機技術的不斷發(fā)展,基于人工智能的深度學習算法在車輛識別中得到了廣泛應用。本文提出了一種基于神經(jīng)網(wǎng)絡的高精度車輛識別系統(tǒng),采用基于卷積神經(jīng)網(wǎng)絡的深度學習模型,在圖像預處理的基礎上利用TensorFlow框架對車牌及字符模型進行學習和訓練[2],大大縮短了識別時間,提高了識別成功率,方便了城市的交通管理和智能化建設。
1 車牌圖像預處理
由于拍攝環(huán)境、光源、背景、噪聲等外界因素的影響,直接對采集到的車牌圖像進行識別會有一定的困難,所以在識別車牌圖像之前需要先進行圖像預處理。本系統(tǒng)先采用灰度處理和高斯濾波平滑處理方法對圖像進行顏色空間轉換和角度變換,使得圖像噪聲減少,突出車牌字符,保障后期的車牌檢測和定位;再采用二值化和邊界提取算法進行車牌字符識別。整體流程如圖1所示。
1.1 灰度處理與濾波去噪
在交通網(wǎng)絡中,所使用的拍攝設備基本是彩色攝像頭,獲取的汽車車牌圖像也都是彩色圖像,圖像所包含的信息也很多,所以需要先對圖像進行灰度化處理。圖像灰度化就是以一定的方式將原本圖像的灰度值替換成新的有利于后續(xù)處理的灰度值。灰度處理后需要處理的數(shù)據(jù)量將大大減少,從而提高運算效率。
經(jīng)灰度處理后的圖像仍會存在一些不同程度的噪聲干擾,比如脈沖噪聲、高斯噪聲等。本系統(tǒng)采用高斯濾波算法來去除噪聲對車輛圖像的污染。高斯濾波是一種線性平滑濾波,對脈沖噪聲、高斯噪聲的抑制效果明顯。采用cv2.GuassianBlur函數(shù)指定卷積模板去掃描圖像中的每一個像素,然后用模板確定的鄰域內像素的加權平均灰度值去替代模板中心像素點的值。常用的高斯模板[3]如圖2所示。
1.2 邊緣定位提取與二值化
我國汽車車牌布局十分規(guī)則整齊,最常見的背景色為藍色,文字顏色為白色,并且車牌內部的文字內容大約占據(jù)車牌的30%,所以本系統(tǒng)采用傳統(tǒng)的Sobel算法[4-6]進行邊緣檢測。
Sobel算子是一個用來計算圖像灰度函數(shù)的近似梯度的離散微分算子。采用cv2.Sobel算子或Scharr函數(shù),梯度的公式如下:
F(x,y)為圖像各點像素值,Soble邊緣檢測具有方向性,分為豎直邊緣檢測和垂直邊緣檢測,濾波器模板卷積核大小選取3。邊緣處理后即可獲得車牌圖像的矩形邊框。
為了進一步減少車牌圖像中除字符以外因素的影響,本文對車牌灰度化圖像進行二值化處理,即將圖像的像素點從[0,255]中任一灰度值變?yōu)橹挥?和255兩個像素值[7-8],從而大大縮短后續(xù)處理的時間,提高車牌識別的效率。使用的代碼為binary_img = cv2.threshold(Sobel_img,127,255,cv2.THRESH_BINARY)。
2 車牌字符分割與識別
2.1 車牌圖像形態(tài)學處理
在對車牌圖像進行字符識別前需要采用圖像形態(tài)學算法進一步找到車牌區(qū)域。圖像形態(tài)學包含多種處理方式,最常見的有腐蝕運算[9]、膨脹運算、開運算和閉運算。腐蝕是將需要處理的圖像矩陣化,轉化為數(shù)值進行處理,對每一個位置領域的最小值作為該位置的一個灰度值的輸出,處理后的圖像整體亮度會大大降低[10]。膨脹是腐蝕的逆向操作,可以使得圖像的亮度變得更加明亮。開運算通過先腐蝕再膨脹,可以去除圖像中亮度比較高的位置和區(qū)域。而閉運算就是開運算的相反操作[11]。
為了更好地對車牌字符區(qū)域進行完全的定位,本系統(tǒng)先采用閉運算將字符區(qū)域填充并與其他部分背景盡可能斷開,再利用開運算去除圖像中相對獨立的小點以及一些毛刺[12],最后采用膨脹算子平滑車牌邊緣區(qū)域。處理后的圖像如圖3所示。
2.2 車牌字符識別
本系統(tǒng)采用了基于深度神經(jīng)網(wǎng)絡和遷移學習相結合的車輛字符識別算法,對復雜環(huán)境下的圖像在進行預處理的基礎上進行遷移訓練學習,降低了深度識別算法失敗的概率。實驗流程主要分為訓練和測試兩部分,車輛圖像訓練數(shù)據(jù)集數(shù)量為590個;驗證數(shù)據(jù)集數(shù)量為394個;測試數(shù)據(jù)集數(shù)量為16個。
在學習和訓練樣本階段,本系統(tǒng)采用tensorflow.keras內置的DenseNet201模型,在ImageNet上進行預訓練。該模型在ImageNet上的top-1準確率達到了0.831,而top-6的準確率達到了0.967。在進行遷移學習時,本系統(tǒng)先將預訓練模型的參數(shù)進行凍結,然后在模型加入全連接層,搭建車輛識別圖像的分類神經(jīng)網(wǎng)絡。為了防止在訓練中出現(xiàn)過擬合的現(xiàn)象,本系統(tǒng)添加了全局平均池化層和dropout層。經(jīng)過兩輪次訓練得到的結果,如圖4所示。
從訓練結果可以看出,在原來訓練圖像模型的基礎上,采用深度學習方式,通過少量數(shù)據(jù)就可以快速在訓練中得到較好的結果,經(jīng)過第二輪次時,測試集的損失也達到了最低值,對應準確率達到85.28%。
3 實驗與分析
基于深度神經(jīng)網(wǎng)絡和遷移學習的高精度車輛識別系統(tǒng)界面,如圖5所示。車牌字符區(qū)域定位提取與字符識別界面,如圖6所示。
3.1 不同日照環(huán)境識別測試對比
本系統(tǒng)選取三種車牌圖像采集環(huán)境,分別為白天、夜晚和深夜。利用本文算法和傳統(tǒng)算法處理后的識別結果如表1所示。根據(jù)測試結果來看,傳統(tǒng)算法在稍微復雜的環(huán)境下很難成功,而本系統(tǒng)算法則完全支持在能見度不高的環(huán)境下繼續(xù)識別圖像。
3.2 污損車牌識別測試對比
采集車牌表面有污損的圖像,比如遮擋、污漬、破損等,識別結果如表2所示。
從上述結果可以看出,污損面積在20%以內時,本文算法能夠保持較高的識別率;當污損面積高于20%時,字符完整性越來越低,算法成功率只有46%。
3.3 傾斜角識別測試對比
不同角度的車牌圖像對于車牌識別系統(tǒng)的識別成功率也有影響,本系統(tǒng)也采集了不同的傾斜度的圖像進行識別,示例圖像如圖7所示,識別結果如表3所示。
從實驗結果可以看出,在傾斜角較小的情況下本文算法的成功率很高,但在較高的傾斜角的情況下,樣本的識別成功率明顯降低,平均時間明顯變長,表明本文的算法在應對傾斜角過高的情況下相應算法仍須改進。
3.4 遠近測試對比
遠近識別的主要應用場景為車輛較多的情況下進行的一次性識別。識別結果如表4所示。
從上述的結果可以看出,本系統(tǒng)由于利用了深度學習的方式,在較遠距離的環(huán)境下,車牌識別的成功率也較高。
4 結語
本系統(tǒng)基于車輛的識別展開設計,無論是對于日常生活還是交通管理都有著一定的價值。不同于傳統(tǒng)的車牌識別技術,本系統(tǒng)與深度學習相結合,在對車輛圖像進行充分預處理之后,運用深度神經(jīng)網(wǎng)絡和遷移學習模型對車牌進行字符學習。該系統(tǒng)算法在復雜環(huán)境的優(yōu)勢相對于傳統(tǒng)的算法更強,經(jīng)過實驗的對比,就識別的正確率方面是優(yōu)于傳統(tǒng)算法的。本系統(tǒng)的前端采用了比較新的Django框架來搭建Web頁面。但本系統(tǒng)在傾斜角方面在后續(xù)的研究中還須進一步改進。
參考文獻
[1]秦俊峰.智慧交通的體系架構與發(fā)展思考[J].城市建設理論研究(電子版),2017(19):167.
[2]JIANG Y,TAO S,ZHANG H,et al.Image data augmentation method based on maximum activation point guided erasure:2020 2nd International Conference on Advances in Computer Technology,Information Science and Communications(CTISC)[C].Suzhou:Institute of Electrical and Electronic Engineers,2020.
[3]王英,關宇東,李艷.一種融合區(qū)域生長和邊緣檢測的彩色圖像分割方法[J].科技導報,2008(16):85-87.
[4]劉源,夏春蕾.一種基于Sobel算子的帶鋼表面缺陷圖像邊緣檢測算法[J].電子測量技術,2021(3):138-143.
[5]李靜,陳桂芬,丁小奇.基于改進Canny算法的圖像邊緣檢測方法研究[J].計算機仿真,2021(4):371-375.
[6]LANDMAN D,SEREBRENIK A,VINJU J J.Challenges for Static Analysis of Java Reflection-Literature Review and Empirical Study:2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE)[C].Buenos Aires:Institute of Electrical and Electronic Engineers,2017.
[7]陳建江,鄭東,翟劍飛.地質圖件的多閾值動態(tài)自適應二值化法及改進的二值圖像細化算法[J].微型電腦應用,2004(1):56-59,64.
[8]熊煒,王鑫睿,王娟,等.結合背景估計與能量函數(shù)的圖像二值化算法[J].計算機工程與設計,2019(7):1984-1989,2058.
[9]陸宗騏,朱煜.數(shù)學形態(tài)學腐蝕膨脹運算的快速算法[EB/OL].(2018-03-17)[2023-04-10].https://cl.wanfangdata.com.cn/conference6384089.
[10]張彩珍,李穎,康斌龍,等.基于深度學習的模糊車牌字符識別算法[J].激光與光電子學進展,2021(16):259-266.
[11]ZHONG L,WAN W,KONG D.Javaweb login authentication based on improved MD5 algorithm:International Conference on Audio[C].Suzhou:Institute of Electrical and Electronic Engineers,2017.
[12]吳宏偉.基于深度學習的車牌檢測識別系統(tǒng)研究[D].大連:大連理工大學,2021.
(編輯 姚 鑫)