楊飚,周文婷
(北方工業(yè)大學城市道路交通智能控制技術(shù)北京市重點實驗室,北京 100144)
車牌檢測是車牌識別系統(tǒng)中關(guān)鍵的第一步,傳統(tǒng)的車牌檢測算法存在大角度下車牌檢測精度不高的問題。East 算法將車牌檢測看成場景文本檢測問題來處理,直接預(yù)測圖像中任意角度的車牌位置和傾斜信息。采用改進的East 網(wǎng)絡(luò)對車牌進行檢測,特征提取采用PVANet 來加速運算,整個網(wǎng)絡(luò)端到端訓(xùn)練,有效避免不必要的中間步驟,直接得到車牌區(qū)域。實驗結(jié)果表明,構(gòu)建的車牌檢測算法具有較好的檢測效果,可以準確檢測大角度傾斜車牌的位置坐標信息,提高檢測精度。
車牌檢測;神經(jīng)網(wǎng)絡(luò);East 網(wǎng)絡(luò)
車牌識別是智能交通系統(tǒng)中非常重要的基礎(chǔ)功能,應(yīng)用廣泛。當前的車牌識別算法主要用于收費站和卡口等車牌傾角固定或者傾斜角不大的場合,市場上也有很多車牌識別系統(tǒng),對于傾斜角度不大的車牌識別效果很好。但是對于某些場景來說,例如停車場出入口,車輛行駛方向不一,車牌在圖像中往往具有大角度傾斜,目前市場上的車牌識別產(chǎn)品對此適應(yīng)性并不太好,因此對大角度傾斜車牌進行準確定位和識別具有重要的現(xiàn)實意義。
針對車牌傾斜角度不大的情況,已有的基于深度學習的檢測算法有Faster R-CNN[1]、YOLO[2]、SSD[3]等,但對于車牌傾斜角度較大的情況檢測到的車牌效果并不是很好,并且上述算法檢測到的車牌區(qū)域是以外接矩形框(Bounding Box)作為輸出,不便于進一步的車牌矯正與車牌字符識別。
本文針對大角度傾斜車牌檢測問題進行研究,采用了基于場景文本字符檢測的East[4]網(wǎng)絡(luò)結(jié)構(gòu)來構(gòu)造一種車牌檢測算法,直接得出車牌文字區(qū)域頂點坐標,為后續(xù)車牌校正[5]和識別提供了有力的基礎(chǔ)。實驗結(jié)果表明,無論對于普通情況下車牌或是大角度傾斜車牌,本文算法均得到較好的檢測效果。
本文采用一種場景文本字符檢測算法,即East 檢測算法,設(shè)計一個深度神經(jīng)網(wǎng)絡(luò),將含有車牌的圖像作為輸入,直接預(yù)測整體圖像中大角度傾斜的車牌,通過單個神經(jīng)網(wǎng)絡(luò)消除不必要的中間步驟(候選聚合和單詞分割),利用局部感知和權(quán)值共享來降低網(wǎng)絡(luò)的復(fù)雜度,為了使網(wǎng)絡(luò)快速收斂,采用反向傳播算法,得到很好的訓(xùn)練模型,定位到大角度下車牌邊框四個點的任意四邊形,輸出為車牌邊界框的四個坐標點坐標。車牌檢測整體框架如圖1 所示。
為了提高大角度傾斜車牌的檢測精度,采用改進后的East 網(wǎng)絡(luò)進行訓(xùn)練,主要過程分為兩階段,特征提取和特征合并,最后輸出訓(xùn)練模型。East 網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示。
圖1 車牌檢測整體框架
圖2 East網(wǎng)絡(luò)結(jié)構(gòu)
整體East 網(wǎng)絡(luò)結(jié)構(gòu)分為三個部分:特征提取層、特征合并層和輸出層。由于停車場硬件條件有限,大多數(shù)設(shè)備無GPU 或是基于嵌入式的,對于復(fù)雜網(wǎng)絡(luò)運行起來比較困難,本文針對East 網(wǎng)絡(luò)結(jié)構(gòu)進行改進。在特征提取層中,原始網(wǎng)絡(luò)采用ResNet_v1_50 來提取特征,考慮簡化網(wǎng)絡(luò)結(jié)構(gòu)和減少運行時間,本文采用PVANet[6]網(wǎng)絡(luò)結(jié)構(gòu)來提取特征,該網(wǎng)絡(luò)使用了C.ReLU(級聯(lián)整流線性單元)、Inception[7]、HyperNet 和residual模塊等,減少了卷積核數(shù)目,優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu);在特征合并層,將提取到的車牌圖像特征信息進行合并,每一個特征合并階段,最后一個特征映射采用上池化操作擴大尺寸,以保留更多的原始圖像信息,分別采用3×3、1×1 卷積核進行卷積操作,減少計算量,然后與當前特征映射進行連接,合并最后結(jié)果到輸出層;輸出層包含文本得分和文本形狀,對于檢測形狀為RBOX,則輸出包含文本得分和文本形狀(AABB boundingbox 和rotate angle):4 個回歸的框+1 個角度信息,有6 個輸出;對于檢測形狀為QUAD(quadrangle),則輸出包含文本得分和文本形狀:輸出一個score map+8 個坐標信息,有9 個輸出。最終實現(xiàn)對多方向文本的檢測。
本文采用改進的East 網(wǎng)絡(luò)訓(xùn)練車牌數(shù)據(jù),采用的訓(xùn)練數(shù)據(jù)除了常見的30 個省份普通單行藍色車牌,還包含有單行黃牌、雙層白牌、警用車牌、軍用車牌、大使館車牌、武警車牌、消防車牌、教練車牌、新能源車牌等,以及在極端環(huán)境下的車牌如陰陽牌、不同傾斜角度的車牌、不同光照強度下的車牌等??倶颖緮?shù)為41537。針對這些圖片進行標注,在使用時把總樣本數(shù)分為三類,訓(xùn)練集、驗證集和測試集,采用40117 張圖片作為訓(xùn)練集,429 張圖片作為驗證集,991 張圖片作為測試集。用訓(xùn)練集來訓(xùn)練模型,用驗證集上的測試性能進行模型調(diào)參,用測試集的檢測效果來估計模型在實際應(yīng)用時的泛化能力。
實驗結(jié)果主要是在PC 端完成訓(xùn)練和測試的。PC主要配置為:Linux 16.04 操作系統(tǒng),處理器為IntelCore i7-6700 CPU@3.40GHz×8,顯卡是GeForce GTX 1060 6GB,采用的深度學習框架是TensorFlow。
在訓(xùn)練時,通過車牌標注軟件人工預(yù)先標注圖像中車牌信息數(shù)據(jù),包括車牌在圖像中的坐標位置信息、車牌號、車牌顏色、車牌類型等,對于車牌位置按照逆時針方向進行標注,標注生成四個點坐標,生成包含有這些信息的標注數(shù)據(jù)文件,進行訓(xùn)練和分析,得到訓(xùn)練模型。由于大角度傾斜車牌樣本不是很多,對車牌數(shù)據(jù)進行樣本擴增[8],分為兩種擴增方式,一種是對傾斜圖像進行縮放變換,另一種是采用旋轉(zhuǎn)矩陣和平移變換對正常車牌圖像進行變換,以達到大角度傾斜車牌數(shù)據(jù)擴增的目的。為了加快學習速率,對圖片進行了預(yù)處理,調(diào)整圖片尺寸大小為512×512,訓(xùn)練批次調(diào)整為8,初始學習率為0.001,學習衰減率為0.94,每10000 次迭代生成一個訓(xùn)練模型,模型衰減速率(decay)設(shè)置為0.997,用于控制模型的更新速度,采用滑動平均的方法更新參數(shù),使用ADAM 優(yōu)化器進行端到端訓(xùn)練,總共訓(xùn)練10 萬次。在車牌檢測網(wǎng)絡(luò)輸出之后,與常用的目標檢測算法相似,閾值處理后的圖形使用非極大值抑制[9](NMS)的方法來過濾掉冗余的邊界框,以此得到最終結(jié)果,由于本文中處理的幾何體個數(shù)較多,若采用普通的NMS 計算,其計算時間復(fù)雜度為O(n2),n 表示幾何體的數(shù)目,很明顯若采用此類方式將有較高的計算復(fù)雜度,且不容易實現(xiàn),故采用基于鄰近幾何體的行合并方法,即局部感知NMS 投票機制,合并的幾何體具有高度相關(guān)性,通過兩個給定的四邊形得分進行加權(quán)平均,對于各種情況下的圖片具有較高的穩(wěn)定性。
車牌檢測就是將包含有車牌的圖像進行車牌定位,能夠框出圖像中的車牌,并準確獲取圖像中的車牌所在坐標位置信息的過程。輸入原始圖像,進行數(shù)據(jù)預(yù)處理[10]操作,采用全卷積網(wǎng)絡(luò)結(jié)構(gòu)進行訓(xùn)練,輸出訓(xùn)練模型。實際收集到的圖像背景復(fù)雜,種類較多,在對圖像中的車牌進行定位時,需要對原始圖像進行預(yù)處理操作,用以消除噪聲干擾,提高檢測精度。主要預(yù)處理過程包括利用圖像增強以消除噪聲,對于不均勻光照的影響,通過增強對比度使圖像中的目標可辨識性增強檢測率。圖3 為車牌大角度傾斜情況、強光照、光照不均、光照較暗、車牌字符模糊不清以及特殊車牌情況下的車牌檢測樣本。
圖3
為了評估該算法在大角度傾斜下的車牌檢測精度,使用本文算法與市場上占有率領(lǐng)先的兩家公司(分別用甲、乙代表)的車牌識別產(chǎn)品進行了實驗對比,測試數(shù)據(jù)分為兩類,包括普通車牌和大角度傾斜車牌,分別從準確率(Accuracy)、精確率(Precision)和召回率(Recall)三個指標來分析。
準確率表示給定的測試集中,分類器正確分類的樣本數(shù)與總樣本數(shù)之比。計算公式為:A=(TP+TN)/(TP+TN+FN+FP)
精確率表示預(yù)測為車牌的樣本中有多少是真正的車牌。計算公式為:P=TP/(TP+FP)
召回率表示樣本中的真正車牌有多少被預(yù)測正確了,即是車牌檢測率。計算公式為:R=TP/(TP+FN)
分析車牌檢測實驗數(shù)據(jù),得出表1 實驗結(jié)果。
表1 算法檢測結(jié)果對比
分析表1 中結(jié)果,通過分別使用甲乙兩家公司產(chǎn)品和本文算法實驗測試發(fā)現(xiàn),甲乙公司產(chǎn)品對于普通車牌準確率分別達到90.79%、96.60%,檢測率分別達到96.60%、98.25%,本文算法對于普通車牌準確率和檢測率均達到99%以上。對于大角度傾斜車牌甲公司產(chǎn)品準確率只有75%左右,檢測率為84.83%,采用本文算法準確率和檢測率最高達到20%左右的提高。綜合來說,無論普通車牌還是大角度傾斜車牌,采用本文算法做車牌檢測都有明顯的提高,對于普通情況下各類車牌檢測準確率和召回率都達到99%以上,對于大角度傾斜情況車牌檢測準確率和召回率達到95%以上。
車牌檢測精度直接對后續(xù)車牌識別問題有很大影響。當圖片中的車牌角度傾斜很大時,對于車牌檢測率有很大影響,易產(chǎn)生漏檢或者錯檢,一般情況下大于40 度的傾斜就會產(chǎn)生偏差,即圖像中的車牌區(qū)域不能夠全部被檢測框檢測完整,當在40-60 度之間圖像成像會變形。本文利用East 場景文本檢測算法,將其應(yīng)用于大角度車牌檢測,直接進行端到端訓(xùn)練,去掉了全連接網(wǎng)絡(luò),采用一種全卷積網(wǎng)絡(luò)(FCN)模型,減少訓(xùn)練參數(shù),實現(xiàn)了快速而準確地檢測圖片中的大角度車牌,取得了較高的檢測速度和檢測精度。