周世杰,李頂根
(1.華中科技大學 中歐清潔與可再生能源學院,湖北 武漢 430074;2.華中科技大學 能源與動力工程學院,湖北 武漢 430074)
智能交通系統[1](intelligent traffic system,ITS)是將計算機技術、傳感器技術、圖像處理技術、通信技術等相關技術結合使用到交通運輸的管理體系,從而建立起來一種高效、實時、精準的綜合運輸與管理系統。車牌作為車輛的一個身份標識,在智能交通系統中有著至關重要的作用,系統通過車牌對車輛進行區分從而進行辨認以及管理。因此,車牌識別技術在智能交通系統中顯得尤為重要。
Jian Yang等[2]開發了一個包括圖像采集、車牌定位、字符分割和字符識別的系統,改進了二值圖像定位方法,使用模板匹配方法進行字符識別,該方法對車牌面積超過總圖像1/5的圖像能進行很好的識別。Feng Gao等[3]提出了一種結合了垂直邊緣檢測、車牌顏色信息和數學形態學的車牌定位方法以及基于BP神經網絡的字符識別方法,結果表明定位準確率為96.5%,識別準確率為90.5%。Dun等[4]利用垂直邊緣和滑動窗口相結合的方式對車牌進行檢測,并用深度學習的方法進行字符檢測,準確率為83.29%。劉建國等[5]基于AlexNet提出了一種車牌識別算法,該算法車牌識別準確率達到96.7%。張娜等[6]在圖像預處理、車牌定位、字符分割的基礎上,采用改進的BP神經網絡對字符識別,準確率達到96.15%。這些車牌識別技術對圖像中車牌面積有很高的要求,不涉及到大場景下多車道車輛的車牌識別。
本文提出了一種基于卷積神經網絡的大場景下車牌識別方法,可以識別大場景下圖片里多車道的車輛車牌。該方法分兩步完成車牌識別,首先以textboxes++[7]為基礎網絡架構進行修改,以修改后的網絡作為前端車牌檢測網絡。檢測到車牌后,對車牌進行裁剪并送入后端識別網絡進行識別,后端識別網絡采用CRNN[8]框架。網絡訓練在自行采集的大場景圖片中完成,總體識別準確率達到94%,可以對一張圖片中多車道的車輛車牌進行檢測與識別。
本文的研究對象為大場景下的圖像,目前網上開源的車牌數據集EasyPR[9]為小場景下的圖像,不包含多車道的圖片,而且車輛占據圖片中大多數的比例,因此不符合本文的要求。為了解決此問題,實驗室分配多人分不同時段使用GoPro相機在不同地點進行數據的采集工作。采集的圖像樣例如圖1所示。

圖1 車牌檢測數據集示例(4車道及3車道圖片示例)
圖片包含多個車道的車輛,采集的數據中不全是4車道,也含有雙車道、3車道的圖像,圖片中車牌的分辨率保證在150×30左右。實驗室最終采集了5000張圖片,并對圖片進行標注工作,將圖片中的車牌標注出來。隨后在5000張圖片中隨機選取1000張作為測試集,其它4000張圖片作為車牌檢測網絡的訓練集。
后端車牌識別網絡的數據集由從實驗室實地采集的5000張圖片中裁剪出的車牌圖片組成,對于采集的過于模糊的車牌我們未將其放在數據集內,本文也暫時沒有考慮對過于模糊的車牌進行處理。與此同時,在有車牌底框、背景的情況下生成了10 000張車牌圖片,生成車牌的過程中會進行傾斜、加噪聲、添加背景等操作。自主生成的 10 000 張車牌圖片作為預訓練數據集,后端的車牌識別網絡先在該10 000張圖片中進行訓練得到預訓練模型,然后在該模型的基礎上用實際場景下5000張圖片中車牌的裁剪圖片進行訓練,從而得到最終的車牌識別模型。
前端車牌檢測網絡以textboxes++網絡架構為基礎進行修改,網絡的整體結構如圖2所示。該網絡以VGG-16[10]的前13層為基礎網絡,同時將VGG網絡后面的兩層全連接層(fc6以及fc7)替換為卷積層(conv6以及conv7),然后在后面額外添加8層卷積層(從conv8_1到conv11_2),接著選取整體結構中的7個卷積層連接到“車牌框層”,該層也是卷積層,將在后面對該層做詳細介紹。最后在“車牌框層”后面使用非極大值抑制(non-maximum suppression,NMS)。該車牌檢測網絡為全卷積網絡,總共有23層卷積層。
“車牌框層”為卷積層,在前面7個不同的卷積層的輸出特征圖上做檢測,預測車牌存在的概率以及包圍框的坐標信息。然后通過后面的非極大值抑制篩選出最正確的預測。不同于textboxes++的網絡結構,本文將第10層、第13層、第15層、第16層、第18層、第20層以及最后的第23層卷積層連接到“車牌框層”,與此同時考慮到我們采集的數據中車牌在圖片中的分辨率保證在150×30左右,該卷積層的卷積核采用1×5大小。

