林立雄, 何洪欽, 陳彥杰, 鄭佳春, 彭俠夫
(1.集美大學 海洋信息工程學院, 福建 廈門 361021; 2.福州大學 機械工程及自動化學院, 福建 福州 350000; 3.廈門大學 航空航天學院, 福建 廈門 361000)
全球車輛數逐年增長,對交通管理的壓力也越來越大。智能交通集成了通訊、電子、控制、信息等技術,在很大程度上能降低交通管理壓力。車牌識別是智能交通的重要組成部分。傳統的車牌識別包括字符分割和字符識別2個部分,其中字符分割方法包括:輪廓提取[1],垂直投影[2],灰度統計[3]和模板匹配[4]等;字符識別方法包括:邊界特征[5],HOG特征[6],模板匹配[7],支持向量機[8]和模板匹配結合神經網絡等[9]。得益于更強大的計算機、更大的數據集和能夠訓練更深網絡的技術,基于深度學習的文本識別技術有了極大的發展。文本識別包括文本檢測和識別2個部分。其中文本檢測又可以分為2大類:基于回歸的文本檢測和基于分割的文本檢測。基于回歸的方法將文字當作一個目標進行檢測,其中TIAN等[10]提出的文本建議網絡(connectionist text proposal network,CTPN)是目前流傳最廣、影響最大的開源文本檢測模型,可以檢測水平或微斜的文本行。采用BLSTM模塊提取字符所在圖像上下文特征,以提高文本塊識別精度。Shi等[11]提出的SegLink則是將單詞切割為更易檢測的小文字塊,再預測鄰近連接將小文字塊連成詞。缺點是不能檢測間隔很大的文本行,不能檢測形變或者彎曲文本。Liu等[12]提出通過將點式預測分解為無序的關鍵邊,解決了標簽不一致的問題。并為了解碼準確的頂點位置,提出了一種簡單而有效的匹配程序來重構四邊形邊界框。但該方法只能檢測旋轉矩形,不能檢測多邊形以及任意形狀的文本。Zhou等[13]提出了基于two-stage的文本檢測方法:只包含全卷積網絡和非極大值抑制2個階段,消除中間過程冗余,減少檢測時間.可以檢測各個方向的文本。由于受到感受野的限制,在檢測長文本的時候表現一般。Wang等[14]提出了自適應文本區域表示,根據文本框的形狀使用網絡去學習應該使用多少個點來表示文本框,可以適應各種形狀的文本框。基于分割的方法先判斷局部像素是否為文本,再通過后處理得到文本框,其中Wang等[15]提出的PSENe采用了前向漸進式尺度擴展的方法用來區分鄰近的文本實例,可用于檢測任意方向的文本。缺點是檢測速度較慢。Wang等[16]后又進行改進,提升了運行速度。Beak等[17]提出的CRAFT通過先檢測單個字符及字符間的連接關系,然后根據字符間的連接關系確定最終的文本行。只需要很小的感受野就可以處理長彎曲文本。但該方法對粘連字符的檢測效果不好。Liao等[18]提出了DBNet通過對每一個像素點進行自適應二值化,二值化閾值由網絡學習得到,徹底將二值化這一步驟加入到網絡里一起訓練,這樣最終的輸出圖對于閾值就會非常魯棒,能夠實現任意方向的文本。同樣,文本識別方法也分為對單字符的識別和對文本行的識別2大類。隨著深度學習的發展,接連涌現的如VggNet[19],ResNet[20],InceptionNet[21],DenseNet[22]等網絡模型,在單字符識別中準確率不斷提高。而目前更主流的方法是直接對文本行進行識別。對于文字行的識別,近幾年效果比較出色的方法主要有基于卷積遞歸神經網絡(convolutional recurrent neural network,CRNN)和具有自動校正功能的魯棒文本識別模型(robust text recognizer with automatic rectification,RARE)。Shi等[23]提出的CRNN是目前較為流行的圖文識別模型,可識別較長的文本序列,且占用的存儲空間小。它包含CNN特征提取層和雙向長短期記憶網絡(bi-directional long short-term memory,BLSTM)序列特征提取層,能夠進行端到端的聯合訓練。它利用BLSTM和端到端的RNN訓練方法(connectionist temporal classification,CTC)部件學習字符圖像中的上下文關系,從而有效提升文本識別準確率,使得模型更加魯棒。Shi等[24]提出的RARE模型在識別變形的圖像文本時效果很好。模型預測過程中,輸入圖像首先要被送到一個空間變換網絡中做處理,矯正過的圖像然后被送入序列識別網絡中得到文本預測結果。能夠比較準確地識別透視變換過的文本、以及彎曲的文本。
由于美式車牌背景圖案多變、文本信息復雜,使用傳統的車牌識別方法效果不佳。本文將CTPN用于美式車牌文本檢測,針對CTPN速度慢、精確度低的問題,對MobileNetV2[25]和SENet[26]2個網絡模型進行研究,提出了SE-MobileNetV2快速特征提取模型,提高網絡推理速度。設計了一套錨點機制,以應對美式車牌文本信息復雜,檢測時存在多個文本框干擾的情況。將CRNN模型用于車牌號及州名識別,并采用Adam優化算法,提高美式車牌識別的準確度。
為了驗證本文方法的有效性,本文以各種自然場景下的美式車牌為數據源,構建了6 500張美式車牌數據集。通過檢測與識別實驗證明本文的方法具有準確率高,速度快的優點。
本文提出的基于深度學習的美式車牌檢測和識別技術包括2個方面,一個是基于CTPN的美式車牌檢測技術,另一個是CRNN的車牌識別技術,如圖1所示。將經過預處理的美式車牌圖像輸入到美式車牌檢測算法中,提取文本;接著將提取的文本輸入到美式車牌識別算法中進行識別,輸出識別結果。

