吳 靜,王智文*,1b,2,王康權(quán),孫金芳
(1.廣西科技大學(xué) a.理學(xué)院;b.計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,廣西 柳州 545006;2.廣西師范大學(xué) 廣西多源信息挖掘與安全重點(diǎn)實(shí)驗(yàn)室,廣西 桂林 541004)
電動(dòng)自行車作為人們出行的交通工具之一,使用者眾多,但電動(dòng)自行車違章較多,事故發(fā)生率較高。車牌識(shí)別技術(shù)不僅對(duì)機(jī)動(dòng)車交通管理有著積極作用,對(duì)電動(dòng)自行車違章行為也有著重要的規(guī)范作用。因電動(dòng)自行車車牌與機(jī)動(dòng)車車牌具有一定的相似性,鑒于成熟的機(jī)動(dòng)車違章牌照識(shí)別系統(tǒng),本文提出了基于深度學(xué)習(xí)的電動(dòng)自行車車牌識(shí)別算法。
在車牌識(shí)別領(lǐng)域,傳統(tǒng)的識(shí)別方法需要提取車牌中的單個(gè)字符輸入網(wǎng)絡(luò)進(jìn)行識(shí)別,該方法十分依賴字符分割的準(zhǔn)確性。Azad等根據(jù)車牌字符和底板顏色不同,利用垂直投影法進(jìn)行字符分割。Pirgazi 等采用統(tǒng)計(jì)特征、過濾方法和形態(tài)學(xué)算子對(duì)車牌字符進(jìn)行分割與提取。但是,當(dāng)車牌字符之間間隔不清晰、粘連或因光照不均導(dǎo)致字符難以分割時(shí),后續(xù)單個(gè)字符識(shí)別的步驟則難以進(jìn)行。
由于強(qiáng)大的特征學(xué)習(xí)能力,光學(xué)字符識(shí)別(optical character recognition,OCR)研究能夠?qū)⒄Z言知識(shí)應(yīng)用于場(chǎng)景文本識(shí)別,實(shí)現(xiàn)對(duì)字符的讀取。將OCR應(yīng)用于車牌字符識(shí)別中,能夠?qū)崿F(xiàn)輸入車牌圖像并輸出完整的字符串而無需進(jìn)行字符分割。Wang等引入了一套全面的中國車牌數(shù)據(jù)集,提出高精度、低計(jì)算成本的多任務(wù)卷積神經(jīng)網(wǎng)絡(luò)(multitask convolutional neural network,MTCNN),主要用于實(shí)現(xiàn)復(fù)雜場(chǎng)景中的車牌字符識(shí)別。Li等將字符串讀取視為序列標(biāo)簽問題,對(duì)具有長(zhǎng)短期記憶(long short-term memory,LSTM)的循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)進(jìn)行訓(xùn)練,通過卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)識(shí)別從整個(gè)車牌中提取的序列特征。Zhang 等利用CycleGAN模型生成車牌圖像,提出了圖像到序列的車牌識(shí)別網(wǎng)絡(luò)。CycleGAN 網(wǎng)絡(luò)能夠獲得大量的訓(xùn)練數(shù)據(jù),提高識(shí)別精度;同時(shí)其具有基于空間注意力的二維車牌識(shí)別器,能夠在各種場(chǎng)景下準(zhǔn)確而穩(wěn)健地識(shí)別具有不同模式的車牌。胡逸龍等針對(duì)特定顏色類型車牌調(diào)整網(wǎng)絡(luò)結(jié)構(gòu),并在識(shí)別模型中添加衛(wèi)星通信網(wǎng)絡(luò)(satellite telecommunications network,STN),矯正車牌形變問題。同樣,針對(duì)車牌角度傾斜問題,也有文獻(xiàn)對(duì)其進(jìn)行研究,將車牌矯正后識(shí)別精度有明顯的提升。
鑒于電動(dòng)自行車車牌和機(jī)動(dòng)車車牌的相似性,本文采用深度卷積神經(jīng)網(wǎng)絡(luò)的研究方法,以廣西壯族自治區(qū)柳州市為圖像收集地點(diǎn),自建電動(dòng)自行車車牌數(shù)據(jù)集。車牌字符構(gòu)成與機(jī)動(dòng)車基本相同,包含:漢字、英文字母以及阿拉伯?dāng)?shù)字,字符普遍分布在2 層。本文對(duì)卷積循環(huán)神經(jīng)網(wǎng)絡(luò)(convolutional recurrent neural network,CRNN)做了一定改進(jìn),使其在電動(dòng)自行車車牌數(shù)據(jù)集上達(dá)到最優(yōu)效果。
對(duì)于較復(fù)雜的文字、手寫字符和樂譜等,CRNN模型都具有較好的識(shí)別效果,且CRNN 模型對(duì)于任何長(zhǎng)度的序列都沒有限制,也不需要分割字符或詳細(xì)的字符標(biāo)注,模型參數(shù)少,訓(xùn)練速度快。因此,參考經(jīng)典的文本識(shí)別模型CRNN 的網(wǎng)絡(luò)架構(gòu),對(duì)其中的部分進(jìn)行改進(jìn)和優(yōu)化,以適用于電動(dòng)自行車車牌數(shù)據(jù)集,設(shè)計(jì)出如圖1 所示的車牌識(shí)別網(wǎng)絡(luò)框架。車牌識(shí)別模型主要包括3個(gè)部分,分別是卷積神經(jīng)網(wǎng)絡(luò)(CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)以及連接時(shí)序分類(connectionist temporal classification,CTC)。其中,CNN 提取圖像特征,RNN 提取字符序列,CTC 模塊解決字符無法對(duì)齊的問題。
圖1 車牌識(shí)別網(wǎng)絡(luò)框架圖
在CRNN 原文中,特征提取部分的CNN 框架對(duì)ⅤGG結(jié)構(gòu)做了微調(diào)。首先,CNN框架中將第三個(gè)和第四個(gè)最大池化層的核尺度設(shè)為1×2,能夠方便地將CNN 的提取特征作為RNN 的輸入。其次,在第五個(gè)和第六個(gè)卷積層的后面都添加了批量歸一化層,加快了網(wǎng)絡(luò)的訓(xùn)練速度。在進(jìn)入CNN之前,原始圖像的高度會(huì)被縮放為32。特征序列的每一個(gè)特征向量在特征圖列的方向上從左向右生成,即第個(gè)特征向量與第個(gè)特征圖相連接,每個(gè)特征向量的寬度被設(shè)為單像素。
參照CRNN的CNN部分設(shè)置,本文的CNN共設(shè)置5個(gè)卷積層,精簡(jiǎn)了原文的網(wǎng)絡(luò)框架,減少了參數(shù)。本文的CNN在第五個(gè)卷積層后面添加了BN層,以加快網(wǎng)絡(luò)的訓(xùn)練速度。激活函數(shù)采用LeakyRelu 函數(shù),LeakyRelu 函數(shù)是Relu 函數(shù)的變體,是在Relu 函數(shù)的負(fù)半?yún)^(qū)間引入一個(gè)泄露值,使輸出對(duì)負(fù)值輸入有很小的坡度,能夠解決Relu函數(shù)進(jìn)入負(fù)區(qū)間后導(dǎo)致神經(jīng)元不學(xué)習(xí)的問題。本文CNN中共設(shè)置了4個(gè)最大池化層,同樣地,后2個(gè)池化層的卷積核大小為1×2。除了最后一層卷積層的卷積核尺寸為2×2且不做補(bǔ)零操作,其余卷積核尺寸均為3×3,padding=1。本文統(tǒng)一將輸入圖像的大小調(diào)整為32×160,通過CNN 后輸出的特征圖大小為512×1×41。
表1 CNN網(wǎng)絡(luò)結(jié)構(gòu)
序列預(yù)測(cè)網(wǎng)絡(luò)用于預(yù)測(cè)特征序列中的每一幀標(biāo)簽分布。在序列文本識(shí)別領(lǐng)域,RNN 有很強(qiáng)的捕捉上下文的能力。然而傳統(tǒng)的RNN 在處理長(zhǎng)文本時(shí)會(huì)喪失連接較遠(yuǎn)信息的能力,且容易出現(xiàn)梯度消失問題,造成網(wǎng)絡(luò)難以收斂,給訓(xùn)練增加負(fù)擔(dān)。LSTM 是一種特殊的RNN,可以學(xué)習(xí)長(zhǎng)期依賴信息。它通過門控狀態(tài)來控制傳輸狀態(tài),記住需要長(zhǎng)時(shí)間記憶的信息而忘記不重要的信息。圖2表示時(shí)刻細(xì)胞的狀態(tài),從左到右依次是LSTM 的遺忘門、記憶門和輸出門。H表示-1 時(shí)刻的輸出,C表示上一個(gè)單元格狀態(tài),x為當(dāng)前時(shí)刻的輸入。圖中圓圈里的符號(hào)表示加法和乘法,為Sigmoid函數(shù)。
圖2 LSTM單元圖
式(1)—式(3)為時(shí)刻每個(gè)門以及H和C的計(jì)算過程。
單向的LSTM只用到了過去的上下文,而在車牌特征序列中,認(rèn)為2 個(gè)方向的上下文都是有用的;因此,本文使用如圖3 所示的雙向LSTM 結(jié)構(gòu),前向的利用過去的信息,反向的利用未來的信息。這樣的結(jié)構(gòu)不論是在圖像文本檢測(cè)還是語音識(shí)別中,都被證明比單向LSTM的預(yù)測(cè)更為準(zhǔn)確。
圖3 BiLSTM結(jié)構(gòu)圖
如圖3 所示,本文設(shè)置2 層雙向長(zhǎng)短期記憶(bidirectional long short-term memory,BiLSTM)網(wǎng)絡(luò)。CNN的輸出是大小為×(512×41)的特征圖,為輸出序列的長(zhǎng)度,為通道數(shù)。通過“map to sequence”的轉(zhuǎn)化后將每一列=(,,…,x)輸入BiLSTM 中,輸出長(zhǎng)度為×的向量=(,,…,y),為車牌字符類別數(shù)。本文中廣西柳州電動(dòng)自行車車牌字符有:中文字符“桂”、除去“I”和“O”的所有英文大寫字母以及0~9這10個(gè)阿拉伯?dāng)?shù)字共34個(gè)字符。
轉(zhuǎn)錄部分:本文沿用CTC 的設(shè)置,對(duì)其參數(shù)不做更改。
在文本識(shí)別領(lǐng)域,經(jīng)常會(huì)存在輸入和輸出難以對(duì)齊的問題;因此,本文用CTC對(duì)循環(huán)神經(jīng)網(wǎng)絡(luò)的輸出進(jìn)行解碼,將BiLSTM的輸出轉(zhuǎn)換成一個(gè)序列。
定義為由BiLSTM 輸出組成的序列路徑。對(duì)于BiLSTM,在給定輸入的情況下,輸出為的概率用式(4)來計(jì)算。
式中,為多對(duì)一的映射函數(shù),目的是去除空白標(biāo)簽與重復(fù)標(biāo)簽?!?)表示所有經(jīng)過變換后是的路徑,且對(duì)于任意一條路徑有:
目前的機(jī)動(dòng)車車牌識(shí)別系統(tǒng)已有較為成熟的抓拍系統(tǒng)以及車牌數(shù)據(jù)集(如CCPD 數(shù)據(jù)集),而國內(nèi)電動(dòng)自行車車牌數(shù)據(jù)集尚為空白,且網(wǎng)絡(luò)搜索圖片的結(jié)果也較少。由于廣西壯族自治區(qū)內(nèi)的電動(dòng)自行車數(shù)量多,將廣西柳州市作為車牌數(shù)據(jù)采集地。本實(shí)驗(yàn)所用數(shù)據(jù)為手持拍照設(shè)備收集而來的真實(shí)電動(dòng)自行車車牌照片。本文共收集真實(shí)圖片2 000 余張,隨機(jī)抽取500 張真實(shí)車牌圖片用作測(cè)試,其余用作訓(xùn)練。
由于本實(shí)驗(yàn)數(shù)據(jù)集較小,所使用的深度網(wǎng)絡(luò)可能會(huì)產(chǎn)生過擬合現(xiàn)象,導(dǎo)致網(wǎng)絡(luò)的泛化能力差,難以在測(cè)試集上達(dá)到最佳性能。一般來說,可以采用數(shù)據(jù)增強(qiáng)的方法防止過擬合現(xiàn)象。常見的數(shù)據(jù)增強(qiáng)方法有:旋轉(zhuǎn)(圖片隨機(jī)翻轉(zhuǎn)0~360°)、裁剪(圖像隨機(jī)裁去小部分)、添加噪聲(高斯、椒鹽噪聲)等。這些圖像增強(qiáng)方法有效地增加了數(shù)據(jù)集的多樣性,對(duì)提升網(wǎng)絡(luò)性能有很大的幫助。
本文對(duì)原始數(shù)據(jù)進(jìn)行了不同的數(shù)據(jù)增強(qiáng)。如圖4 所示,對(duì)于真實(shí)的圖片,本文對(duì)其使用了模糊、形變、添加噪聲等方法進(jìn)行擴(kuò)充。
圖4 (網(wǎng)絡(luò)版彩圖)數(shù)據(jù)增強(qiáng)示例
此外,還在訓(xùn)練集中添加了仿造車牌。電動(dòng)自行車車牌與機(jī)動(dòng)車車牌字符個(gè)數(shù)一致,均為7個(gè),分為2 排。經(jīng)過觀察,柳州電動(dòng)自行車車牌基本分為綠色和白色2 種顏色,柳州本市的車牌為“桂B(yǎng)”開頭,出現(xiàn)極少數(shù)南寧(“桂A”)、桂林(“桂C”)等其他市車牌;因此,仿造車牌以綠色和白色為底色,設(shè)置城市代號(hào)為“A”“B”“C”且這三類車牌數(shù)保持一致,并在仿造車牌上加入鉚釘?shù)仍?。隨機(jī)生成車牌號(hào)后,對(duì)仿造車牌也進(jìn)行了一些處理,以更接近真實(shí)車牌??紤]到光照不同所導(dǎo)致的車牌陰影變化較大、某些車牌上有污漬刮痕以及拍攝角度不同可能會(huì)造成的車牌扭曲等,對(duì)仿造車牌加入椒鹽噪聲、調(diào)整圖像明暗度、將圖像進(jìn)行仿射畸變等步驟的處理。處理后的仿造車牌如圖5所示。
圖5 (網(wǎng)絡(luò)版彩圖)仿造車牌圖集
使用經(jīng)過形變、加噪聲等步驟處理后的數(shù)據(jù)訓(xùn)練能夠極大地提高網(wǎng)絡(luò)的泛化能力,使得同一個(gè)網(wǎng)絡(luò)能夠?qū)Σ煌瑘?chǎng)景的車牌識(shí)別具有良好的表現(xiàn)。實(shí)驗(yàn)中,訓(xùn)練集共有車牌數(shù)據(jù)6 000 余張,其中,擴(kuò)充后的真實(shí)車牌3 000余張,仿造車牌3 000張。測(cè)試集500張車牌均為真實(shí)車牌。
實(shí)驗(yàn)運(yùn)行環(huán)境為Windows 10 操作系統(tǒng),CPU為英特爾i5,主頻率為3.0 GHz,內(nèi)存大小為8 GB。在Pytorch(1.2)框架中完成車牌識(shí)別實(shí)驗(yàn)。
在對(duì)真實(shí)車牌進(jìn)行識(shí)別之前,生成了近70 000張仿造車牌,進(jìn)行了20 輪的預(yù)訓(xùn)練。預(yù)訓(xùn)練的過程使不同的模塊快速適應(yīng)任務(wù),微調(diào)過程將進(jìn)一步減少訓(xùn)練損失,使網(wǎng)絡(luò)融合。預(yù)訓(xùn)練時(shí)仿造車牌的識(shí)別精度達(dá)到99.68%,預(yù)訓(xùn)練模型的權(quán)重用于后續(xù)訓(xùn)練。
在訓(xùn)練階段使用Adam優(yōu)化器來訓(xùn)練模型。將輸入車牌圖像的大小固定為32×160,訓(xùn)練階段batchsize設(shè)為32,測(cè)試階段batchsize設(shè)為16,學(xué)習(xí)率設(shè)為0.000 1,訓(xùn)練輪次epoch設(shè)為100。
使用識(shí)別準(zhǔn)確率(ACC)、平均損失(Loss)來評(píng)價(jià)模型。ACC 反映了模型正確識(shí)別車牌的個(gè)數(shù),Loss表示車牌識(shí)別平均損失。模型中,ACC越大,Loss越小,則模型越好。此外,車牌檢測(cè)系統(tǒng)具有實(shí)時(shí)性;因此,模型的識(shí)別速度也是一項(xiàng)重要指標(biāo)。
圖6 為模型訓(xùn)練過程的損失以及準(zhǔn)確率。車牌識(shí)別網(wǎng)絡(luò)在60 輪左右收斂,識(shí)別準(zhǔn)確率為98.40%,最終平均損失為0.017 0,平均識(shí)別速度為41.24張/s。
圖6 (網(wǎng)絡(luò)版彩圖)車牌識(shí)別模型的Loss和ACC
對(duì)于BiLSTM層數(shù)以及隱藏層單元數(shù)的選擇,本文做了對(duì)比實(shí)驗(yàn)。分別設(shè)置BiLSTM的層數(shù)為1、2、3,隱藏層單元數(shù)為128、256、512和1 024。同樣,通過ACC和Loss判斷參數(shù)設(shè)置的優(yōu)劣。由表2可以看出,當(dāng)網(wǎng)絡(luò)設(shè)置為2層BiLSTM,隱藏層為512時(shí),識(shí)別準(zhǔn)確率最高,此方案是最為合理的方案。
表2 BiLSTM參數(shù)對(duì)比分析
表2 中,隨著隱藏層神經(jīng)元數(shù)量提升(128 到256),準(zhǔn)確率隨之升高,在256層時(shí)達(dá)到最優(yōu)。而當(dāng)隱藏層單元數(shù)達(dá)到1 024 時(shí),準(zhǔn)確率降低,說明此時(shí)模型過擬合,泛化能力變差。
將CRNN原文中的CNN部分精簡(jiǎn),去掉2個(gè)卷積層和最大池化層,激活函數(shù)換成LeakyRelu,將BN改為一層,放在網(wǎng)絡(luò)的最后。與原始的7個(gè)卷積層的CNN對(duì)比,模型參數(shù)顯著減少,加快了網(wǎng)絡(luò)的收斂速度。RNN部分為適應(yīng)電動(dòng)自行車車牌數(shù)據(jù)集,將BiLSTM隱藏層單元數(shù)調(diào)整為512。如表3所示,通過切割字符進(jìn)行識(shí)別的傳統(tǒng)方法精度只有79.16%,改進(jìn)CRNN 的準(zhǔn)確率為98.40%。對(duì)比CRNN 原文,本文在電動(dòng)自行車車牌數(shù)據(jù)集上實(shí)現(xiàn)了2.80%的精度提升,識(shí)別速度也有所提升。此外,通過比較文獻(xiàn)[13]的LeNet-5-L、文獻(xiàn)[19]的CRNN_Plate 和文獻(xiàn)[12]的LPRNet,可以看出這些在機(jī)動(dòng)車牌識(shí)別上取得較好效果的網(wǎng)絡(luò)模型并不適用于本文的數(shù)據(jù)集。
表3 與其他方法對(duì)比
本文電動(dòng)自行車車牌識(shí)別結(jié)果如圖7所示。實(shí)驗(yàn)結(jié)果表明,對(duì)于明暗不同、有污漬、形變等較為復(fù)雜的車牌圖片,本文的車牌識(shí)別模型有較高的識(shí)別準(zhǔn)確率,且識(shí)別速度較快。
圖7 (網(wǎng)絡(luò)版彩圖)電動(dòng)自行車車牌識(shí)別效果圖
基于對(duì)現(xiàn)有的機(jī)動(dòng)車車牌識(shí)別系統(tǒng)的研究,本文提出了一種深度卷積循環(huán)神經(jīng)網(wǎng)絡(luò)的電動(dòng)自行車車牌識(shí)別方法。該法對(duì)文本識(shí)別模型CRNN做了部分改進(jìn),通過特征提取、序列預(yù)測(cè)以及最后的CTC轉(zhuǎn)錄,在電動(dòng)自行車車牌數(shù)據(jù)集上獲得了較高的準(zhǔn)確率。與傳統(tǒng)的基于字符分割的車牌識(shí)別算法不同,本文的車牌識(shí)別模型避免了字符錯(cuò)誤分割對(duì)識(shí)別率造成的影響,提高了車牌識(shí)別效率,簡(jiǎn)化了流程。在廣西柳州電動(dòng)自行車車牌數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,本文提出的方法能夠?qū)崿F(xiàn)在污垢、形變、圖像模糊等復(fù)雜自然場(chǎng)景下的車牌識(shí)別,魯棒性較強(qiáng),有廣泛的應(yīng)用場(chǎng)景。
由于目前還沒有公開的電動(dòng)自行車車牌數(shù)據(jù)集,本文的訓(xùn)練數(shù)據(jù)有限,一定程度上影響了車牌識(shí)別效果。雖然在廣西柳州電動(dòng)自行車車牌數(shù)據(jù)集上取得了不錯(cuò)的識(shí)別效果,但仍然存在一些不足,主要有:
1)所收集的車牌數(shù)據(jù)來源于同一地區(qū),沒有對(duì)其他地區(qū)的車牌進(jìn)行研究,車牌的字符分布、底板顏色都比較單一,模型的適用范圍較窄。下一階段將會(huì)對(duì)全國范圍內(nèi)的電動(dòng)自行車車牌進(jìn)行分析研究,擴(kuò)大數(shù)據(jù)集種類,使電動(dòng)自行車車牌識(shí)別可以真正應(yīng)用于實(shí)際。
2)本文的車牌識(shí)別僅針對(duì)采集好的圖像數(shù)據(jù),而在現(xiàn)實(shí)生活中,對(duì)于車牌識(shí)別有著更高的需求:動(dòng)態(tài)識(shí)別、實(shí)時(shí)識(shí)別等;因此,下一步的研究方向是對(duì)動(dòng)態(tài)視頻中的電動(dòng)自行車車牌進(jìn)行識(shí)別。對(duì)于未來的實(shí)際交通應(yīng)用,今后還有很多工作要做。