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