林立雄, 何洪欽, 陳彥杰, 鄭佳春, 彭俠夫
(1.集美大學(xué) 海洋信息工程學(xué)院, 福建 廈門 361021; 2.福州大學(xué) 機(jī)械工程及自動(dòng)化學(xué)院, 福建 福州 350000; 3.廈門大學(xué) 航空航天學(xué)院, 福建 廈門 361000)
全球車輛數(shù)逐年增長(zhǎng),對(duì)交通管理的壓力也越來越大。智能交通集成了通訊、電子、控制、信息等技術(shù),在很大程度上能降低交通管理壓力。車牌識(shí)別是智能交通的重要組成部分。傳統(tǒng)的車牌識(shí)別包括字符分割和字符識(shí)別2個(gè)部分,其中字符分割方法包括:輪廓提取[1],垂直投影[2],灰度統(tǒng)計(jì)[3]和模板匹配[4]等;字符識(shí)別方法包括:邊界特征[5],HOG特征[6],模板匹配[7],支持向量機(jī)[8]和模板匹配結(jié)合神經(jīng)網(wǎng)絡(luò)等[9]。得益于更強(qiáng)大的計(jì)算機(jī)、更大的數(shù)據(jù)集和能夠訓(xùn)練更深網(wǎng)絡(luò)的技術(shù),基于深度學(xué)習(xí)的文本識(shí)別技術(shù)有了極大的發(fā)展。文本識(shí)別包括文本檢測(cè)和識(shí)別2個(gè)部分。其中文本檢測(cè)又可以分為2大類:基于回歸的文本檢測(cè)和基于分割的文本檢測(cè)。基于回歸的方法將文字當(dāng)作一個(gè)目標(biāo)進(jìn)行檢測(cè),其中TIAN等[10]提出的文本建議網(wǎng)絡(luò)(connectionist text proposal network,CTPN)是目前流傳最廣、影響最大的開源文本檢測(cè)模型,可以檢測(cè)水平或微斜的文本行。采用BLSTM模塊提取字符所在圖像上下文特征,以提高文本塊識(shí)別精度。Shi等[11]提出的SegLink則是將單詞切割為更易檢測(cè)的小文字塊,再預(yù)測(cè)鄰近連接將小文字塊連成詞。缺點(diǎn)是不能檢測(cè)間隔很大的文本行,不能檢測(cè)形變或者彎曲文本。Liu等[12]提出通過將點(diǎn)式預(yù)測(cè)分解為無序的關(guān)鍵邊,解決了標(biāo)簽不一致的問題。并為了解碼準(zhǔn)確的頂點(diǎn)位置,提出了一種簡(jiǎn)單而有效的匹配程序來重構(gòu)四邊形邊界框。但該方法只能檢測(cè)旋轉(zhuǎn)矩形,不能檢測(cè)多邊形以及任意形狀的文本。Zhou等[13]提出了基于two-stage的文本檢測(cè)方法:只包含全卷積網(wǎng)絡(luò)和非極大值抑制2個(gè)階段,消除中間過程冗余,減少檢測(cè)時(shí)間.可以檢測(cè)各個(gè)方向的文本。由于受到感受野的限制,在檢測(cè)長(zhǎng)文本的時(shí)候表現(xiàn)一般。Wang等[14]提出了自適應(yīng)文本區(qū)域表示,根據(jù)文本框的形狀使用網(wǎng)絡(luò)去學(xué)習(xí)應(yīng)該使用多少個(gè)點(diǎn)來表示文本框,可以適應(yīng)各種形狀的文本框?;诜指畹姆椒ㄏ扰袛嗑植肯袼厥欠駷槲谋?再通過后處理得到文本框,其中Wang等[15]提出的PSENe采用了前向漸進(jìn)式尺度擴(kuò)展的方法用來區(qū)分鄰近的文本實(shí)例,可用于檢測(cè)任意方向的文本。缺點(diǎn)是檢測(cè)速度較慢。Wang等[16]后又進(jìn)行改進(jìn),提升了運(yùn)行速度。Beak等[17]提出的CRAFT通過先檢測(cè)單個(gè)字符及字符間的連接關(guān)系,然后根據(jù)字符間的連接關(guān)系確定最終的文本行。只需要很小的感受野就可以處理長(zhǎng)彎曲文本。但該方法對(duì)粘連字符的檢測(cè)效果不好。Liao等[18]提出了DBNet通過對(duì)每一個(gè)像素點(diǎn)進(jìn)行自適應(yīng)二值化,二值化閾值由網(wǎng)絡(luò)學(xué)習(xí)得到,徹底將二值化這一步驟加入到網(wǎng)絡(luò)里一起訓(xùn)練,這樣最終的輸出圖對(duì)于閾值就會(huì)非常魯棒,能夠?qū)崿F(xiàn)任意方向的文本。同樣,文本識(shí)別方法也分為對(duì)單字符的識(shí)別和對(duì)文本行的識(shí)別2大類。隨著深度學(xué)習(xí)的發(fā)展,接連涌現(xiàn)的如VggNet[19],ResNet[20],InceptionNet[21],DenseNet[22]等網(wǎng)絡(luò)模型,在單字符識(shí)別中準(zhǔn)確率不斷提高。而目前更主流的方法是直接對(duì)文本行進(jìn)行識(shí)別。對(duì)于文字行的識(shí)別,近幾年效果比較出色的方法主要有基于卷積遞歸神經(jīng)網(wǎng)絡(luò)(convolutional recurrent neural network,CRNN)和具有自動(dòng)校正功能的魯棒文本識(shí)別模型(robust text recognizer with automatic rectification,RARE)。Shi等[23]提出的CRNN是目前較為流行的圖文識(shí)別模型,可識(shí)別較長(zhǎng)的文本序列,且占用的存儲(chǔ)空間小。它包含CNN特征提取層和雙向長(zhǎng)短期記憶網(wǎng)絡(luò)(bi-directional long short-term memory,BLSTM)序列特征提取層,能夠進(jìn)行端到端的聯(lián)合訓(xùn)練。它利用BLSTM和端到端的RNN訓(xùn)練方法(connectionist temporal classification,CTC)部件學(xué)習(xí)字符圖像中的上下文關(guān)系,從而有效提升文本識(shí)別準(zhǔn)確率,使得模型更加魯棒。Shi等[24]提出的RARE模型在識(shí)別變形的圖像文本時(shí)效果很好。模型預(yù)測(cè)過程中,輸入圖像首先要被送到一個(gè)空間變換網(wǎng)絡(luò)中做處理,矯正過的圖像然后被送入序列識(shí)別網(wǎng)絡(luò)中得到文本預(yù)測(cè)結(jié)果。能夠比較準(zhǔn)確地識(shí)別透視變換過的文本、以及彎曲的文本。
由于美式車牌背景圖案多變、文本信息復(fù)雜,使用傳統(tǒng)的車牌識(shí)別方法效果不佳。本文將CTPN用于美式車牌文本檢測(cè),針對(duì)CTPN速度慢、精確度低的問題,對(duì)MobileNetV2[25]和SENet[26]2個(gè)網(wǎng)絡(luò)模型進(jìn)行研究,提出了SE-MobileNetV2快速特征提取模型,提高網(wǎng)絡(luò)推理速度。設(shè)計(jì)了一套錨點(diǎn)機(jī)制,以應(yīng)對(duì)美式車牌文本信息復(fù)雜,檢測(cè)時(shí)存在多個(gè)文本框干擾的情況。將CRNN模型用于車牌號(hào)及州名識(shí)別,并采用Adam優(yōu)化算法,提高美式車牌識(shí)別的準(zhǔn)確度。
為了驗(yàn)證本文方法的有效性,本文以各種自然場(chǎng)景下的美式車牌為數(shù)據(jù)源,構(gòu)建了6 500張美式車牌數(shù)據(jù)集。通過檢測(cè)與識(shí)別實(shí)驗(yàn)證明本文的方法具有準(zhǔn)確率高,速度快的優(yōu)點(diǎn)。
本文提出的基于深度學(xué)習(xí)的美式車牌檢測(cè)和識(shí)別技術(shù)包括2個(gè)方面,一個(gè)是基于CTPN的美式車牌檢測(cè)技術(shù),另一個(gè)是CRNN的車牌識(shí)別技術(shù),如圖1所示。將經(jīng)過預(yù)處理的美式車牌圖像輸入到美式車牌檢測(cè)算法中,提取文本;接著將提取的文本輸入到美式車牌識(shí)別算法中進(jìn)行識(shí)別,輸出識(shí)別結(jié)果。
圖1 CTPN+CRNN美式車牌識(shí)別算法框架Fig.1 Algorithm framework of American license plate recognition based on CTPN+CRNN
美式車牌檢測(cè)技術(shù)目的在于對(duì)車牌圖像中的文本信息進(jìn)行檢測(cè),從原始的復(fù)雜背景圖案中篩選出文本圖案,得到車牌號(hào)和州名的候選區(qū)域,為下一步文本識(shí)別做準(zhǔn)備。由于美式車牌的背景圖案極為復(fù)雜多變,且沒有統(tǒng)一的圖案樣式,若采用傳統(tǒng)的圖像預(yù)處理方法,包括灰度圖轉(zhuǎn)換、中值濾波、邊緣檢測(cè)、二值化等操作,對(duì)于顏色單一的標(biāo)準(zhǔn)車牌可以定位到文本信息,但大部分的美式車牌均無法檢測(cè)。針對(duì)以上問題,本文通過構(gòu)造基于卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)的文本檢測(cè)模塊,從輸入的美式車牌圖像中得到連續(xù)文本行,即預(yù)測(cè)的文本圖像,完成對(duì)文本圖像的框選。為提高文本檢測(cè)的效率,本文對(duì)CTPN進(jìn)行改進(jìn),提出了SE-MobileNetV2快速特征提取模型,提高美式車牌檢測(cè)的速度和精度。
1.1.1 基于SE-MobileNetV2的快速特征提取
美式車牌圖像輸入神經(jīng)網(wǎng)絡(luò)前,首先需要進(jìn)行圖像預(yù)處理,預(yù)處理主要包括對(duì)圖像進(jìn)行顏色通道變換和歸一化處理。顏色變換包括圖像亮度、對(duì)比度、飽和度,取值分別為0.4,0.4,0.4,歸一化參數(shù)為平均值MEAN和標(biāo)準(zhǔn)差STD分別為:
MEAN=(0.485, 0.456, 0.406)
(1)
STD=(0.229, 0.224, 0.225)
(2)
現(xiàn)有的CTPN模型通常應(yīng)用于自然圖像中的文本檢測(cè),沒有應(yīng)用到美式車牌識(shí)別中,在實(shí)際場(chǎng)景中對(duì)車牌進(jìn)行檢測(cè),提高算法精度至關(guān)重要。本文提出的美式車牌文本檢測(cè)結(jié)構(gòu)如圖2所示,使用MobileNetV2作為檢測(cè)網(wǎng)絡(luò)的編碼層,通過深度可分離卷積代替原有的傳統(tǒng)卷積。
如圖3所示深度可分離卷積不同于常規(guī)卷積,它將卷積分為一次深度卷積和一次點(diǎn)卷積。假定輸入圖像大小為Hinl×Winl×3,卷積核大小為3×3×3,輸出特征矩陣大小為Hout1×Wout1×4。若采用普通卷積,其所需要計(jì)算的參數(shù)數(shù)量P1=3×3×3×4=108。若采用深度可分離卷積,其所需要計(jì)算的參數(shù)數(shù)量P2=3×3×3+1×3×4=39。通過對(duì)比普通卷積和深度可分離卷積的參數(shù)數(shù)量,本文使用3×3的深度可分離卷積,相比于傳統(tǒng)卷積計(jì)算量更小,大大提高運(yùn)行速度。
圖3 深度可分離卷積Fig.3 Depthwise separable convolution
為進(jìn)一步提高網(wǎng)絡(luò)性能,本文引入了SENet模塊。SENet可以在特征提取階段,考慮每個(gè)通道的重要性,能夠優(yōu)化網(wǎng)絡(luò)的學(xué)習(xí)能力,提升網(wǎng)絡(luò)準(zhǔn)確率。本文在MobileNetV2特征提取層的每一個(gè)block下均添加了一個(gè)SENet模塊,如圖4所示。
圖4 SE-MobileNetV2框架Fig.4 SE-MobileNetV2 block
SENet模塊包括壓縮和激勵(lì)2部分[26],如圖5所示。壓縮部分將特征圖的維度從H×W×C的壓縮到1×1×C,使得感受區(qū)域更廣。激勵(lì)部分在得到特征圖1×1×C的表示后,加入一個(gè)FC全連接層,對(duì)每個(gè)通道的重要性進(jìn)行預(yù)測(cè),再將結(jié)果激勵(lì)作用到之前的特征圖對(duì)應(yīng)通道上。
圖5 SEnet網(wǎng)絡(luò)結(jié)構(gòu)Fig.5 A SENet block
1.1.2 基于錨點(diǎn)機(jī)制的文本檢測(cè)
車牌圖像通過MobileNetV2編碼后,得到最小分辨率特征圖,本文使用大小為3×3的滑動(dòng)卷積處理該層特征圖,每個(gè)滑動(dòng)位置產(chǎn)生k個(gè)錨,輸出4k個(gè)坐標(biāo)和用于估計(jì)文本/非文本的2k個(gè)分?jǐn)?shù),每次滑動(dòng)卷積的結(jié)果輸入循環(huán)神經(jīng)網(wǎng)絡(luò)RNN中。RNN將文本圖案中的文本框視為序列進(jìn)行處理,得到每個(gè)文本框序列信息。RNN為256維(256D)的雙向LSTM網(wǎng)絡(luò)(BLSTM),包括2個(gè)128D的LSTM網(wǎng)絡(luò),特征輸入BLSTM網(wǎng)絡(luò)后,最后一層是通道數(shù)為512的全連接層。美式車牌的中間區(qū)域經(jīng)常存在干擾項(xiàng),如圖2中的D、V以及DISABLED VETERAN并不屬于車牌號(hào)內(nèi)容。為此,本文針對(duì)美式車牌設(shè)計(jì)了一套錨點(diǎn)機(jī)制,以實(shí)現(xiàn)對(duì)車牌中車牌號(hào)的篩選。
錨點(diǎn)機(jī)制中,如圖6所示,每個(gè)文本檢測(cè)候選框x軸方向長(zhǎng)度固定,本文取值為16,y軸方向長(zhǎng)度變換。設(shè)計(jì)k個(gè)錨點(diǎn),則y軸方向長(zhǎng)度變換表示為:
圖6 文本檢測(cè)候選框Fig.6 Candidate boxes for text detection
y=c/(k0.7)
(3)
式中:c為常量;k=(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),通過k值的變換對(duì)每個(gè)文本框序列進(jìn)行文本框匹配,依次形成多個(gè)文本框。本文中c取值為11。
每個(gè)文本框Bk包含有4個(gè)頂點(diǎn)坐標(biāo)和其序列信息:
BOXk=[xi,yi,k], (k∈N,i∈1,2,3,4)
(4)
錨點(diǎn)機(jī)制首先比較相鄰文本框之間的距離b=xik-xik-1,從x軸方向判斷相鄰文本框是否屬于同一組文本框,若b<50,則認(rèn)為屬于同一組文本框;在y軸方向,將第1個(gè)文本框的高度設(shè)為初始值,對(duì)該文本框進(jìn)行匹配,得到α的值及高度hk=y2k-y1k,若后續(xù)檢測(cè)的文本框高度在(0.9hk,1.1hk)范圍內(nèi),則認(rèn)為屬于同一組文本框。通過x和y軸方向的同時(shí)定位,將同一類的多個(gè)文本框合并成一組文本框,得到多組僅包含文本信息的文本框。
利用美式車牌檢測(cè)技術(shù)可以從復(fù)雜的車牌圖案中得到分割后的車牌號(hào)文本框和多組帶有其他文本信息的文本框,下一步對(duì)這些目標(biāo)圖像進(jìn)行字符識(shí)別,完成對(duì)車牌號(hào)、州名的識(shí)別,輸出車牌號(hào)和州名。采用CRNN模型進(jìn)行字符識(shí)別,該模型是基于美式車牌對(duì)CRNN模型的改進(jìn),有助于提高美式車牌識(shí)別的準(zhǔn)確度。
字符的車牌識(shí)別算法結(jié)構(gòu)見圖7,經(jīng)篩選處理后的目標(biāo)圖像首先按固定長(zhǎng)寬比縮放到32×W×3,隨后輸入CNN模型網(wǎng)絡(luò),提取圖像特征。
圖7 字符識(shí)別結(jié)構(gòu)Fig.7 Character recognition structure
將從圖像中提取到的特征輸入BLSTM網(wǎng)絡(luò),BLSTM網(wǎng)絡(luò)的輸入必須為單行序列,因此CNN模型網(wǎng)絡(luò)輸出的特征矩陣不能直接輸入BLSTM網(wǎng)絡(luò)中,需要使用一次卷積操作將特征矩陣大小轉(zhuǎn)換為1×W/4×512。特征矩陣的每一列作為一個(gè)時(shí)間序列輸入BLSTM,得到關(guān)于每列數(shù)據(jù)的后驗(yàn)概率矩陣,每個(gè)時(shí)間序列片段定義為:
f=(f1,f2,…,fW/4)
(5)
g=[g1g2…gW/4]
(6)
車牌圖案包括26個(gè)英文字母和數(shù)字字符L={A,B,…,Z,0,1,…,9},由于字符間還存在空白字符,L′=L∪{blank}。對(duì)于給定的輸入gt,需要構(gòu)造損失函數(shù)進(jìn)行梯度下降算法,使模型趨于收斂,損失函數(shù)即后驗(yàn)概率:p(l|g),l(l∈L′)為訓(xùn)練樣本的標(biāo)簽真實(shí)值。
模型訓(xùn)練過程是一個(gè)使得輸出為l的概率最大化過程,即:l*=arglmaxp(l|g)。
對(duì)于輸入后驗(yàn)概率矩陣g,矩陣g中存在多種元素的組合得到不同的輸出l,如何快速使得輸入與輸出對(duì)齊,找到近似輸出為l*的組合。通常使用最小化負(fù)對(duì)數(shù)求解最大后驗(yàn)概率分布,因此目標(biāo)函數(shù)可以寫成F=-∑logp(l|g)。
CRNN算法使用反向傳播算法進(jìn)行隨機(jī)梯度下降(stochastic gradient desent, SGD)訓(xùn)練,利用AdaDelta優(yōu)化器自動(dòng)更新學(xué)習(xí)率。SGD算法每次迭代從訓(xùn)練集中隨機(jī)抽取小批量樣本,計(jì)算梯度和誤差并更新參數(shù)。SGD優(yōu)化算法的缺點(diǎn)在于,其梯度更新的方向完全依賴于當(dāng)前樣本,并不是朝著整體最優(yōu)方向,有可能陷入局部最優(yōu)。同時(shí)由于是隨機(jī)抽取樣本,每次計(jì)算的梯度誤差和噪聲大,需要選擇合適的學(xué)習(xí)率并逐漸衰減學(xué)習(xí)率以保證SGD的收斂性。在實(shí)際的美式車牌數(shù)據(jù)的訓(xùn)練中也發(fā)現(xiàn)當(dāng)模型訓(xùn)練到一定次數(shù)后,模型損失較大且無法下降,使用該模型得到的字符識(shí)別效果偏差,無法滿足使用要求。對(duì)此,本文選擇使用Adam梯度優(yōu)化算法,與SGD每次迭代對(duì)所有參數(shù)使用相同的學(xué)習(xí)率不同,Adam根據(jù)計(jì)算梯度的一階矩估計(jì)和二階矩估計(jì),為不同參數(shù)自適應(yīng)地選擇不同學(xué)習(xí)率,適用于處理稀疏梯度和非平穩(wěn)目標(biāo)。Adam梯度優(yōu)化算法的參數(shù)設(shè)置為:lr=0.001,β1=0.9,β2=0.999,ε=10-8。
經(jīng)錨點(diǎn)機(jī)制篩選后的車牌號(hào)圖像輸入訓(xùn)練完成的美式車牌識(shí)別網(wǎng)絡(luò)模型中,可獲得車牌號(hào)信息,剩余的經(jīng)美式車牌檢測(cè)技術(shù)分割后的目標(biāo)圖像依次輸入車牌識(shí)別網(wǎng)絡(luò)模型,得到每張目標(biāo)圖像的文本信息,計(jì)算除車牌號(hào)圖像以外的BOX中的文本和50個(gè)州的編輯距離,匹配距離最小的州即為州名,至此完成對(duì)美式車牌的車牌號(hào)和州名信息提取。
本文的實(shí)驗(yàn)環(huán)境設(shè)置為:操作系統(tǒng)為Ubuntu16.04,顯卡型號(hào)為NVIDIA GeForce GTX950,使用PyTorch深度學(xué)習(xí)框架和Python3程序語言。由于缺少美式車牌公共數(shù)據(jù)集,本文自己構(gòu)建美式車牌數(shù)據(jù)集。實(shí)驗(yàn)數(shù)據(jù)集均為美式車牌圖像,包含各種自然場(chǎng)景下的圖像,如陰影、模糊、污漬、遮擋等,通過對(duì)數(shù)據(jù)集圖像進(jìn)行顏色變換,包括圖像亮度、對(duì)比度、飽和度,以及添加噪聲、旋轉(zhuǎn)、縮放等處理后,生成訓(xùn)練集4 500張,測(cè)試集2 000張。本文使用LabelImg標(biāo)注軟件對(duì)圖像進(jìn)行標(biāo)注,標(biāo)注內(nèi)容包括目標(biāo)圖像的4個(gè)端點(diǎn)坐標(biāo)以及文本框內(nèi)的文本信息,將目標(biāo)圖像序號(hào)、端點(diǎn)坐標(biāo)、文本信息存入txt文件,生成訓(xùn)練集和測(cè)試集,訓(xùn)練集和測(cè)試集均包括車牌圖像及txt文件。
本文提出的文本檢測(cè)方法與CTPN方法的檢測(cè)效果對(duì)比如圖8所示。其中8(a)為原始車牌圖像,8(b)是采用CTPN的檢測(cè)結(jié)果,8(c)是本文提出的美式車牌檢測(cè)技術(shù)的檢測(cè)結(jié)果??梢钥闯?本文提出美式車牌檢測(cè)技術(shù)的準(zhǔn)確度更高,能正確框選出復(fù)雜背景下的車牌文本。
本文提出的美式車牌檢測(cè)技術(shù)有著多方面的優(yōu)勢(shì), 模型對(duì)比如表1所示??梢钥闯? 本文提出的美式車牌檢測(cè)技術(shù)的網(wǎng)絡(luò)模型更小, 訓(xùn)練時(shí)間明顯縮短,整個(gè)網(wǎng)絡(luò)對(duì)美式車牌的識(shí)別時(shí)間也大幅縮短,對(duì)車牌圖像的識(shí)別率也更高。圖9為美式車牌文本檢測(cè)的示例, 對(duì)應(yīng)識(shí)別結(jié)果如表2所示。
表1 車牌檢測(cè)網(wǎng)絡(luò)模型對(duì)比Table 1 Comparison of license plate detection models
圖9 文本檢測(cè)示例Fig.9 Example of text detection
表2 示例識(shí)別結(jié)果Table 2 The recognized result of the example
1) 本文提出SE-MobileNetV2快速特征提取模型,提升了美式車牌檢測(cè)的速度及精度。使用Adam梯度優(yōu)化算法訓(xùn)練識(shí)別神經(jīng)網(wǎng)絡(luò),提高了美式車牌識(shí)別的準(zhǔn)確度。經(jīng)錨點(diǎn)機(jī)制篩選后的車牌號(hào)文本框輸入訓(xùn)練完成的美式車牌識(shí)別網(wǎng)絡(luò)模型中,可獲得車牌號(hào)信息。
2)本文美式車牌數(shù)據(jù)源實(shí)驗(yàn)顯示,所提方法具有準(zhǔn)確率高,速度快,實(shí)時(shí)性強(qiáng),更易于嵌入到小型設(shè)備中使用。本文提出的方法同樣適用于其他場(chǎng)景下的橫向文本識(shí)別,后續(xù)可進(jìn)一步探究。