吳 靜,王智文*,1b,2,王康權,孫金芳
(1.廣西科技大學 a.理學院;b.計算機科學與技術學院,廣西 柳州 545006;2.廣西師范大學 廣西多源信息挖掘與安全重點實驗室,廣西 桂林 541004)
電動自行車作為人們出行的交通工具之一,使用者眾多,但電動自行車違章較多,事故發生率較高。車牌識別技術不僅對機動車交通管理有著積極作用,對電動自行車違章行為也有著重要的規范作用。因電動自行車車牌與機動車車牌具有一定的相似性,鑒于成熟的機動車違章牌照識別系統,本文提出了基于深度學習的電動自行車車牌識別算法。
在車牌識別領域,傳統的識別方法需要提取車牌中的單個字符輸入網絡進行識別,該方法十分依賴字符分割的準確性。Azad等根據車牌字符和底板顏色不同,利用垂直投影法進行字符分割。Pirgazi 等采用統計特征、過濾方法和形態學算子對車牌字符進行分割與提取。但是,當車牌字符之間間隔不清晰、粘連或因光照不均導致字符難以分割時,后續單個字符識別的步驟則難以進行。
由于強大的特征學習能力,光學字符識別(optical character recognition,OCR)研究能夠將語言知識應用于場景文本識別,實現對字符的讀取。將OCR應用于車牌字符識別中,能夠實現輸入車牌圖像并輸出完整的字符串而無需進行字符分割。Wang等引入了一套全面的中國車牌數據集,提出高精度、低計算成本的多任務卷積神經網絡(multitask convolutional neural network,MTCNN),主要用于實現復雜場景中的車牌字符識別。Li等將字符串讀取視為序列標簽問題,對具有長短期記憶(long short-term memory,LSTM)的循環神經網絡(recurrent neural network,RNN)進行訓練,通過卷積神經網絡(convolutional neural networks,CNN)識別從整個車牌中提取的序列特征。Zhang 等利用CycleGAN模型生成車牌圖像,提出了圖像到序列的車牌識別網絡。CycleGAN 網絡能夠獲得大量的訓練數據,提高識別精度;同時其具有基于空間注意力的二維車牌識別器,能夠在各種場景下準確而穩健地識別具有不同模式的車牌。胡逸龍等針對特定顏色類型車牌調整網絡結構,并在識別模型中添加衛星通信網絡(satellite telecommunications network,STN),矯正車牌形變問題。同樣,針對車牌角度傾斜問題,也有文獻對其進行研究,將車牌矯正后識別精度有明顯的提升。
鑒于電動自行車車牌和機動車車牌的相似性,本文采用深度卷積神經網絡的研究方法,以廣西壯族自治區柳州市為圖像收集地點,自建電動自行車車牌數據集。車牌字符構成與機動車基本相同,包含:漢字、英文字母以及阿拉伯數字,字符普遍分布在2 層。本文對卷積循環神經網絡(convolutional recurrent neural network,CRNN)做了一定改進,使其在電動自行車車牌數據集上達到最優效果。
對于較復雜的文字、手寫字符和樂譜等,CRNN模型都具有較好的識別效果,且CRNN 模型對于任何長度的序列都沒有限制,也不需要分割字符或詳細的字符標注,模型參數少,訓練速度快。因此,參考經典的文本識別模型CRNN 的網絡架構,對其中的部分進行改進和優化,以適用于電動自行車車牌數據集,設計出如圖1 所示的車牌識別網絡框架。車牌識別模型主要包括3個部分,分別是卷積神經網絡(CNN)、循環神經網絡(RNN)以及連接時序分類(connectionist temporal classification,CTC)。其中,CNN 提取圖像特征,RNN 提取字符序列,CTC 模塊解決字符無法對齊的問題。

圖1 車牌識別網絡框架圖
在CRNN 原文中,特征提取部分的CNN 框架對ⅤGG結構做了微調。首先,CNN框架中將第三個和第四個最大池化層的核尺度設為1×2,能夠方便地將CNN 的提取特征作為RNN 的輸入。其次,在第五個和第六個卷積層的后面都添加了批量歸一化層,加快了網絡的訓練速度。在進入CNN之前,原始圖像的高度會被縮放為32。特征序列的每一個特征向量在特征圖列的方向上從左向右生成,即第個特征向量與第個特征圖相連接,每個特征向量的寬度被設為單像素。
參照CRNN的CNN部分設置,本文的CNN共設置5個卷積層,精簡了原文的網絡框架,減少了參數。本文的CNN在第五個卷積層后面添加了BN層,以加快網絡的訓練速度。激活函數采用LeakyRelu 函數,LeakyRelu 函數是Relu 函數的變體,是在Relu 函數的負半區間引入一個泄露值,使輸出對負值輸入有很小的坡度,能夠解決Relu函數進入負區間后導致神經元不學習的問題。本文CNN中共設置了4個最大池化層,同樣地,后2個池化層的卷積核大小為1×2。除了最后一層卷積層的卷積核尺寸為2×2且不做補零操作,其余卷積核尺寸均為3×3,padding=1。本文統一將輸入圖像的大小調整為32×160,通過CNN 后輸出的特征圖大小為512×1×41。

