季丹
(南京交通職業(yè)技術(shù)學(xué)院 電子信息工程學(xué)院,江蘇 南京 211188)
智能車牌識(shí)別是現(xiàn)代智能交通系統(tǒng)的重要組成部分,廣泛應(yīng)用于高速公路、停車場(chǎng)、路口等場(chǎng)景[1]。隨著大數(shù)據(jù)、人工智能的不斷發(fā)展,智能車牌識(shí)別在數(shù)據(jù)處理、自適應(yīng)學(xué)習(xí)以及特殊場(chǎng)景訓(xùn)練等方面都有較大程度提升,具有更強(qiáng)的容錯(cuò)性和魯棒性。通過車牌號(hào)碼的自動(dòng)識(shí)別與跟蹤,能有效降低車輛自動(dòng)化管理的成本,規(guī)范車輛不規(guī)范行為,為社會(huì)穩(wěn)定與居民便捷生活提供堅(jiān)實(shí)保障。
車牌識(shí)別的一般流程包括原始車輛圖片的獲取、車牌檢測(cè)與車牌識(shí)別三個(gè)步驟,如圖1所示。其中車牌檢測(cè)主要實(shí)現(xiàn)車牌在車輛圖片中的檢測(cè)、車牌圖片的定位及預(yù)處理等,常用的檢測(cè)技術(shù)包括基于傳統(tǒng)的特征檢測(cè)及基于深度學(xué)習(xí)的車牌檢測(cè)。針對(duì)數(shù)據(jù)量一般,對(duì)雨雪、光照等環(huán)境要求不高的情況,可采用傳統(tǒng)特征檢測(cè),對(duì)車牌色彩、紋理、邊緣等關(guān)鍵特征進(jìn)行提取。比如采用Mallat算法和小波變換進(jìn)行區(qū)域邊緣特征提取[2];結(jié)合顏色分割及Sobel算子實(shí)現(xiàn)車牌顏色邊緣特征提取[3]。針對(duì)干擾因素較多的復(fù)雜場(chǎng)景,可采用深度學(xué)習(xí)算法,比如SSD卷積神經(jīng)網(wǎng)絡(luò)等[4]實(shí)現(xiàn)快速檢測(cè)與定位。
圖1 車牌識(shí)別一般流程
隨著深度學(xué)習(xí)在計(jì)算機(jī)視覺領(lǐng)域取得的重大突破,利用神經(jīng)網(wǎng)絡(luò)進(jìn)行車牌識(shí)別也取得了豐碩成果,尤其針對(duì)車牌傾斜、臟污和復(fù)雜天氣環(huán)境下等字符識(shí)別有較高辨識(shí)率,主要涉及基于切割及基于端到端的車牌字符識(shí)別技術(shù)。比如,通過反向?qū)W習(xí)策略,將局部連接層連接到卷積層,實(shí)現(xiàn)了CNN卷積神經(jīng)網(wǎng)絡(luò)對(duì)車牌字符的識(shí)別[5];提出了一種基于YOLO深度學(xué)習(xí)算法的航拍圖像車輛檢測(cè)方法[6];基于Faster R-CNN和YOLO算法提出了遙感大數(shù)據(jù)目標(biāo)檢測(cè)網(wǎng)絡(luò)[7]等。
為增強(qiáng)車牌檢測(cè)的容錯(cuò)率以及車牌字符識(shí)別的精確度,本設(shè)計(jì)將采用CenterNet Resnet目標(biāo)檢測(cè)以及循環(huán)神經(jīng)網(wǎng)絡(luò)CNN共同實(shí)現(xiàn)智能車牌識(shí)別功能,其整體設(shè)計(jì)框架如圖2所示。針對(duì)采集的車牌圖像,采用CenterNet目標(biāo)檢測(cè),對(duì)原始車輛圖片進(jìn)行車牌目標(biāo)位置的定位、檢測(cè)與保存,再對(duì)車牌圖片進(jìn)行直方圖均衡、灰度處理、傾斜矯正等預(yù)處理操作后,得到較為精確的車牌圖像信息。將處理后的車牌字符傳入卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行模型的訓(xùn)練與優(yōu)化,最終預(yù)測(cè)得到較為準(zhǔn)確的車牌識(shí)別結(jié)果。
圖2 智能車牌識(shí)別系統(tǒng)設(shè)計(jì)框架
2019年,Xingyi Zhou,等人在“Objects as Points”一文中提出了基于中心點(diǎn)的CenterNet Resnet目標(biāo)檢測(cè)網(wǎng)絡(luò),它通過關(guān)鍵點(diǎn)估計(jì)來找到物體中心點(diǎn),并回歸到對(duì)象屬性上,如大小、3D位置、方向甚至姿勢(shì)[8],相較于Faster-RCNN、Retina Net、YOLOv3等算法,該結(jié)構(gòu)在速度和精度上都較占優(yōu)勢(shì)。
系統(tǒng)采用CenterNet網(wǎng)絡(luò)結(jié)構(gòu)實(shí)現(xiàn)車牌檢測(cè),具體流程描述如下:
步驟1 選擇Resnet50作為目標(biāo)檢測(cè)網(wǎng)絡(luò),即對(duì)輸入車輛圖片進(jìn)行50次卷積操作,實(shí)現(xiàn)特征提??;
步驟2 通過反卷積模塊,對(duì)上一步得到的特征圖片進(jìn)行三次上采樣,得到增強(qiáng)后的特征圖片;
步驟3 將上一步的特征圖片放入三個(gè)分支卷積網(wǎng)絡(luò),分別預(yù)測(cè)檢測(cè)目標(biāo)的熱力圖heatmap、目標(biāo)的寬度與高度占比以及目標(biāo)的中心點(diǎn)坐標(biāo),所得參數(shù)可用于車牌圖片的截取。
步驟4 采用仿射變換,在原圖中實(shí)現(xiàn)檢測(cè)目標(biāo)的裁剪和縮放,用邊框框出車牌位置,并顯示位置比例,測(cè)試效果如圖3所示。
圖3 采用CenterNet實(shí)現(xiàn)車牌檢測(cè)
通過CenterNet截取出的車牌圖像數(shù)據(jù)集中存在車牌位置傾斜、照明不均勻、車牌不清晰等多種特殊情況,因此車牌圖像的預(yù)處理顯得尤為重要,甚至直接影響車牌字符的讀取和字符識(shí)別的精度。本系統(tǒng)車牌圖片預(yù)處理的步驟描述如下:
步驟1 采用直方圖均衡化方法,增強(qiáng)車牌圖片的對(duì)比度。因每張圖片都是彩色的,包括BGR三個(gè)通道,不同通道都可能出現(xiàn)暗部細(xì)節(jié)不足或丟失的情況,因此可將車牌圖片的直方圖分布變成近似均勻分布,從而實(shí)現(xiàn)圖像增強(qiáng)功能;
步驟2 采用基于冪次變換的伽馬校正實(shí)現(xiàn)圖片的灰度處理,將輸入圖片的灰度值進(jìn)行指數(shù)變換,從而拓展暗部細(xì)節(jié),也便于加快運(yùn)算速度;
步驟3 檢測(cè)灰度變換后的車牌圖片是否存在傾斜,如存在,則采用霍夫變換檢測(cè)車牌的邊界形狀,不斷擬合車牌的邊界線條,然后通過空間角度的調(diào)整,實(shí)現(xiàn)車牌圖片的矯正;
步驟4 通過統(tǒng)計(jì)邊框像素出現(xiàn)的頻率,對(duì)矯正后的車牌圖片進(jìn)行邊緣去除。每一步處理效果如圖4所示。
圖4 車牌圖像預(yù)處理過程
車牌識(shí)別較為常用的手段是基于車牌字符的分割,但實(shí)際情況中車牌圖片容易出現(xiàn)傾斜、污損、不清晰等情況,導(dǎo)致字符分割不準(zhǔn)確或不完整,因此系統(tǒng)采用基于CNN卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)端到端的車牌字符識(shí)別。
在網(wǎng)絡(luò)搭建前先明確輸入與輸出變量。由于預(yù)處理后的車牌圖片大小不一致,此處將所有圖片統(tǒng)一縮放為寬240px,高80px的圖片,灰度處理后統(tǒng)一選擇一維通道。假設(shè)訓(xùn)練集樣本數(shù)量為N張,則網(wǎng)絡(luò)的輸入層維度則為N×80×240×1。輸出層要識(shí)別的車牌字符有7位,第一位為省份字符(共34個(gè)),后6位為除去“I”和“O”的字母及0-9數(shù)字的組合(共34個(gè)),由此可知網(wǎng)絡(luò)的輸出變量字對(duì)應(yīng)離散的68個(gè)字符。
構(gòu)建CNN卷積神經(jīng)網(wǎng)絡(luò)模型如圖5所示,包含三個(gè)卷積圖、1個(gè)扁平層、1個(gè)全連接層。其中每個(gè)卷積圖都包含兩個(gè)卷積層(C)、1個(gè)池化層(S)和1個(gè)丟棄層(D)。第一次卷積核為32,卷積形狀為3×3,第二次為64,第三次為128,每次采用relu激活函數(shù)增強(qiáng)數(shù)據(jù)的擬合度,三次卷積圖操作后實(shí)現(xiàn)重要特征的提取。展平層將三維數(shù)據(jù)信息展開成一維向量,隨機(jī)丟棄30%后輸入至全連接層。全連接層采用Softmax函數(shù)輸對(duì)應(yīng)字符信息。
圖5 CNN卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
具體參數(shù)及函數(shù)選擇如下:
(1)卷積圖:第一個(gè)卷積圖中,C1的卷積核大小為32,卷積形狀為3×3,C2的卷積形狀為2×2,隨機(jī)丟棄50%樣本;第二個(gè)卷積圖中,C2的卷積核大小為64,卷積形狀為3×3,C4的卷積形狀為2×2,隨機(jī)丟棄50%樣本;第三個(gè)卷積圖中,C5的卷積核為128,卷積形狀為3×3,C6的卷積形狀為2×2,隨機(jī)丟棄50%樣本。卷積后采用relu非線性函數(shù)增強(qiáng)數(shù)據(jù)的擬合度。
(2)池化層:基于最大值原則,根據(jù)池化形狀進(jìn)行欠采樣,有效降低特征維度,一般選擇2×2的池化形狀。
(4)輸出層:將全連接層得到的神經(jīng)元分類結(jié)果輸入Softmax函數(shù),并映射至(0,1)區(qū)間內(nèi)。模型訓(xùn)練期間以交叉熵為損失函數(shù),不斷監(jiān)控?fù)p失最小值,由此判斷字符匹配的概率。
本系統(tǒng)以公開的中國城市停車數(shù)據(jù)集(Chinese City Parking Dataset, CCPD)為基礎(chǔ),隨機(jī)選取了6000張車輛圖片,包含了不同天氣、不同光照角度、不同車輛位置以及傾斜和模糊的車輛樣本。實(shí)驗(yàn)選取4000張作為訓(xùn)練集進(jìn)行模型的訓(xùn)練與優(yōu)化,2000張作為測(cè)試集進(jìn)行結(jié)果驗(yàn)證。
將所有車輛圖片經(jīng)過CenterNet網(wǎng)絡(luò)進(jìn)行車牌檢測(cè)與截取后,進(jìn)行對(duì)比度增強(qiáng)、灰度處理、傾斜校正以及去邊緣化等預(yù)處理操作,并獲取處理過后的圖像通道信息轉(zhuǎn)換為tensor變量傳入CNN網(wǎng)絡(luò)。模型編譯時(shí)選擇Adam自適應(yīng)優(yōu)化器,以交叉熵作為監(jiān)控?fù)p失值,在訓(xùn)練過程中保存損失值最小的模型參數(shù),便于測(cè)試樣本的驗(yàn)證。實(shí)驗(yàn)中epoch設(shè)為200,訓(xùn)練時(shí)最小損失值為0.0315,模型的識(shí)別準(zhǔn)確率達(dá)到94.7%。
該模型針對(duì)不同的光照變化、不同角度、不同清晰度的車牌識(shí)別都有較高的辨別度,識(shí)別效果如圖6所示。
圖6 不同場(chǎng)景下車牌智能識(shí)別
隨著人工智能的不斷發(fā)展,將深度學(xué)習(xí)算法應(yīng)用于車牌識(shí)別領(lǐng)域?qū)乙姴货r,然而部分算法在簡(jiǎn)單場(chǎng)景下有較高的識(shí)別效果,但對(duì)于不同光照、不同環(huán)境、不同天氣、不同清晰度等多變的場(chǎng)景識(shí)別,還存在一定難度,且不同神經(jīng)網(wǎng)絡(luò)的選擇或者網(wǎng)絡(luò)參數(shù)的自適應(yīng)調(diào)整都會(huì)進(jìn)一步影響車牌識(shí)別效率。本系統(tǒng)選擇CenterNet網(wǎng)絡(luò)進(jìn)行車牌定位與檢測(cè),選擇直方圖均衡化、傾斜度矯正等圖像預(yù)處理技術(shù)增強(qiáng)車牌的對(duì)比度,都為后續(xù)卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練提供了有效保障。測(cè)試結(jié)果顯示,該系統(tǒng)能有效辨別不同場(chǎng)景下車牌信息,且平均識(shí)別準(zhǔn)確率高。