華春夢 臧艷輝 馬伙財
摘? 要:近些年來,深度學(xué)習(xí)已逐漸替代機器學(xué)習(xí)而走進大眾的生活當(dāng)中,尤其是機器視覺,在拍照識圖、光學(xué)字符識別(OCR)、自動駕駛等領(lǐng)域發(fā)揮著重要作用。文章針對智能交通中的車牌識別,提出一種基于CRNN的文本序列模型。該模型實現(xiàn)了端到端、免分割的車牌文字識別方法,充分體現(xiàn)了卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)勢,在很多場景下都表現(xiàn)出較好的性能。經(jīng)多次測試統(tǒng)計,該模型的識別準(zhǔn)確率高達(dá)98.5%,平均響應(yīng)時間為100 ms,測試效果良好。
關(guān)鍵詞:車牌識別;端到端;CRNN;OCR;神經(jīng)網(wǎng)絡(luò)
中圖分類號:TP391? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識碼:A 文章編號:2096-4706(2021)20-0078-05
Research and Application of a License Plate Recognition Algorithm Based on CRNN
HUA Chunmeng, ZANG Yanhui, MA Huocai
(Foshan Polytechnic, Foshan? 528137, China)
Abstract: In recent years, deep learning has gradually replaced machine learning and entered the public life, especially machine vision, which plays an important role in the fields of photo recognition, optical character recognition (OCR), automatic driving and so on. Aiming at the license plate recognition(LPR)in intelligent transportation, this paper proposes a text sequence model based on CRNN. The model realizes the end-to-end and segmentation free license plate character recognition method, fully reflects the advantages of convolutional neural network, and shows good performance in many scenes. After many tests and statistics, the recognition accuracy of the model is as high as 98.5%, the average response time is 100 ms, and the test effect is good.
Keywords: license plate recognition; end-to-end; CRNN; OCR; neural network
0? 引? 言
隨著我國經(jīng)濟的穩(wěn)步增長,機動車出行已經(jīng)成為人們最主要的出行方式之一。據(jù)不完全統(tǒng)計,我國2020年的機動車保有量達(dá)3.72億輛,其中小型汽車達(dá)2.81億輛,如何高效有序地對機動車進行智能化管理,是對當(dāng)下智能交通提出的一個硬性要求[1]。車牌號作為機動車唯一的身份標(biāo)識,常用作停車場出入口自動收費和駕駛違規(guī)追責(zé)的主要依據(jù),所以針對車牌識別技術(shù)(License Plate Recognition, LPR),從傳統(tǒng)的機器學(xué)習(xí)到當(dāng)下的深度學(xué)習(xí)都在不斷地進行著算法的更新與迭代。
1? 相關(guān)研究內(nèi)容
車牌識別系統(tǒng)是一個綜合且復(fù)雜的系統(tǒng),即是基于計算機技術(shù)、圖像處理技術(shù)建立車輛的特征模型,用以識別車輛的特征(如號牌、車型、顏色等)[2-4]。一個良好的車牌識別系統(tǒng)通常包含兩個部分。
1.1? 車牌檢測
車牌檢測的主要目的是從復(fù)雜的環(huán)境中檢測出車牌的有效區(qū)域。Kanayama等發(fā)現(xiàn)車牌與背景環(huán)境存在色差,通過Sobel算子進行車牌邊緣檢測[5],Lee[6]同樣以車牌的顏色作為特征,使用HLS進行車牌的定位和檢測。進入21世紀(jì)后,計算機算力實現(xiàn)了巨大的飛躍,深度神經(jīng)網(wǎng)絡(luò)和計算機視覺開始廣泛應(yīng)用于車牌檢測之中,其中比較成功的是基于卷積神經(jīng)網(wǎng)絡(luò)的Yolo算法和級聯(lián)算法。
1.2? 車牌字符識別
車牌字符識別技術(shù)的發(fā)展經(jīng)歷了多個階段,最初是通過字符分割和特征模板匹配的方法將車牌的字符逐個分割,再將分割的字符送入模版匹配器,通過最大似然概率進行預(yù)測。隨后深度學(xué)習(xí)中的OCR技術(shù)和場景文字識別技術(shù)(Scene Text Recognition, STR)也應(yīng)用到車牌字符識別中,Laraca等[7]利用CNN對字符進行分割,建立了車牌數(shù)據(jù)集并開源。然而基于字符分割的方法始終無法做到多場景下的完美分割,Zherzdev等[8]基于卷積神經(jīng)網(wǎng)絡(luò),提出了端到端(end to end, E2E)的車牌識別網(wǎng)絡(luò)LPRNet,其無需對字符進行分割即可實現(xiàn)Seq2Seq的輸出,且識別準(zhǔn)確率高達(dá)95%。
綜上,本文選取循環(huán)卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Recurrent Neural Network, CRNN)作為識別模型(主要由CNN、RNN、CTC構(gòu)成),該模型能夠識別不定長的文本序列。在具體的應(yīng)用階段,CNN用于完成文本圖像的特征提取,RNN依靠Bi-LSTM融合特征向量,再提取文字序列特征,最后由轉(zhuǎn)錄層CTC輸出序列的概率分布,借此來預(yù)測最優(yōu)的文本序列值。
2? 算法模型
整個車牌識別流程如圖1所示,主要分為RetinaNet網(wǎng)絡(luò)和CRNN網(wǎng)絡(luò)。先由RetinaNet網(wǎng)絡(luò)檢測出車牌的有效區(qū)域,然后再將檢測出的區(qū)域送入CRNN網(wǎng)絡(luò)進行車牌字符的識別,最終輸出預(yù)測結(jié)果。
2.1? RetinaNet車牌檢測網(wǎng)絡(luò)
RetinaNet是在經(jīng)典的圖像特征提取網(wǎng)絡(luò)ResNet[9-12]的基礎(chǔ)上進行了改進,引入特征金字塔網(wǎng)絡(luò)(Feature Pyramid Network, FPN)[13-16],主要用于解決目標(biāo)檢測在多尺度空間變化方面的不足,同時引入Focal loss損失函數(shù),解決正負(fù)樣本不均衡的問題,RetinaNet在檢測精度上優(yōu)于Faster-RCNN和R-FCN等兩階段網(wǎng)絡(luò)。網(wǎng)絡(luò)的訓(xùn)練集采用開源的CCPD,圖2展示了其對車牌區(qū)域的檢測效果。
2.2? CRNN車牌字符識別網(wǎng)絡(luò)
經(jīng)過RetinaNet網(wǎng)絡(luò)目標(biāo)檢測后,接下來就是將所得到的車牌有效區(qū)域級聯(lián)到字符識別網(wǎng)絡(luò),進行識別并輸出結(jié)果,這一步驟的核心是構(gòu)造端到端、免分割的神經(jīng)網(wǎng)絡(luò),本文選用OCR和STR經(jīng)常用到的CRNN網(wǎng)絡(luò)模型來預(yù)測車牌號碼的輸出。圖3為CRNN網(wǎng)絡(luò)的結(jié)構(gòu)示意圖。
對于用戶輸入的圖像,CRNN網(wǎng)絡(luò)首先通過卷積神經(jīng)網(wǎng)絡(luò)得到圖像的特征矩陣,然后將圖像的特征序列送入循環(huán)神經(jīng)網(wǎng)絡(luò)進行預(yù)測,循環(huán)層采用雙向LSTM進行特征融合,最后經(jīng)過轉(zhuǎn)錄層的融合、去重等環(huán)節(jié)輸出預(yù)測的結(jié)果。
2.2.1? CNN卷積層
卷積神經(jīng)網(wǎng)絡(luò)具有共享權(quán)值和局部相關(guān)性的特點,可以大大減少網(wǎng)絡(luò)的參數(shù)量,較容易實現(xiàn)更深的網(wǎng)絡(luò)層次結(jié)構(gòu),因此常用作提取圖像的特征序列。在做圖像卷積的時候,一般要選取三個參數(shù):
(1)kernel_size卷積核。卷積核是行、列為k大小的權(quán)值矩陣W,對應(yīng)特征圖上大小為k的窗口即為感受野,感受野與權(quán)值矩陣W相乘累加,得到此位置的輸出值。
(2)stride滑動步長。每次卷積運算所平移的步長。
(3)padding填充值。由于原圖像經(jīng)過卷積后,所輸出的Feature map會變小,而且輸入圖像的像素經(jīng)過的計算次數(shù)也是不一樣的,會導(dǎo)致圖像角落信息的丟失,因此要對輸入圖像進行像素填充的操作。
本實驗所采取的卷積核大小分別為[3,3,3,3,3,3,2],滑動步長為[1,1,1,1,1,1,0],填充均為1,卷積核數(shù)量分別為[64,128,256,256,512,512,512]。
2.2.2? 池化層和激活函數(shù)
池化層通常作為卷積層的下一層,執(zhí)行降采樣(Down-sampling)操作,因為卷積層在多個卷積核的作用下,最終輸出的特征維度較高,所以最大池化層可以視為一個很強的先驗知識,使特征學(xué)習(xí)負(fù)有一定的注意力,忽略微小的特征位移,同時減少了下一層的輸入大小,減少計算量。
激活函數(shù)(activation function)層又稱為非線性映射層,可以提高網(wǎng)絡(luò)模型的非線性表達(dá)能力和魯棒性。常見的激活函數(shù)有tanh、sigmoid、relu等,其函數(shù)及梯度如圖4所示。
由圖4可以看出,Relu激活函數(shù)運算簡單,收斂速度快,可在一定程度上加快神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速度,同時它也提供了神經(jīng)網(wǎng)絡(luò)的稀疏表達(dá)能力,能夠克服梯度消失的問題[10],故本文采用Relu作為卷積神經(jīng)網(wǎng)絡(luò)的激活層。
2.2.3? LSTM循環(huán)神經(jīng)網(wǎng)絡(luò)
長短期記憶網(wǎng)絡(luò)(Long short-term memory, LSTM)是一種特殊的RNN網(wǎng)絡(luò),主要用于解決長序列訓(xùn)練過程中梯度消失和梯度爆炸的問題,簡單來說,相比普通的RNN網(wǎng)絡(luò)結(jié)構(gòu),LSTM可以處理更長的序列,因為RNN網(wǎng)絡(luò)只傳遞一個隱藏狀態(tài)(hiddlestate, ht),而LSTM則有兩個狀態(tài)傳輸,一個是細(xì)胞狀態(tài)(cell state, ct),另一個是隱藏狀態(tài)ht。其中,ct是上一個細(xì)胞狀態(tài)ct-1加上其他單元值,這里就用到了LSTM的三個圍繞細(xì)胞單元(Cell)的門操作(遺忘門,記憶門和輸出門),這三個邏輯門的策略選擇決定了最終Cell的輸出部分。RNN網(wǎng)絡(luò)和LSTM網(wǎng)絡(luò)的結(jié)構(gòu)示意圖如圖5所示。
2.2.4? CTC Loss
神經(jīng)網(wǎng)絡(luò)的訓(xùn)練一般都是通過最小化損失函數(shù)來做梯度更新的。對于Bi-LSTM輸出的Seq2Seq序列,我們優(yōu)先選擇免分割的字符識別,由于輸出的序列字符間距不同,對齊是非常困難的,因此本文選擇了避開輸入和輸出手動對齊的CTC(Connectionist Temporal Classification)作為損失函數(shù)[17-19],通過式(1)來計算文本的概率密度分布。
3? 實驗及結(jié)果
3.1? 訓(xùn)練集
我們采用人工合成的方法來生成車牌數(shù)據(jù)。其中,中小型車車牌60 000張,大型車車牌20 000張,新能源車牌20 000張,用10萬張不同車型的車牌圖片作為網(wǎng)絡(luò)訓(xùn)練的輸入,訓(xùn)練集的標(biāo)簽即為文件名,文件名對應(yīng)著正確的車牌信息。在樣本生成階段,我們進行了數(shù)據(jù)的增強,加入了隨機污漬、高斯噪聲、HSV變化以及透視視角變換等因素,用這些干擾因素來模擬現(xiàn)實中的各種復(fù)雜情況,以增強網(wǎng)絡(luò)的學(xué)習(xí)能力,保證模型的健壯性和泛化性。人工合成的車牌識別訓(xùn)練集樣本如圖6所示。
3.2? 實驗環(huán)境
車牌字符識別的實驗環(huán)境如表1所示。
3.3? 網(wǎng)絡(luò)訓(xùn)練及識別結(jié)果
本模型的訓(xùn)練,采用ADAM優(yōu)化器來加速學(xué)習(xí),按8:2的比例將10萬張數(shù)據(jù)集劃分為訓(xùn)練集和測試集,batch_size為32,初始學(xué)習(xí)率為1e-3,衰減因子為0.1,每進行80次迭代后調(diào)整一次學(xué)習(xí)率,共進行1 000次迭代實驗。在實驗前,對數(shù)據(jù)集進行規(guī)一化操作,將尺寸重新調(diào)整為w=160,h=32,最終得到的損失函數(shù)和準(zhǔn)確度如圖7所示,從圖中可以看出衰減損失收斂速度較快,模型的測試準(zhǔn)確率也在快速提升,最終穩(wěn)定在98%左右。
經(jīng)測試,本模型在各種復(fù)雜情況下的車牌識別中均取得了理想的效果,識別結(jié)果如圖8所示。從圖8中可以看出綜合正確率在97%左右,但由于樣本中“0”和“O”較為相似,且二者在訓(xùn)練樣本中同時出現(xiàn)的頻次不足,以致在識別新能源車輛“粵B D0194O”時,其結(jié)果的置信度只有83.4%。
3.4? 系統(tǒng)的總體表現(xiàn)
本實驗首先通過RetinaNet網(wǎng)絡(luò)識別車牌的區(qū)域,然后將此車牌的文字區(qū)域送入CRNN網(wǎng)絡(luò),做免分割的端到端識別,克服了傳統(tǒng)字符分割上的困難,同時在數(shù)據(jù)集的生成上引入仿射變換、隨機噪聲等干擾因素,最終實驗準(zhǔn)確率達(dá)98%左右,響應(yīng)時間為100 ms左右,效果良好,達(dá)到了預(yù)期目標(biāo)。
4? 結(jié)? 論
本文基于CRNN字符識別網(wǎng)絡(luò)和RetinaNet目標(biāo)檢測網(wǎng)絡(luò)對車牌進行識別,通過二者的級聯(lián),克服了傳統(tǒng)字符識別在分割中所遇到的困難,實現(xiàn)了端到端的車牌字符識別系統(tǒng)。特別是在訓(xùn)練集的實現(xiàn)上,采用了數(shù)據(jù)增強等方法,引入仿射變換、隨機噪聲等干擾因素,使網(wǎng)絡(luò)模型的學(xué)習(xí)能力得到提升,保證了識別系統(tǒng)的穩(wěn)定性,最終實驗結(jié)果的準(zhǔn)確率達(dá)到了97%,識別的響應(yīng)時間平均為100 ms,結(jié)果表明所設(shè)計的方案具有較高的應(yīng)用價值。未來將從以下兩個方面進行拓展:(1)“雙行車牌”的識別;(2)將車牌識別橫展至電動自行車等其他領(lǐng)域。
參考文獻(xiàn):
[1] 吳宏偉.基于深度學(xué)習(xí)的車牌檢測識別系統(tǒng)研究 [D].大連:大連理工大學(xué),2021.
[2] 羅雅麗.車牌識別中人工智能技術(shù)的應(yīng)用 [J].電腦編程技巧與維護,2021(7):125-127.
[3] 高昕葳.基于深度學(xué)習(xí)的汽車車牌識別算法研究 [J].機電工程技術(shù),2021,50(10):164-166.
[4] 史敏紅,李樹文,楊志.基于卷積神經(jīng)網(wǎng)絡(luò)的智能車牌識別研究 [J].電視技術(shù),2021,45(9):89-91+99.
[5] 張彩珍,李穎,康斌龍,等.基于深度學(xué)習(xí)的模糊車牌字符識別算法 [J].激光與光電子學(xué)進展,2021,58(16):259-266.
[6] LEE E R,KIM P K,KIM H J. Automatic recognition of a car license plate using color image processing [C]//Proceedings of 1st international conference on image processing.Austin:IEEE,1994:301-305.
[7] LAROCA R,SEVERO E,ZANLORENSI L A,et al. A Robust Real-Time Automatic License Plate Recognition Based on the YOLO Detector [C]// 18 International Joint Conference on Neural Networks (IJCNN).Rio de Janeiro:IEEE,2018:1-10.
[8] CHENG C W,MEI L Y,ZHANG J H. License Plate Recognition via Deep Convolutional Neural Network [J].IOP Conference Series:Earth and Environmental Science,2018:189(6):062030.
[9] HE K M,ZHANG X Y,REN S Q,et al. Deep residual learning for image recognition [C]//2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR).Las Vegas:IEEE,2016:770-778.
[10] 張炳力,秦浩然,江尚,等.基于RetinaNet及優(yōu)化損失函數(shù)的夜間車輛檢測方法 [J].汽車工程,2021,43(8):1195-1202.
[11] 牛作東,覃濤,李捍東,等.改進RetinaFace的自然場景口罩佩戴檢測算法 [J].計算機工程與應(yīng)用,2020,56(12):1-7.
[12] 羅月童,江佩峰,段昶,等.面向小目標(biāo)檢測的改進RetinaNet模型及其應(yīng)用 [J].計算機科學(xué),2021,48(10):233-238.
[13] 張福玲,張少敏,支力佳,等.融合注意力機制和特征金字塔網(wǎng)絡(luò)的CT圖像肺結(jié)節(jié)檢測 [J].中國圖象圖形學(xué)報,2021,26(9):2156-2170.
[14] 孟月波,金丹,劉光輝,等.共享核空洞卷積與注意力引導(dǎo)FPN文本檢測 [J].光學(xué)精密工程,2021,29(8):1955-1967.
[15] 姚銘,鄧紅衛(wèi),付文麗,等.一種改進的Mask R-CNN的圖像實例分割算法 [J].軟件,2021,42(9):78-82.
[16] 汪朝暉,于姍姍,孔娟娟,等.基于CRNN網(wǎng)絡(luò)的公交電子站牌屏顯識別及糾正 [J].信息技術(shù)與信息化,2021(7):164-169.
[17] 占鴻漸.基于深度學(xué)習(xí)的字符串識別研究 [D].上海:華東師范大學(xué),2021.
[18] 劉曉峰,宋文愛,陳小東,等.基于多核卷積融合網(wǎng)絡(luò)的BLSTM-CTC語音識別 [J].計算機應(yīng)用與軟件,2021,38(11):167-173.
[19] 胡黎,黃洪全,梁超,等.基于雙通路CNN的端到端語音識別研究 [J].傳感器與微系統(tǒng),2021,40(11):69-72+83.
作者簡介:華春夢(1990.04—),男,漢族,河南南陽人,助教,碩士研究生,研究方向:嵌入式Linux、機器學(xué)習(xí)、人工智能;
臧艷輝(1978.10—),女,漢族,湖北襄陽人,高級工程師,碩士研究生,研究方向:移動物聯(lián)網(wǎng)、大數(shù)據(jù)技術(shù)應(yīng)用;
馬伙財(1993.11—),男,漢族,廣東肇慶人,助教,碩士研究生,研究方向:生成對抗神經(jīng)網(wǎng)絡(luò)、數(shù)據(jù)挖掘。