吳宗燃
【摘 要】交通標(biāo)志的識別是輔助駕駛系統(tǒng)和無人駕駛系統(tǒng)中非常關(guān)鍵的步驟,是指將包含交通標(biāo)志的待識別區(qū)域作為輸入(我們在檢測步驟中所得到的一組感興趣區(qū)域),輸出其交通標(biāo)志的小類(如限速60公里/小時,禁止停車等),以得到人們所知道的具體含義。
【關(guān)鍵詞】LeNet5;卷積神經(jīng)網(wǎng)絡(luò);交通標(biāo)志識別
一、交通標(biāo)識識別方案的設(shè)計
卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN)[126]由LeCun等人提出,最早應(yīng)用于手寫數(shù)字的識別,且于2012年在ImageNet分類任務(wù)上取得了突破性的進(jìn)展[127]。目前,卷積神經(jīng)網(wǎng)絡(luò)已成功應(yīng)用于簡單筆劃識別[128]、交通標(biāo)志識別[58,129]、以及相機定位[130]等多個領(lǐng)域。
卷積神經(jīng)網(wǎng)絡(luò)最顯著的特點在于可以直接采用圖像進(jìn)行輸入,能同時進(jìn)行特征和分類器的學(xué)習(xí),避免了傳統(tǒng)識別算法中顯式的、復(fù)雜的特征提取過程,隱式的從訓(xùn)練數(shù)據(jù)中進(jìn)行學(xué)習(xí)。Giresan等人贏得GTSRB第二輪比賽采用的多列深度卷積神經(jīng)網(wǎng)絡(luò)(multi-column deep neural network, MCDNN)[53]包含了三個卷積層,三個最大池化層以及兩個全連接層。鑒于卷積神經(jīng)網(wǎng)絡(luò)如此優(yōu)秀的圖像識別性能,本文采取LeNet5卷積神經(jīng)網(wǎng)絡(luò)來進(jìn)行交通標(biāo)志識別。
二、LeNet5卷積神經(jīng)網(wǎng)絡(luò)的算法流程
(一)交通標(biāo)志識別算法的流程
交通標(biāo)志識別算法流程:輸入圖像、預(yù)處理、特征提取、分類、輸出圖像等幾個關(guān)鍵步驟。在實際的交通環(huán)境中,交通標(biāo)志可能收到各種不利的外部因素影響而難以分辨,如:光線變化,位置的傾斜,風(fēng)吹雨淋之后的褪色,路邊樹木的遮擋,這對計算機來說是十分致命的。同時在檢測中,也會因算法的不理想而產(chǎn)生的誤檢、漏檢、檢測區(qū)域偏差等情況,難以實現(xiàn)百分之百的檢測和完美的定位,因此我們首先需要對我們檢測所得到的一組感興趣區(qū)域做圖像的預(yù)處理,來提高識別與分類的準(zhǔn)確性。
經(jīng)過圖像預(yù)處理之后,我們?nèi)绻苯舆M(jìn)行分類識別,會發(fā)現(xiàn)通常結(jié)果都不會很好,這是因為我們所拍攝的圖像中會有很多噪聲,這些噪聲人眼可以控制忽略,而計算機卻不能,所以通過特征映射使得同類型的數(shù)據(jù)在新的特征空間更加相近,也加大了不同類型數(shù)據(jù)的區(qū)分度,讓計算機可以更加準(zhǔn)確的判斷,排除一些圖像平移,形變,縮放的適應(yīng)性。
這之后我們就將已完成的訓(xùn)練和測試數(shù)據(jù)按路徑輸入,同時改變輸出種類為43。得到的損失圖像如4.1所示。
三、實現(xiàn)與分析
(一)GTSRB數(shù)據(jù)集
在2011年IJCNN組織了一次交通標(biāo)志識別競賽,并與同時公布了GTSRB數(shù)據(jù)集。該數(shù)據(jù)集是從德國真實的交通環(huán)境中拍攝采集,一共包含4大類(禁令標(biāo)志、警告標(biāo)志、指示標(biāo)志、其他標(biāo)志)43小類。整個數(shù)據(jù)集包含了51839幅交通標(biāo)志圖像,其中訓(xùn)練集39209幅,測試集12630幅圖像,識別數(shù)據(jù)集GTSRB每張圖像上只有一個交通標(biāo)志,相當(dāng)于我們檢測部分提取出的每一個感興趣區(qū)域。
(二)運用LeNet5進(jìn)行交通標(biāo)志識別
在本文中,主要目的是運用LeNet5實現(xiàn)對GTSRB數(shù)據(jù)集的交通標(biāo)志分類,同時了解卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)及性能,獨立訓(xùn)練了一個CNN。
GTSRB數(shù)據(jù)集中的標(biāo)志通過顏色特征和形狀特征我們將其分為了6大類,統(tǒng)計見表3.1,其中每一類都有自己的特點,例如:限速標(biāo)志為圓形,紅色邊框,白色背景,中間為數(shù)字;解除禁止為圓形,黑色邊框,白色背景,畫有黑色斜線等。所以在大類之間的特點差異較大,具有較好的分辨性,但是難點在于每個小類的細(xì)分,他們的差別非常小,例如限速60公里/小時和限速80公里/小時,只差了一個數(shù)字而6和8又只差了一筆,如圖3.1所示。卷積神經(jīng)網(wǎng)絡(luò)需要能夠分辨這些微小的差別,才能夠得到我們所需要的準(zhǔn)確率。
(三)圖像預(yù)處理
根據(jù)網(wǎng)絡(luò)的要求,我們將數(shù)據(jù)集中的圖像大小首先統(tǒng)一縮放到32×32。因為從原始圖像中提取的感興趣區(qū)域可能會受到各種不利因素的影響,所以現(xiàn)如今人們都采用了以下幾種預(yù)處理算法,結(jié)果如圖3.2所示。圖中第1列為原始圖像,第2列為灰度圖,第3列到第6列分別為采用CLAHE、直方圖均衡化、對比度調(diào)整以及圖像銳化算法處理后的結(jié)果。
本文主要目的為實現(xiàn)LeNet5網(wǎng)絡(luò)在交通標(biāo)志牌中的運用,為了盡可能減少實驗所需要的時間,所以采用了未經(jīng)處理的原圖像作為輸入,僅將圖像縮放為網(wǎng)絡(luò)所需大小32×32,以此來判斷是否需要做其他預(yù)處理來提高準(zhǔn)確率。
四、實驗結(jié)果與分析
首先編寫了一套Python代碼,用來隨機選取訓(xùn)練集的20%進(jìn)行測試(7841張),另外80%用于訓(xùn)練(31368)。這樣做的好處是我們每次的訓(xùn)練和測試都不相同,提高了隨機性。訓(xùn)練過程中采用了批量驗證的方法,即在一次迭代過程中,將整個數(shù)據(jù)集分為若干個batch,每個batch包含64張圖像,即我們每次訓(xùn)練時,輸入到神經(jīng)網(wǎng)絡(luò)的圖像數(shù)量為64。通過神經(jīng)網(wǎng)絡(luò)的向前傳播過程得出這批圖像的誤差率,然后根據(jù)誤差率對網(wǎng)絡(luò)的權(quán)值和偏置求導(dǎo),并更新網(wǎng)絡(luò)中的學(xué)習(xí)參數(shù)。如圖4.1所示,是我們在網(wǎng)絡(luò)中訓(xùn)練一萬次的loss曲線和在測試集中訓(xùn)練一萬次的loss曲線。
在訓(xùn)練中所使用的LeNet5卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),一共八層,其中包括為1個輸入層,3個卷積層,2個池化層,1個全連接層和1個輸出層。
最后訓(xùn)練的結(jié)果如表4.1所示:
從表中我們可以看出,分類的正確率較高,在7841個測試樣本中,錯誤圖片僅為84張,正確率為98.92%。每幅圖像的處理速度為1.863毫秒。
如圖4.2是部分被錯分的圖像,由于LeNet5是一個只具有的單個CNN的簡單網(wǎng)絡(luò),所以其分類正確率還可以通過多種方式進(jìn)行提升,比如加大網(wǎng)絡(luò)深度,調(diào)整超參,訓(xùn)練多個DNN進(jìn)行分類等。從樣本中我們不難發(fā)現(xiàn),識別錯誤的主要原因包括:分辨率過低,遮擋部分較多,運動模糊等。
五、總結(jié)
本文采用了一種簡單的卷積神經(jīng)網(wǎng)絡(luò)LeNet5進(jìn)行交通標(biāo)志的識別。該網(wǎng)絡(luò)包括三個卷積層,兩個最大池化層和一個全連接層。輸入圖像這次為了實驗采用了沒有經(jīng)過處理的原圖,經(jīng)過卷積層和池化層對圖像特征的提取和壓縮,進(jìn)入全連接層分類,最終得到識別結(jié)果。通過在GTSRB數(shù)據(jù)集上的驗證,正確率為98.92%,因此說明LeNet5卷積神經(jīng)網(wǎng)絡(luò)對于交通標(biāo)志識別有較高的識別率(分類正確率),且在計算機上的運行速度僅為1.8毫秒,可以保證實時性。
【參考文獻(xiàn)】
[1]基于融合卷積神經(jīng)網(wǎng)絡(luò)模型的手寫數(shù)字識別[J]. 陳玄,朱榮,王中元. 計算機工程. 2017(11)
[2]深度學(xué)習(xí)研究綜述[J]. 孫志軍,薛磊,許陽明,王正. 計算機應(yīng)用研究. 2012(08)
[3]基于深度卷積神經(jīng)網(wǎng)絡(luò)的人臉年齡分類[J]. 李超琪,王紹宇. 智能計算機與應(yīng)用. 2017(03).