圖2 車牌檢測網絡結構
“車牌框層”的輸出為分類分數和坐標信息,損失函數由兩部分組成,分類損失(Lconf)以及定位損失(Lloc)。令x為默認框和真實框匹配的系數,xij=1表示在滿足閾值的情況下默認框i與真實框j相匹配,否則xij=0。 令c為預測的置信度,l為預測的車牌框,g為實際的車牌框,則損失函數表達式為
(1)
式中:N為與真實車牌框匹配的默認框的數量,α在文中設置為0.2,分類損失Lconf采取2分類softmax損失函數
(2)
(3)
定位損失Lloc為預測車牌框(l)與實際車牌框(g)之間的smooth L1[11]損失,令默認框(d)中心坐標為cx、cy,寬為w,高為h,則定位損失計算式為
(4)
(5)
(6)
車牌識別網絡采取CRNN網絡結構,它包括3個部分:卷積層、循環層以及轉錄層。卷積層由標準的卷積神經網絡模型中的卷積層和池化層組成,它從輸入的圖像經過卷積后得到的特征圖上提取出特征序列。循環層由一個深度雙向LSTM循環神經網絡構成,預測特征序列中的每一個特征向量的標簽分布。轉錄層基于詞典中的標簽序列將LSTM循環神經網絡預測的特征序列轉化為最終的結果。網絡的具體配置見表1,其中f,k,s,p分別表示卷積核的個數,卷積核的尺寸,步長以及填充。
本文采用識別準確率(accuracy)來對網絡模型進行評估,識別準確率是正確識別的樣本數與總樣本數的比值
(7)
式中: TP=true positives, TN=true negatives, FP=false positives, FN=false negatives。 不同于傳統意義上的TP、TN、FP、FN,本方法中的識別準確率要求既能檢測到車牌也能準確識別,即TP表示圖片中有車牌被檢測到且準確識別出來;TN表示圖片內沒有車牌,檢測時沒有誤檢所以也沒有識別;FP表示圖片內有車牌沒有檢測出來或者檢測出來后識別錯誤;FN表示圖片內有車牌但是沒有檢測出來。我們對提出的改進的網絡結構在實驗室做的數據集上進行了實驗,網絡模型的訓練均在實驗室服務器上完成,服務器CPU及GPU配置型號為:Intel(R)Xeon(R) CPU E5-2620 v4;GTX1080Ti。服務器共有兩塊CPU,每塊有8個核心,16個邏輯處理器;兩塊GPU,每塊GPU顯存為11 G。在訓練集上訓練收斂后,將模型在測試集上進行實驗。該方法的實驗結果在表2中呈現出來,與此同時,為了比較本文提出的方法和一些已有的方法,表2也包含了其它車牌識別方法的準確率等信息。

表1 車牌識別網絡結構

表2 車牌識別方法對比
從表2中可以看出,本文提出的方法的總體識別準確率為94%,不是最高的,但是本文提出的方法是針對大場景下的圖片,圖中包含多個車道,而且計算準確率的時候要求圖中所有車牌均準確檢測識別出來,否則都算識別出錯,而其它方法并不具備此條件,其它方法的高識別準確率是針對于普通場景而言(普通場景如圖3所示),對于大場景下的車輛圖片進行車牌識別的時候無法正確檢測及識別出來。

圖3 普通場景
本文提出的車牌識別方法的效果如圖4所示。圖4左下角部分為整體效果。為了更加直觀地反映識別效果,特別對車牌部分進行了局部放大(箭頭指向部分為局部放大圖)。從圖中可以看到本文提出的方法對于大場景中的4個車道上的車輛車牌進行了很好的檢測與識別。圖5為數據集中3車道圖片識別效果。

圖4 車牌識別效果(箭頭表示局部放大)

圖5 3車道車牌識別效果(箭頭表示局部放大)
為了更加細致地了解本文提出的方法對不同車道數情況的識別效果,特意將測試集中的4車道和3車道圖片挑選出來單獨進行識別,并單獨分別進行識別準確率的計算。計算結果見表3,4車道的車牌識別準確率為89%,而3車道的車牌識別準確率達到96%。3車道圖片的車牌識別準確率比4車道圖片的車牌識別準確率高出很多,為此將數據集中的4車道的圖片拿出來和3車道進行對比,發現3車道圖片中車牌的清晰度比4車道高出很多,而且實驗室采集的4車道圖片中雖然車道線只標出了4條車道,但車道兩邊的延伸很多,完全超出了4車道的范圍,這是造成4車道圖片車牌識別準確率低的原因之一。另外經過對4車道圖片數據的認真盤查后發現,很多圖片中車牌的首個漢字或者其中一些字母比較模糊,特征不夠明顯,這也造成了識別的困難。為此把測試集中4車道圖片中車牌號比較模糊的圖片去除后重新進行實驗,此時4車道圖片車牌識別的準確率也能夠達到95%。數據集中也包含正拍的雙車道圖片(車輛在圖中占據大部分,車牌清晰可見),本文提出的方法在這些圖片中的識別準確率達到98%,文中不對該類型圖片進行展示。

表3 本文方法在不同車道數下的識別率
針對大場景下的車牌識別問題,本文提出了一種基于卷積神經網絡的車牌識別方法,可以對圖片中多車道的車輛車牌進行檢測識別。為了完成該研究課題,實驗室專門采集了大場景下的車牌數據集,并在該數據集上進行了實驗,實驗結果表明,整體的車牌識別準確率為94%。當將數據集中的4車道和3車道的圖片單獨拿出來并將車牌比較模糊難以辨認的圖片剔除后,分別進行實驗的時候,4車道圖片的車牌識別準確率為95%,3車道圖片車牌的識別準確率為96%。這些數據表明本文提出的方法能很好地應用到大場景下多車道的車牌識別問題中去。