徐渡 李思穎 金佳凝 徐旖屏
關鍵詞:深度學習;YOLOv5s;神經(jīng)網(wǎng)絡;車牌識別;CRNN
0 引言
隨著社會經(jīng)濟的飛速發(fā)展,我國各地城市汽車保有量不斷增長。汽車在給人們帶來便利的同時,也帶來了管理上的問題,如道路交通監(jiān)控、車輛違規(guī)記錄、停車場車位智能管理[1]等問題。車牌識別技術在城市智能交通和城市智慧停車中具有不可或缺的作用,對于管理車輛信息和規(guī)劃車輛位置都十分重要。近年來,車牌定位與識別技術獲得了較豐碩的研究成果,在車輛管理方面有著較為廣泛的應用,但仍具有一定局限性。在現(xiàn)實場景中,大多數(shù)車牌識別系統(tǒng)定位算法都存在亮度敏感、執(zhí)行時間長和精度低等問題,并且當車牌存在損壞和傾斜等情況下,識別效果較差。此外,中國車牌的類型和樣式不同于國外,漢字縮寫和字符組合的方式也多種多樣,識別起來更加復雜,往往需要付出時間的代價。所以,仍需要對車牌識別系統(tǒng)中定位與識別的方法進行設計,以提高系統(tǒng)的準確率和高效性。本文利用深度學習方法,將YOLOv5s 和CRNN進行結(jié)合,實現(xiàn)不同場景下車牌的識別,以提高車牌的識別效率和準確率。
1 相關研究
車牌識別技術從誕生發(fā)展到現(xiàn)在已有數(shù)十年,已是現(xiàn)代智能車位管理中最重要的組成部分。車牌識別系統(tǒng)主要包含車牌定位檢測與車牌識別兩大部分。隨著深度學習的發(fā)展[2],基于深度學習的車牌定位算法和基于卷積神經(jīng)網(wǎng)絡的車牌識別算法成為主流。傳統(tǒng)的車牌定位算法根據(jù)車牌的直觀特征可以分為基于字符檢測、基于顏色檢測、基于文本檢測、基于邊緣檢測和基于連接部件檢測五類。這些直觀的特征容易受到環(huán)境的影響,而深度學習可以通過像素信息提取出更深層的特征,以降低外部因素對車牌識別的影響?;谏疃葘W習的車牌定位檢測算法又分為單階段檢測和雙階段檢測兩類;單階段檢測如YOLO系列的算法在獲取車牌圖像候選框時會同時獲取其分類信息與位置信息,相較于雙階段檢測算法如SSD[3]、Faster-RCNN[4]相比,具有結(jié)構簡單、計算高效、訓練速度更快的優(yōu)點。Laroca等人[5]通過評估和優(yōu)化不同的YOLO模型,在每個階段實現(xiàn)最佳速度/精度權衡。在車牌檢測階段,考慮到車牌在圖像中可能只占很小的部分,并且交通標志等其他文本塊可能與車牌混淆,檢測過程采用先檢測車輛,然后在車輛圖像中檢測各自的車牌。在8 個不同數(shù)據(jù)集上的平均準確率為98.37%,平均召回率為99.92%。
在傳統(tǒng)的車牌識別過程中,字符分割對車牌識別的精度有很大影響。即使有一個強大的識別器可以處理各種縮放、不同字體和各種旋轉(zhuǎn),如果車牌沒有正確分割也會被錯誤識別。隨著循環(huán)神經(jīng)網(wǎng)絡的提出與發(fā)展,其在語音與文本領域中的出色識別性能,使得基于無分割的車牌識別算法成為當前車牌識別的主流算法[6]。Li等人[7]使用LSTM訓練遞歸神經(jīng)網(wǎng)絡(RNN),以識別通過CNN從整個車牌提取的序列特征。每個檢測到的車牌都被轉(zhuǎn)換為灰度圖像,并調(diào)整大小為24×94像素。再以步長為1的24×24像素子窗口,進行滑動窗口方式分割填充圖像。每個分割的圖像塊被送入36類CNN分類器以提取序列特征。將第四卷積層和第一完全連接層連接在一起,形成一個長度為5 096的特征向量。然后使用PCA將特征維數(shù)降低到256維,并進行特征歸一化。最后,CTC被設計為將預測的概率序列直接解碼為輸出標簽,平均識別率約為92.47%。
綜上,本文選擇YOLOv5作為檢測模塊對圖像進行定位,采用其中復雜度最小、深度最淺的YOLOv5s 模塊作為車牌定位的檢測框架,以此來降低模型運行速度對檢測程序的影響。由于字符分割對傳統(tǒng)的基于字符分割的車牌識別方法影響較大,而且字符分割效果在車牌圖像傾斜、光照昏暗等條件干擾時效果并不理想。為了避免車牌分割造成識別中對字符的錯分、漏分,影響最終識別結(jié)果,本文選用基于RNN改進的CRNN算法進行實現(xiàn)無分割車牌字符的識別[8-9]。
2 算法模型
整個車牌識別的流程框架如圖1所示,其中YO?LOv5s網(wǎng)絡和CRNN網(wǎng)絡為主要組成部分。識別流程首先由YOLOv5s網(wǎng)絡定位檢測出車牌的有效區(qū)域,再檢測出車牌區(qū)域送入CRNN進行無分割的車牌識別,最終輸出識別結(jié)果。
2.1 YOLOv5s 車牌檢測網(wǎng)絡
YOLOv5s主要由Backbone、Neck、Head等部分組成,其網(wǎng)絡結(jié)構如圖2所示。Backbone作為基準網(wǎng)絡來進行特征提取,融合了包括Focus結(jié)構與CSP結(jié)構在內(nèi)的檢測算法結(jié)構思路。通過Focus來進行切片操作,從而擴大通道數(shù)量。再采用卷積實現(xiàn)下采樣,在保留更多圖像信息的情況下又不提高模型的計算量。Neck結(jié)構由PAN路徑聚合和FPN特征金字塔結(jié)構組成,作為在Back Bone層與Head層之間的網(wǎng)絡,PAN 由下而上傳遞圖像的位置信息,F(xiàn)PN由上而下傳遞語義信息,從而促進主干網(wǎng)絡中不同尺寸網(wǎng)絡信息的融合。Head輸出層的錨框機制相較于YOLOv4而言,主要改進的是訓練過程中的損失函數(shù)GIOU_Loss,其公式如(1)所示。
其中,IoU 為預測框(PB)與真實框(GT)的交并比,Ac 為能夠?qū)㈩A測框和真實框同時包含在內(nèi)的最小矩形,U表示預測框和真實框的并集。GIoU 是從PB和GT之間重合的面積來考慮,可以改善IoU 在PB和GT 不相交時梯度不能傳遞的情況[10]。
2.2 CRNN 車牌識別網(wǎng)絡
CRNN 相較于CNN 而言,其模型參數(shù)量更加輕量。CRNN網(wǎng)絡框架主要由卷積層、循環(huán)層、轉(zhuǎn)錄層三部分組成,網(wǎng)絡模型結(jié)構如圖3所示。第一層卷積層負責提取車牌字符特征的CNN卷積神經(jīng)網(wǎng)絡,經(jīng)過車牌定位的含有車牌圖像信息的圖像被輸入到CRNN 網(wǎng)絡中,將這些圖像縮放到指定大小,經(jīng)過CNN特征序列映射層進行特征提取操作,得到車牌的圖像特征序列,并將其輸入到網(wǎng)絡的循環(huán)層。第二層循環(huán)層負責標簽序列預測的RNN循環(huán)神經(jīng)網(wǎng)絡層。對于卷積層輸入過來的圖像特征序列,利用長短時記憶網(wǎng)絡(LSTM)內(nèi)部的記憶模塊,實現(xiàn)對特征標簽的預測,形成特征向量的標簽分布。最后,由第三層CTC轉(zhuǎn)錄層負責解碼,把循環(huán)層的預測標簽分布情況轉(zhuǎn)化為序列標簽,并輸出識別出的文本信息。
3 實驗結(jié)果與分析
3.1實驗數(shù)據(jù)集
本文實驗測試采用由中國科學技術大學研究人員構建的公開數(shù)據(jù)集CCPD數(shù)據(jù)集進行,其中包含了25萬多張車牌圖片,圖片格式為720×1 160×3,包含了模糊、異常天氣、傾斜和光線變化在內(nèi)的9種不同場景下的車牌圖片,具體內(nèi)容如表1所示。
在實驗中,本文車牌檢測數(shù)據(jù)集為隨機選取的除CCPD_Np場景外的其他8種場景下的20 000張圖片,之后再根據(jù)圖片中的車牌坐標截取出20 000張圖片來用作識別模塊的數(shù)據(jù)集,其中10 000張用作訓練集,另外10 000張用作測試集。
3.2 實驗環(huán)境
本文測試的實驗環(huán)境是在Windows 64位操作系統(tǒng)下搭建進行的,電腦運行內(nèi)存為16GB,顯卡采用NVIDIA GeForce RTX 3060 Laptop GPU 14GB,處理器采用AMD Ryzen 7 5800H with Radeon Graphics 3.20GHz,在Python3.9 + pytorch torch 1.10 + cuda11.1平臺下實現(xiàn)模型的搭建和訓練工作。
3.3結(jié)果與分析
不同場景下車牌檢測效果如圖4和表2所示。在測試數(shù)據(jù)集上,識別準確率達到98.6%、召回率達到91.7%,處理時間為21毫秒。由檢測結(jié)果可知,在多種復雜場景下,定位檢測模塊對于車牌定位表現(xiàn)出較好的定位效果與性能。
本文車牌字符訓練參根據(jù)數(shù)據(jù)集的劃分,設置初始學習率為0.001、初始動量為0.9、epoch設置為100、BatchSize為12,分別對6字符車牌、7字符車牌進行識別,識別測試結(jié)果如表3所示。
由表4可知,識別模型在6字符車牌的識別準確率能達到97.6%,在7字符車牌識別率能達到93.7%,處理時間達到81毫秒,識別結(jié)果較好。在訓練好識別模型后,通過人為拍攝白天與夜晚的不同傾斜角度照片來驗證模型的性能,如表4所示。在白天標準拍攝角度下的車牌,拍攝角度為正前方拍攝,光線較亮,7 位字符識別全部正確,置信度為0.97。在白天俯角拍攝的車牌,拍攝角度為車輛正前方10°~30°,光線環(huán)境較亮,7位字符識別全部正確,置信度為0.98。在白天傾斜拍攝車牌,拍攝角度為車輛左側(cè)10°~30°,光線較暗,7位字符識別全部正確,置信度為0.97。在夜間傾斜拍攝車牌,拍攝角度為車輛斜上方10°~30°,光線較差,7位字符識別全部正確,置信度為0.97。
4 結(jié)論
針對已有項目在車牌識別部分使用傳統(tǒng)的車牌識別方法達不到現(xiàn)有需求的問題,本文使用YOLOv5 中的輕量級網(wǎng)絡YOLOv5s來提高車牌定位效率和準確率,使用CRNN端到端識別網(wǎng)絡進行無分割識別,不再從分割字符的角度來進行車牌識別,減少由于分割誤差帶來的精度影響,一定程度提高識別效率和準確率。實驗結(jié)果表明:采用基于深度學習的YOLOv5s 和CRNN相結(jié)合的識別方法,車牌定位檢測模型準確率達到98.6%、召回率達到91.7%,處理時間為21毫秒;識別模型在6 字符車牌的識別準確率能達到97.6%,在7字符車牌識別率能達到93.7%,處理時間達到81毫秒,得到了較好的結(jié)果。