孫世昕,馬 蕾,李千目,張偉斌
(1. 南京理工大學(xué)電子工程與光電技術(shù)學(xué)院,江蘇南京 210094;2. 南京理工大學(xué)公共事務(wù)學(xué)院,江蘇南京 210094;3. 南京理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,江蘇 南京 210094)
現(xiàn)階段車牌檢測(cè)與識(shí)別技術(shù)(LPR)已廣泛應(yīng)用于車輛管理、電子收費(fèi)等領(lǐng)域,目前存在紅外檢測(cè)、埋地線圈檢測(cè)、雷達(dá)檢測(cè)、圖像檢測(cè)等多種實(shí)現(xiàn)方式[1-2]。其中,基于圖像的檢測(cè)技術(shù)可以避免破壞路面,不必附加外部檢測(cè)設(shè)備,具備低成本、便捷的優(yōu)勢(shì),因此也是當(dāng)下研究的熱點(diǎn)。得利于卷積神經(jīng)網(wǎng)絡(luò)的快速發(fā)展,基于深度學(xué)習(xí)的圖像檢測(cè)算法在特定場(chǎng)景下已經(jīng)取得可觀的識(shí)別精度,并產(chǎn)生了一批具有應(yīng)用價(jià)值的識(shí)別算法。
現(xiàn)有算法的性能易受識(shí)別光照質(zhì)量的影響[3-4],導(dǎo)致在暗光或者夜間場(chǎng)景下難以準(zhǔn)確定位。在部分商業(yè)體停車庫(kù)出口,容易發(fā)生因無(wú)法檢測(cè)車牌導(dǎo)致車輛通行緩慢,造成擁塞,極大影響消費(fèi)者的停車體驗(yàn),給商城經(jīng)濟(jì)效益帶來(lái)負(fù)面影響;而在一些居民區(qū),更是因?yàn)橐归g無(wú)法有效識(shí)別車輛身份,對(duì)業(yè)主日常出行和小區(qū)安全都帶來(lái)極大不便。
為克服光照不足對(duì)檢測(cè)精度的影響,本文通過(guò)分析現(xiàn)有模型的識(shí)別步驟,引入新的數(shù)據(jù)增強(qiáng)手段,并對(duì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行優(yōu)化,減少網(wǎng)絡(luò)冗余層數(shù),最終提出了一個(gè)具有較強(qiáng)光照魯棒性的深度學(xué)習(xí)LPR 系統(tǒng)。該算法有效減少了車牌識(shí)別技術(shù)在暗光場(chǎng)景下對(duì)外界燈光的依賴,并明顯提升了識(shí)別速度,同時(shí)降低了對(duì)硬件的性能需求。
車牌檢測(cè)與識(shí)別技術(shù)通常分為兩個(gè)子任務(wù):車牌定位、字符識(shí)別。在車牌定位環(huán)節(jié),傳統(tǒng)方法通常首先采用圖像二值化或灰度分析來(lái)選擇候選區(qū)域,然后結(jié)合特征提取和機(jī)器學(xué)習(xí)分類器確定目標(biāo)所在位置[5-7]。隨著深度學(xué)習(xí)技術(shù)的興起,基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)定位技術(shù)也被廣泛應(yīng)用于車牌檢測(cè)[8]。以Faster R-CNN 為代表的two-stage 目標(biāo)檢測(cè)算法通過(guò)對(duì)圖像提取候選區(qū)域[8-10],再針對(duì)候選區(qū)域進(jìn)行目標(biāo)分類與位置修正,從而在降低計(jì)算量的同時(shí)提升了識(shí)別精度。但是速度方面的缺陷導(dǎo)致twostage 算法難以應(yīng)用于實(shí)時(shí)場(chǎng)景下的識(shí)別任務(wù);另一方面,以YOLO 為代表的one-stage 目標(biāo)檢測(cè)算法僅通過(guò)一步便直接得到目標(biāo)的位置與分類[11-14],識(shí)別速度得到極大提升,但由于先驗(yàn)框尺度及數(shù)量的限制,此類算法對(duì)小目標(biāo)的識(shí)別精度仍待改進(jìn),難以直接應(yīng)用于車牌檢測(cè)領(lǐng)域。
現(xiàn)有算法往往很難兼顧識(shí)別結(jié)果的精度與速度,隨著識(shí)別精度的不斷提高,神經(jīng)網(wǎng)絡(luò)的層數(shù)不斷增加,使得訓(xùn)練及識(shí)別的時(shí)間成本不斷提高。因而目前的研究熱點(diǎn)仍圍繞單張圖片的檢測(cè),在實(shí)時(shí)場(chǎng)景下,算法的識(shí)別速度難以滿足要求。
為克服該不足,本文在車牌定位環(huán)節(jié)以MTCNN 網(wǎng)絡(luò)(Multi-task convolutional neural network)為基礎(chǔ),構(gòu)建了一個(gè)二級(jí)級(jí)聯(lián)網(wǎng)絡(luò),通過(guò)使用小模型生成有一定可能性的目標(biāo)區(qū)域候選框,然后再使用復(fù)雜模型進(jìn)行更高精度的區(qū)域框回歸,兼顧了性能和準(zhǔn)確率。此外,MTCNN 具備同時(shí)進(jìn)行區(qū)域檢測(cè)及關(guān)鍵點(diǎn)檢測(cè)的能力,更加契合車牌的形狀特征。
傳統(tǒng)的車牌字符識(shí)別算法通常由字符分割和字符分類兩個(gè)階段構(gòu)成,其中字符分割通常使用不同的手工算法[15],并結(jié)合投影、連接和基于圖像組件的輪廓。由于采用二值圖像或中間表示作為輸入,因此字符分割的質(zhì)量受輸入圖像噪聲、低分辨率、模糊或變形等因素的影響較大;在字符分類階段多采用光學(xué)字符識(shí)別(OCR)[16-17],由于字符分類發(fā)生在字符分割之后,因此最終的識(shí)別質(zhì)量在很大程度上取決于分割結(jié)果的優(yōu)劣。
現(xiàn)階段將字符分割和字符分類合二為一的端到端算法已經(jīng)成為主流,其中以LPRNet 網(wǎng)絡(luò)為典型[18]。LPRNet 是一個(gè)基于卷積神經(jīng)網(wǎng)絡(luò)的輕量級(jí)實(shí)時(shí)識(shí)別算法,該算法以原始RGB 圖像作為CNN的輸入,字符分類結(jié)果為輸出,把車牌檢測(cè)與識(shí)別兩個(gè)任務(wù)融合在一起,而無(wú)需對(duì)字符進(jìn)行預(yù)分割處理,極大的減少了網(wǎng)絡(luò)前向傳播的時(shí)間,構(gòu)建了一個(gè)端到端的車牌識(shí)別網(wǎng)絡(luò)。
上述字符識(shí)別方法在一般場(chǎng)景下已經(jīng)取得很高的精度,但在光照不足的特殊場(chǎng)景,由于字符與背景的像素差明顯減小,算法的識(shí)別精度往往嚴(yán)重劣化。為提高算法的光照魯棒性,本文通過(guò)引入隨機(jī)暗化處理的數(shù)據(jù)預(yù)處理手段,使得卷積神經(jīng)網(wǎng)絡(luò)對(duì)暗光圖片具備更好的適應(yīng)性。
本文在訓(xùn)練及測(cè)試階段采用數(shù)據(jù)集CCPD_db。 CCPD_db 是中科大開源數(shù)據(jù)集CCPD 2019 的一個(gè)子集,共計(jì)包含10132 張照片,該子數(shù)據(jù)集的特點(diǎn)是LP 區(qū)域的照明往往偏暗的或者偏亮。選擇此數(shù)據(jù)集旨在獲得一個(gè)能夠適應(yīng)不同時(shí)刻光照?qǐng)鼍埃瑹o(wú)需根據(jù)時(shí)間進(jìn)行參數(shù)微調(diào)的識(shí)別模型。
在數(shù)據(jù)增強(qiáng)階段,本文對(duì)數(shù)據(jù)集CCPD_db 的圖片進(jìn)行隨機(jī)裁剪處理[19],針對(duì)每幅圖片Im 首先隨機(jī)裁剪5 次,從而得到5 張圖片Imi(i=0,1,2,3,4);再對(duì)Imi的邊框分別與實(shí)際車牌邊框Box 計(jì)算交并比(IOU),若此時(shí)IOU<0.3,則將Imi視作負(fù)樣本加入訓(xùn)練集。而后對(duì)于實(shí)際邊框Box 進(jìn)行隨機(jī)縮放5次,縮放比例在0.8~1.25 之間隨機(jī)選取,得到5 個(gè)新邊框Boxi(i=0,1,2,3,4);最終對(duì)Boxi分別與Box計(jì)算交并比(IOU),若此時(shí)IOU>0.7,則將Boxi視作正樣本加入訓(xùn)練集。
為提高模型在夜間場(chǎng)景下的識(shí)別精度,在數(shù)據(jù)增強(qiáng)階段,本文增加了隨機(jī)暗化(random darkening)的環(huán)節(jié),該措施旨在使訓(xùn)練集的像素特點(diǎn)與實(shí)際場(chǎng)景更加契合。在該階段,每幅圖片存在0.3 的概率被進(jìn)行亮度降低處理:設(shè)原圖片中各像素值為I(R,G,B),則經(jīng)過(guò)暗化處理后的圖片像素值I'(R',G',B')的計(jì)算方式為:
式中 [α,β,γ]被初始化為[0.3,0.3,0.8],其梯度計(jì)算會(huì)納入后向傳播,并且每經(jīng)過(guò)5 次迭代更新一次。經(jīng)過(guò)暗化處理后的圖像效果如圖1 所示。
通過(guò)上述的暗化處理,圖片亮度被顯著降低并增加了像素中藍(lán)色通道的比重,經(jīng)此處理的圖片更加具有“夜景效果”。在測(cè)試階段,該方法的使用使得夜間場(chǎng)景下的識(shí)別精度上升了2.9%。
2.2.1 網(wǎng)絡(luò)結(jié)構(gòu)
MTCNN(Multi-task convolutional neural network)是一個(gè)三層級(jí)聯(lián)的網(wǎng)絡(luò)[20],原本設(shè)計(jì)用于人臉檢測(cè),采用候選框加分類器的思想,實(shí)現(xiàn)了區(qū)域檢測(cè)與關(guān)鍵點(diǎn)檢測(cè)的同步進(jìn)行。MTCNN 總體可分為三層結(jié)構(gòu),分別是快速生成候選窗口的P-Net、進(jìn)行高精度候選窗口過(guò)濾選擇的R-Net 和生成最終邊界框與關(guān)鍵點(diǎn)的O-Net。在本次車牌檢測(cè)任務(wù)中,考慮到對(duì)關(guān)鍵點(diǎn)的檢測(cè)需求不是很高,主要聚焦于對(duì)區(qū)域的定位,因此對(duì)MTCNN 網(wǎng)絡(luò)進(jìn)行了修改。檢測(cè)任務(wù)中,刪除了三層網(wǎng)絡(luò)的中間層R-Net,并在PNe,O-Net 的輸出層前引入1×1 卷積,提升了網(wǎng)絡(luò)通道數(shù),使其與輸出層相匹配,由此使得網(wǎng)絡(luò)能夠輸入任意尺寸的圖片。
本文將修改后的卷積神經(jīng)網(wǎng)絡(luò)命名為Tiny-MTCNN,由P-Net,O-Net 兩層網(wǎng)絡(luò)構(gòu)成。其中PNet 通過(guò)FCN 進(jìn)行初步特征提取與標(biāo)定邊框,并進(jìn)行Bounding-Box Regression 調(diào)整窗口與NMS 窗口過(guò)濾,該部分最終輸出很多個(gè)可能存在車牌的目標(biāo)區(qū)域,并將這些區(qū)域輸入O-Net 進(jìn)行進(jìn)一步處理。本文中P-Net 的網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示。
O-Net 的基本結(jié)構(gòu)是一個(gè)較為復(fù)雜的卷積神經(jīng)網(wǎng)絡(luò),相較于P-Net 增加了一個(gè)全連接層,因此對(duì)于輸入數(shù)據(jù)的篩選更加嚴(yán)格。在網(wǎng)絡(luò)結(jié)構(gòu)的最后是一個(gè)256 維度的全連接層,同時(shí)再進(jìn)行區(qū)域判別、區(qū)域邊框回歸和車牌特征定位,最終輸出車牌區(qū)域的左上角坐標(biāo)和右下角坐標(biāo)與車牌區(qū)域的兩個(gè)特征點(diǎn)。O-Net 的網(wǎng)絡(luò)結(jié)構(gòu)如圖3 所示。
2.2.2 1×1 卷積的作用
為降低前向傳播過(guò)程中的運(yùn)算量,本文將PNet 網(wǎng)絡(luò)的輸入大小設(shè)置為12×12,并在卷積模塊之后引入1×1 卷積將特征圖通道數(shù)提升至256,從而得到網(wǎng)絡(luò)最后的全連接層。此改進(jìn)方式極大減少了網(wǎng)絡(luò)的參數(shù)量,在提升算法速度的同時(shí)壓縮了識(shí)別過(guò)程的內(nèi)存占用,降低了算法落地的硬件需求。
2.2.3 激活函數(shù)選擇
P-Net,O-Ne 網(wǎng)絡(luò)中激活函數(shù)統(tǒng)一采用PReLU激活函數(shù),傳統(tǒng)ReLU 函數(shù)在負(fù)數(shù)部分恒等于0,當(dāng)梯度過(guò)大的時(shí)候神經(jīng)元可能無(wú)法激活[21]。為避免該問(wèn)題,PReLU 激活函數(shù)做出了改進(jìn),對(duì)所有負(fù)值賦予一個(gè)非零斜率,其數(shù)學(xué)表達(dá)式為:
式中a為一個(gè)可學(xué)習(xí)的參數(shù),且被初始化為0.25。測(cè)試階段發(fā)現(xiàn),在車牌定位過(guò)程中,引入PReLU 激活函數(shù)帶來(lái)了1.1%的精度提升。
LPRNet 為無(wú)需進(jìn)行字符分割的端到端的車牌字符識(shí)別方法,以上文Tiny-MTCNN 網(wǎng)絡(luò)的輸出區(qū)域作為輸入,可直接得到對(duì)應(yīng)區(qū)域的車牌字符串。其主干網(wǎng)絡(luò)架構(gòu)如表1 所示:
表1 LPRNet 網(wǎng)絡(luò)結(jié)構(gòu)
該網(wǎng)絡(luò)以原始RGB 圖像作為輸入并計(jì)算空間分布的豐富特征,最后一層使用1×13 的卷積核以結(jié)合局部字符的上下文信息,而不是使用基于LSTM 的RNN。骨干子網(wǎng)絡(luò)的輸出是一個(gè)表示字符概率的序列,其長(zhǎng)度對(duì)應(yīng)于輸入圖像像素寬度。
在訓(xùn)練階段,每一個(gè)batch 的大小為32,并采用Adam 優(yōu)化器進(jìn)行參數(shù)優(yōu)化,初始的學(xué)習(xí)率為0.001,梯度噪聲比為0.001。通過(guò)對(duì)8750 張中文車牌數(shù)據(jù)集進(jìn)行訓(xùn)練,經(jīng)過(guò)200 次迭代,最終在中文數(shù)據(jù)集上獲得95.0%的中文字符識(shí)別精度。
本研究在訓(xùn)練集測(cè)試階段采用的數(shù)據(jù)集為CCPD_db[22],共計(jì)包含10132 張照片,其中訓(xùn)練集包含7599 張圖片,測(cè)試集包含2533 張圖片。在測(cè)試集的2533 張圖片中,本研究按白天、夜晚兩個(gè)場(chǎng)景對(duì)圖片進(jìn)行了分類,分別包含1661,872 張圖片,為評(píng)估算法在不同光照?qǐng)鼍跋碌男阅芴峁┲巍?/p>
本次實(shí)驗(yàn)所采用的平臺(tái)為WIN 10 操作系統(tǒng),并配置Intel 8700 CPU,及Nvidia 2070 GPU。實(shí)驗(yàn)中發(fā)現(xiàn)該平臺(tái)可以滿足本文算法在實(shí)時(shí)場(chǎng)景下的識(shí)別,幀率可保持在28fps 以上,印證了該算法在實(shí)際應(yīng)用場(chǎng)景下落地的可行性。
3.2.1 定位性能對(duì)比
在測(cè)試階段,首先對(duì)不同算法的車牌定位功能進(jìn)行了比較,選取了當(dāng)下較為熱門的網(wǎng)絡(luò)Faster RCNN,YOLO V3,MTCNN 與 本 次 研 究 采 用 的Tiny-MTCNN 作為定位算法,檢驗(yàn)?zāi)P驮谲嚺贫ㄎ浑A段的性能。將上述各算法在CCPD_db 訓(xùn)練集上迭代10 次后,在相同的測(cè)試集上運(yùn)行,將測(cè)試結(jié)果按白天、夜晚兩個(gè)場(chǎng)景進(jìn)行分類,各算法的性能如圖4,5 所示。
通過(guò)對(duì)比得出,在白天場(chǎng)景下Tiny-MTCNN 由于網(wǎng)絡(luò)層數(shù)的減少,相較于傳統(tǒng)網(wǎng)絡(luò)在定位精度上略有不足,性能位于YOLO V3 與Faster R-CNN 之間。但是在夜間場(chǎng)景下,由于隨機(jī)暗化處理的引入,Tiny-MTCNN 的定位精度顯示出了顯著的優(yōu)勢(shì),較MTCNN 網(wǎng)絡(luò)提升1.2%;另一方面,由于網(wǎng)絡(luò)冗余度的降低及1×1 卷積的引入,Tiny-MTCNN 在運(yùn)行速度上得到極大的提升,在測(cè)試平臺(tái)上達(dá)到每秒34 幀,基本滿足實(shí)時(shí)檢測(cè)的速率需求。
3.2.2 識(shí)別結(jié)果對(duì)比
在對(duì)算法最終的字符識(shí)別性能進(jìn)行對(duì)比時(shí),研究將MTCNN 與上文介紹的不同優(yōu)化模塊相組合,并在相同的測(cè)試集上進(jìn)行運(yùn)行,通過(guò)對(duì)比算法的平均精度(mAP)、每秒傳輸幀數(shù)(fps),以評(píng)估不同模塊帶來(lái)的性能提升。如表2 所示,其中算法(a)是簡(jiǎn)單的MTCNN+LPRNet 組合,其在CCPD_db 上的平均精度為96.3%,夜晚場(chǎng)景下算法的精度出現(xiàn)明顯劣化,下降至93.4%。
表2 中,算法(b)相較于算法(a)在數(shù)據(jù)預(yù)處理環(huán)節(jié)引入了上文提及的隨機(jī)暗化處理,使得夜晚場(chǎng)景下的識(shí)別精度提高2.9%,光照魯棒性明顯提升。而算法(c)相較于算法(a),將MTCNN 網(wǎng)絡(luò)替換為Tiny-MTCNN,取消了R-Net,并引入1×1 卷積,將激活函數(shù)改進(jìn)為PReLU。測(cè)試中發(fā)現(xiàn)由于網(wǎng)絡(luò)層數(shù)的減少,算法的平均精度下降了0.6%,但是在識(shí)別速率方面獲得了很大的提升,從之前的19.7fps 上升至28.5fps,提升了44.67%。而算法(d)在Tiny-MTCNN 的基礎(chǔ)上加入了隨機(jī)暗化處理,從測(cè)試結(jié)果可以看出在保持速度的同時(shí)精度獲得了提高,特別是夜晚場(chǎng)景下的識(shí)別精度從之前的93.2%提高到了96.1%。
表2 測(cè)試結(jié)果對(duì)比
通過(guò)上述對(duì)比,可以得出Tiny-MTCNN 的引入有效提高了算法運(yùn)行速率的結(jié)論,為車牌識(shí)別在實(shí)時(shí)場(chǎng)景下的落地提供了可能。此外,隨機(jī)暗化的據(jù)預(yù)處理手段也極大提高了夜間場(chǎng)景下的識(shí)別精度,避免了針對(duì)不同時(shí)刻的參數(shù)微調(diào)。圖6 列舉了夜晚場(chǎng)景下的識(shí)別效果,隨機(jī)暗化處理的引用顯著提升了定位及文字識(shí)別精度。
1)本文通過(guò)搭建命名為Tiny-MTCNN 的二級(jí)級(jí)聯(lián)定位網(wǎng)絡(luò),及端到端的字符識(shí)別網(wǎng)絡(luò)LPRNet,實(shí)現(xiàn)了一套完整的中文車牌檢測(cè)與識(shí)別系統(tǒng)。通過(guò)在數(shù)據(jù)預(yù)處理環(huán)節(jié)引入隨機(jī)暗化處理的數(shù)據(jù)增強(qiáng)方式,顯著提高了算法的光照魯棒性,最終網(wǎng)絡(luò)在暗光條件下的字符識(shí)別精度提升至96.1%。
2)通過(guò)在對(duì)不同光照?qǐng)鼍跋碌淖R(shí)別精度、幀率對(duì)比,研究驗(yàn)證了Tiny-MTCNN 網(wǎng)絡(luò)與LPRNet 相較于傳統(tǒng)識(shí)別網(wǎng)絡(luò)在速度方面的優(yōu)勢(shì)。其中Tiny-MTCNN 網(wǎng)絡(luò)通過(guò)刪減冗余網(wǎng)絡(luò)及引入1×1 卷積,配合LPRNet 端到端的識(shí)別方式,在保證精度的同時(shí)極大提升了檢測(cè)速度,在測(cè)試平臺(tái)達(dá)到了28.5fps,基本滿足了實(shí)際場(chǎng)景下的落地要求。
3)在測(cè)試環(huán)節(jié)發(fā)現(xiàn),視頻中的車輛往往伴隨著運(yùn)動(dòng)模糊,為實(shí)時(shí)場(chǎng)景下的精度提升帶來(lái)了挑戰(zhàn)。針對(duì)該問(wèn)題,下一步工作計(jì)劃從數(shù)據(jù)增強(qiáng)及模糊抵消方面入手,降低運(yùn)動(dòng)模糊對(duì)檢測(cè)結(jié)果的影響,進(jìn)一步提升實(shí)時(shí)場(chǎng)景下的車牌檢測(cè)與識(shí)別精度。