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