表1 CNN網絡結構
序列預測網絡用于預測特征序列中的每一幀標簽分布。在序列文本識別領域,RNN 有很強的捕捉上下文的能力。然而傳統的RNN 在處理長文本時會喪失連接較遠信息的能力,且容易出現梯度消失問題,造成網絡難以收斂,給訓練增加負擔。LSTM 是一種特殊的RNN,可以學習長期依賴信息。它通過門控狀態來控制傳輸狀態,記住需要長時間記憶的信息而忘記不重要的信息。圖2表示時刻細胞的狀態,從左到右依次是LSTM 的遺忘門、記憶門和輸出門。H表示-1 時刻的輸出,C表示上一個單元格狀態,x為當前時刻的輸入。圖中圓圈里的符號表示加法和乘法,為Sigmoid函數。

圖2 LSTM單元圖
式(1)—式(3)為時刻每個門以及H和C的計算過程。

單向的LSTM只用到了過去的上下文,而在車牌特征序列中,認為2 個方向的上下文都是有用的;因此,本文使用如圖3 所示的雙向LSTM 結構,前向的利用過去的信息,反向的利用未來的信息。這樣的結構不論是在圖像文本檢測還是語音識別中,都被證明比單向LSTM的預測更為準確。

圖3 BiLSTM結構圖
如圖3 所示,本文設置2 層雙向長短期記憶(bidirectional long short-term memory,BiLSTM)網絡。CNN的輸出是大小為×(512×41)的特征圖,為輸出序列的長度,為通道數。通過“map to sequence”的轉化后將每一列=(,,…,x)輸入BiLSTM 中,輸出長度為×的向量=(,,…,y),為車牌字符類別數。本文中廣西柳州電動自行車車牌字符有:中文字符“桂”、除去“I”和“O”的所有英文大寫字母以及0~9這10個阿拉伯數字共34個字符。
轉錄部分:本文沿用CTC 的設置,對其參數不做更改。
在文本識別領域,經常會存在輸入和輸出難以對齊的問題;因此,本文用CTC對循環神經網絡的輸出進行解碼,將BiLSTM的輸出轉換成一個序列。
定義為由BiLSTM 輸出組成的序列路徑。對于BiLSTM,在給定輸入的情況下,輸出為的概率用式(4)來計算。

式中,為多對一的映射函數,目的是去除空白標簽與重復標簽。∈()表示所有經過變換后是的路徑,且對于任意一條路徑有:




目前的機動車車牌識別系統已有較為成熟的抓拍系統以及車牌數據集(如CCPD 數據集),而國內電動自行車車牌數據集尚為空白,且網絡搜索圖片的結果也較少。由于廣西壯族自治區內的電動自行車數量多,將廣西柳州市作為車牌數據采集地。本實驗所用數據為手持拍照設備收集而來的真實電動自行車車牌照片。本文共收集真實圖片2 000 余張,隨機抽取500 張真實車牌圖片用作測試,其余用作訓練。
由于本實驗數據集較小,所使用的深度網絡可能會產生過擬合現象,導致網絡的泛化能力差,難以在測試集上達到最佳性能。一般來說,可以采用數據增強的方法防止過擬合現象。常見的數據增強方法有:旋轉(圖片隨機翻轉0~360°)、裁剪(圖像隨機裁去小部分)、添加噪聲(高斯、椒鹽噪聲)等。這些圖像增強方法有效地增加了數據集的多樣性,對提升網絡性能有很大的幫助。
本文對原始數據進行了不同的數據增強。如圖4 所示,對于真實的圖片,本文對其使用了模糊、形變、添加噪聲等方法進行擴充。

圖4 (網絡版彩圖)數據增強示例
此外,還在訓練集中添加了仿造車牌。電動自行車車牌與機動車車牌字符個數一致,均為7個,分為2 排。經過觀察,柳州電動自行車車牌基本分為綠色和白色2 種顏色,柳州本市的車牌為“桂B”開頭,出現極少數南寧(“桂A”)、桂林(“桂C”)等其他市車牌;因此,仿造車牌以綠色和白色為底色,設置城市代號為“A”“B”“C”且這三類車牌數保持一致,并在仿造車牌上加入鉚釘等元素。隨機生成車牌號后,對仿造車牌也進行了一些處理,以更接近真實車牌。考慮到光照不同所導致的車牌陰影變化較大、某些車牌上有污漬刮痕以及拍攝角度不同可能會造成的車牌扭曲等,對仿造車牌加入椒鹽噪聲、調整圖像明暗度、將圖像進行仿射畸變等步驟的處理。處理后的仿造車牌如圖5所示。