圖1 CTPN+CRNN美式車牌識別算法框架Fig.1 Algorithm framework of American license plate recognition based on CTPN+CRNN
美式車牌檢測技術目的在于對車牌圖像中的文本信息進行檢測,從原始的復雜背景圖案中篩選出文本圖案,得到車牌號和州名的候選區域,為下一步文本識別做準備。由于美式車牌的背景圖案極為復雜多變,且沒有統一的圖案樣式,若采用傳統的圖像預處理方法,包括灰度圖轉換、中值濾波、邊緣檢測、二值化等操作,對于顏色單一的標準車牌可以定位到文本信息,但大部分的美式車牌均無法檢測。針對以上問題,本文通過構造基于卷積神經網絡和循環神經網絡的文本檢測模塊,從輸入的美式車牌圖像中得到連續文本行,即預測的文本圖像,完成對文本圖像的框選。為提高文本檢測的效率,本文對CTPN進行改進,提出了SE-MobileNetV2快速特征提取模型,提高美式車牌檢測的速度和精度。
1.1.1 基于SE-MobileNetV2的快速特征提取
美式車牌圖像輸入神經網絡前,首先需要進行圖像預處理,預處理主要包括對圖像進行顏色通道變換和歸一化處理。顏色變換包括圖像亮度、對比度、飽和度,取值分別為0.4,0.4,0.4,歸一化參數為平均值MEAN和標準差STD分別為:
MEAN=(0.485, 0.456, 0.406)
(1)
STD=(0.229, 0.224, 0.225)
(2)
現有的CTPN模型通常應用于自然圖像中的文本檢測,沒有應用到美式車牌識別中,在實際場景中對車牌進行檢測,提高算法精度至關重要。本文提出的美式車牌文本檢測結構如圖2所示,使用MobileNetV2作為檢測網絡的編碼層,通過深度可分離卷積代替原有的傳統卷積。
如圖3所示深度可分離卷積不同于常規卷積,它將卷積分為一次深度卷積和一次點卷積。假定輸入圖像大小為Hinl×Winl×3,卷積核大小為3×3×3,輸出特征矩陣大小為Hout1×Wout1×4。若采用普通卷積,其所需要計算的參數數量P1=3×3×3×4=108。若采用深度可分離卷積,其所需要計算的參數數量P2=3×3×3+1×3×4=39。通過對比普通卷積和深度可分離卷積的參數數量,本文使用3×3的深度可分離卷積,相比于傳統卷積計算量更小,大大提高運行速度。