圖5 (網絡版彩圖)仿造車牌圖集
使用經過形變、加噪聲等步驟處理后的數據訓練能夠極大地提高網絡的泛化能力,使得同一個網絡能夠對不同場景的車牌識別具有良好的表現。實驗中,訓練集共有車牌數據6 000 余張,其中,擴充后的真實車牌3 000余張,仿造車牌3 000張。測試集500張車牌均為真實車牌。
實驗運行環境為Windows 10 操作系統,CPU為英特爾i5,主頻率為3.0 GHz,內存大小為8 GB。在Pytorch(1.2)框架中完成車牌識別實驗。
在對真實車牌進行識別之前,生成了近70 000張仿造車牌,進行了20 輪的預訓練。預訓練的過程使不同的模塊快速適應任務,微調過程將進一步減少訓練損失,使網絡融合。預訓練時仿造車牌的識別精度達到99.68%,預訓練模型的權重用于后續訓練。
在訓練階段使用Adam優化器來訓練模型。將輸入車牌圖像的大小固定為32×160,訓練階段batchsize設為32,測試階段batchsize設為16,學習率設為0.000 1,訓練輪次epoch設為100。
使用識別準確率(ACC)、平均損失(Loss)來評價模型。ACC 反映了模型正確識別車牌的個數,Loss表示車牌識別平均損失。模型中,ACC越大,Loss越小,則模型越好。此外,車牌檢測系統具有實時性;因此,模型的識別速度也是一項重要指標。
圖6 為模型訓練過程的損失以及準確率。車牌識別網絡在60 輪左右收斂,識別準確率為98.40%,最終平均損失為0.017 0,平均識別速度為41.24張/s。

圖6 (網絡版彩圖)車牌識別模型的Loss和ACC
對于BiLSTM層數以及隱藏層單元數的選擇,本文做了對比實驗。分別設置BiLSTM的層數為1、2、3,隱藏層單元數為128、256、512和1 024。同樣,通過ACC和Loss判斷參數設置的優劣。由表2可以看出,當網絡設置為2層BiLSTM,隱藏層為512時,識別準確率最高,此方案是最為合理的方案。

表2 BiLSTM參數對比分析
表2 中,隨著隱藏層神經元數量提升(128 到256),準確率隨之升高,在256層時達到最優。而當隱藏層單元數達到1 024 時,準確率降低,說明此時模型過擬合,泛化能力變差。
將CRNN原文中的CNN部分精簡,去掉2個卷積層和最大池化層,激活函數換成LeakyRelu,將BN改為一層,放在網絡的最后。與原始的7個卷積層的CNN對比,模型參數顯著減少,加快了網絡的收斂速度。RNN部分為適應電動自行車車牌數據集,將BiLSTM隱藏層單元數調整為512。如表3所示,通過切割字符進行識別的傳統方法精度只有79.16%,改進CRNN 的準確率為98.40%。對比CRNN 原文,本文在電動自行車車牌數據集上實現了2.80%的精度提升,識別速度也有所提升。此外,通過比較文獻[13]的LeNet-5-L、文獻[19]的CRNN_Plate 和文獻[12]的LPRNet,可以看出這些在機動車牌識別上取得較好效果的網絡模型并不適用于本文的數據集。

表3 與其他方法對比
本文電動自行車車牌識別結果如圖7所示。實驗結果表明,對于明暗不同、有污漬、形變等較為復雜的車牌圖片,本文的車牌識別模型有較高的識別準確率,且識別速度較快。

圖7 (網絡版彩圖)電動自行車車牌識別效果圖
基于對現有的機動車車牌識別系統的研究,本文提出了一種深度卷積循環神經網絡的電動自行車車牌識別方法。該法對文本識別模型CRNN做了部分改進,通過特征提取、序列預測以及最后的CTC轉錄,在電動自行車車牌數據集上獲得了較高的準確率。與傳統的基于字符分割的車牌識別算法不同,本文的車牌識別模型避免了字符錯誤分割對識別率造成的影響,提高了車牌識別效率,簡化了流程。在廣西柳州電動自行車車牌數據集上的實驗結果表明,本文提出的方法能夠實現在污垢、形變、圖像模糊等復雜自然場景下的車牌識別,魯棒性較強,有廣泛的應用場景。
由于目前還沒有公開的電動自行車車牌數據集,本文的訓練數據有限,一定程度上影響了車牌識別效果。雖然在廣西柳州電動自行車車牌數據集上取得了不錯的識別效果,但仍然存在一些不足,主要有:
1)所收集的車牌數據來源于同一地區,沒有對其他地區的車牌進行研究,車牌的字符分布、底板顏色都比較單一,模型的適用范圍較窄。下一階段將會對全國范圍內的電動自行車車牌進行分析研究,擴大數據集種類,使電動自行車車牌識別可以真正應用于實際。
2)本文的車牌識別僅針對采集好的圖像數據,而在現實生活中,對于車牌識別有著更高的需求:動態識別、實時識別等;因此,下一步的研究方向是對動態視頻中的電動自行車車牌進行識別。對于未來的實際交通應用,今后還有很多工作要做。