圖3 深度可分離卷積Fig.3 Depthwise separable convolution
為進一步提高網絡性能,本文引入了SENet模塊。SENet可以在特征提取階段,考慮每個通道的重要性,能夠優化網絡的學習能力,提升網絡準確率。本文在MobileNetV2特征提取層的每一個block下均添加了一個SENet模塊,如圖4所示。

圖4 SE-MobileNetV2框架Fig.4 SE-MobileNetV2 block
SENet模塊包括壓縮和激勵2部分[26],如圖5所示。壓縮部分將特征圖的維度從H×W×C的壓縮到1×1×C,使得感受區域更廣。激勵部分在得到特征圖1×1×C的表示后,加入一個FC全連接層,對每個通道的重要性進行預測,再將結果激勵作用到之前的特征圖對應通道上。

圖5 SEnet網絡結構Fig.5 A SENet block
1.1.2 基于錨點機制的文本檢測
車牌圖像通過MobileNetV2編碼后,得到最小分辨率特征圖,本文使用大小為3×3的滑動卷積處理該層特征圖,每個滑動位置產生k個錨,輸出4k個坐標和用于估計文本/非文本的2k個分數,每次滑動卷積的結果輸入循環神經網絡RNN中。RNN將文本圖案中的文本框視為序列進行處理,得到每個文本框序列信息。RNN為256維(256D)的雙向LSTM網絡(BLSTM),包括2個128D的LSTM網絡,特征輸入BLSTM網絡后,最后一層是通道數為512的全連接層。美式車牌的中間區域經常存在干擾項,如圖2中的D、V以及DISABLED VETERAN并不屬于車牌號內容。為此,本文針對美式車牌設計了一套錨點機制,以實現對車牌中車牌號的篩選。
錨點機制中,如圖6所示,每個文本檢測候選框x軸方向長度固定,本文取值為16,y軸方向長度變換。設計k個錨點,則y軸方向長度變換表示為:

圖6 文本檢測候選框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值的變換對每個文本框序列進行文本框匹配,依次形成多個文本框。本文中c取值為11。
每個文本框Bk包含有4個頂點坐標和其序列信息:
BOXk=[xi,yi,k], (k∈N,i∈1,2,3,4)
(4)
錨點機制首先比較相鄰文本框之間的距離b=xik-xik-1,從x軸方向判斷相鄰文本框是否屬于同一組文本框,若b<50,則認為屬于同一組文本框;在y軸方向,將第1個文本框的高度設為初始值,對該文本框進行匹配,得到α的值及高度hk=y2k-y1k,若后續檢測的文本框高度在(0.9hk,1.1hk)范圍內,則認為屬于同一組文本框。通過x和y軸方向的同時定位,將同一類的多個文本框合并成一組文本框,得到多組僅包含文本信息的文本框。

利用美式車牌檢測技術可以從復雜的車牌圖案中得到分割后的車牌號文本框和多組帶有其他文本信息的文本框,下一步對這些目標圖像進行字符識別,完成對車牌號、州名的識別,輸出車牌號和州名。采用CRNN模型進行字符識別,該模型是基于美式車牌對CRNN模型的改進,有助于提高美式車牌識別的準確度。
字符的車牌識別算法結構見圖7,經篩選處理后的目標圖像首先按固定長寬比縮放到32×W×3,隨后輸入CNN模型網絡,提取圖像特征。

圖7 字符識別結構Fig.7 Character recognition structure
將從圖像中提取到的特征輸入BLSTM網絡,BLSTM網絡的輸入必須為單行序列,因此CNN模型網絡輸出的特征矩陣不能直接輸入BLSTM網絡中,需要使用一次卷積操作將特征矩陣大小轉換為1×W/4×512。特征矩陣的每一列作為一個時間序列輸入BLSTM,得到關于每列數據的后驗概率矩陣,每個時間序列片段定義為:
f=(f1,f2,…,fW/4)
(5)

g=[g1g2…gW/4]
(6)

車牌圖案包括26個英文字母和數字字符L={A,B,…,Z,0,1,…,9},由于字符間還存在空白字符,L′=L∪{blank}。對于給定的輸入gt,需要構造損失函數進行梯度下降算法,使模型趨于收斂,損失函數即后驗概率:p(l|g),l(l∈L′)為訓練樣本的標簽真實值。
模型訓練過程是一個使得輸出為l的概率最大化過程,即:l*=arglmaxp(l|g)。
對于輸入后驗概率矩陣g,矩陣g中存在多種元素的組合得到不同的輸出l,如何快速使得輸入與輸出對齊,找到近似輸出為l*的組合。通常使用最小化負對數求解最大后驗概率分布,因此目標函數可以寫成F=-∑logp(l|g)。
CRNN算法使用反向傳播算法進行隨機梯度下降(stochastic gradient desent, SGD)訓練,利用AdaDelta優化器自動更新學習率。SGD算法每次迭代從訓練集中隨機抽取小批量樣本,計算梯度和誤差并更新參數。SGD優化算法的缺點在于,其梯度更新的方向完全依賴于當前樣本,并不是朝著整體最優方向,有可能陷入局部最優。同時由于是隨機抽取樣本,每次計算的梯度誤差和噪聲大,需要選擇合適的學習率并逐漸衰減學習率以保證SGD的收斂性。在實際的美式車牌數據的訓練中也發現當模型訓練到一定次數后,模型損失較大且無法下降,使用該模型得到的字符識別效果偏差,無法滿足使用要求。對此,本文選擇使用Adam梯度優化算法,與SGD每次迭代對所有參數使用相同的學習率不同,Adam根據計算梯度的一階矩估計和二階矩估計,為不同參數自適應地選擇不同學習率,適用于處理稀疏梯度和非平穩目標。Adam梯度優化算法的參數設置為:lr=0.001,β1=0.9,β2=0.999,ε=10-8。
經錨點機制篩選后的車牌號圖像輸入訓練完成的美式車牌識別網絡模型中,可獲得車牌號信息,剩余的經美式車牌檢測技術分割后的目標圖像依次輸入車牌識別網絡模型,得到每張目標圖像的文本信息,計算除車牌號圖像以外的BOX中的文本和50個州的編輯距離,匹配距離最小的州即為州名,至此完成對美式車牌的車牌號和州名信息提取。
本文的實驗環境設置為:操作系統為Ubuntu16.04,顯卡型號為NVIDIA GeForce GTX950,使用PyTorch深度學習框架和Python3程序語言。由于缺少美式車牌公共數據集,本文自己構建美式車牌數據集。實驗數據集均為美式車牌圖像,包含各種自然場景下的圖像,如陰影、模糊、污漬、遮擋等,通過對數據集圖像進行顏色變換,包括圖像亮度、對比度、飽和度,以及添加噪聲、旋轉、縮放等處理后,生成訓練集4 500張,測試集2 000張。本文使用LabelImg標注軟件對圖像進行標注,標注內容包括目標圖像的4個端點坐標以及文本框內的文本信息,將目標圖像序號、端點坐標、文本信息存入txt文件,生成訓練集和測試集,訓練集和測試集均包括車牌圖像及txt文件。
本文提出的文本檢測方法與CTPN方法的檢測效果對比如圖8所示。其中8(a)為原始車牌圖像,8(b)是采用CTPN的檢測結果,8(c)是本文提出的美式車牌檢測技術的檢測結果。可以看出,本文提出美式車牌檢測技術的準確度更高,能正確框選出復雜背景下的車牌文本。
本文提出的美式車牌檢測技術有著多方面的優勢, 模型對比如表1所示。可以看出, 本文提出的美式車牌檢測技術的網絡模型更小, 訓練時間明顯縮短,整個網絡對美式車牌的識別時間也大幅縮短,對車牌圖像的識別率也更高。圖9為美式車牌文本檢測的示例, 對應識別結果如表2所示。

表1 車牌檢測網絡模型對比Table 1 Comparison of license plate detection models

圖9 文本檢測示例Fig.9 Example of text detection

表2 示例識別結果Table 2 The recognized result of the example
1) 本文提出SE-MobileNetV2快速特征提取模型,提升了美式車牌檢測的速度及精度。使用Adam梯度優化算法訓練識別神經網絡,提高了美式車牌識別的準確度。經錨點機制篩選后的車牌號文本框輸入訓練完成的美式車牌識別網絡模型中,可獲得車牌號信息。
2)本文美式車牌數據源實驗顯示,所提方法具有準確率高,速度快,實時性強,更易于嵌入到小型設備中使用。本文提出的方法同樣適用于其他場景下的橫向文本識別,后續可進一步探究。