王全


摘要:交通標志識別系統是智能駕駛系統的重要組成部分;本文分析了現有方法存在的問題,基于TensorFlow框架搭建了改進的卷積神經網絡,用于識別交通標志;整個系統在TensorFlow上實現,使用行車記錄儀采集的視頻驗證了本文的算法,結果表明本文算法有一定的實用性,而且在準確率,魯棒性和實時性等方面也表現較好。
Abstract: Traffic sign recognition system is an important part of intelligent driving system. This paper analyzes the problems existing in the existing methods. Based on the TensorFlow framework, an improved convolutional neural network is built to identify traffic signs. Finally, ?the whole system is implemented based on TensorFlow, and the algorithm is verified by the collected video in the traffic recorder. The results show that the algorithm is practical, and has excellent performance in accuracy, stability and real-time.
關鍵詞:交通標志識別;卷積神經網絡;Tensor Flow
Key words: traffic sign recognition;convolutional neural networks;Tensor Flow
中圖分類號:TP391;U461.6 ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻標識碼:A ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文章編號:1006-4311(2019)27-0204-03
1 ?緒論
近年來,智能交通系統[1,2]越來越受到人們的關注。隨著其智能化程度越來越高,它現在可以幫助甚至取代駕駛員的工作。智能交通決策系統需要識別交通標志來做出判斷,從而提醒駕駛員的各種行為,以減少交通事故的發生。此外,無人駕駛技術[3]也正迅速發展,各大互聯網巨頭正在開發無人車,交通標志識別是其中重要的一環。因此,本文選取了交通標志識別這個課題進行研究。
2 ?基于TensorFlow的卷積神經網絡的構造
本文選擇的是德國交通標志數據集GTSRB[4]。這個數據集樣本數量龐大,有近5五萬張圖片,并且涉及到了不同光照強度、不同角度、不同天氣的情況,覆蓋情況較多,能達到較好的訓練效果。這個數據集一共有43種交通標志,如圖1所示,每種交通標志有樣本200到2000不等。
2.1 數據集預處理
2.1.1 將彩色圖像灰度化
不同國家的交通標志的顏色存在差異,如果此時通過顏色來區分不同的交通標志,準確率就可能很低。再者,交通標志里的顏色,不是區分不同交通標志的主要信息。最后,彩色圖像比灰色圖像要處理的數據更多。
圖像灰度化有很多方法,因為選擇的GTSRB數據集,所以選擇了加權平均法,就是把彩色圖像中每一個像素點的RGB的亮度值分別乘以不同的系數,其結果就是灰度圖中對應該點的灰度值。
2.1.2 直方圖均衡
本文選擇了直方圖均衡[5,6]的方法進行圖像增強。均衡就是將輸入的圖片映射到具有類似像素點的輸出圖片,一般是通過一定的灰度映射的方法來完成的。簡言之,就是均衡圖片的亮度級別,加強明暗對比。
隨機的選取三張圖片,依次輸出每一張圖片的原圖、灰度圖和直方圖,灰度化和直方圖均衡的效果如圖2所示。
2.2 搭建卷積神經網絡
2.2.1 定義架構
本文使用了LeNet架構[7]。有卷積和池化各兩層,全連接三層。建立架構的基本步驟如下。
①卷積:要先了解卷積的過程,才能更深入的了解卷積層。下面簡單的介紹一下卷積的過程:首先確定卷積核的大小,它要根據實際情況設定,本文設定為5*5;另一個參數是步長,即卷積核移動的距離,假定為1。卷積時,首先輸入圖片,然后卷積核會從圖片的左上角,按照步長,移動到右下角。
②池化:池化的模型有很多,根據處理方式的不同可將它分為最大池化和平均池化。池化的過程和卷積的過程類似,不同的是,池化的所使用的池化窗口分別是要處理對應區域中最大的那個數還是該區域所有數的平均。池化的主要作用是對圖像進行特征降維,縮減模型的大小,減少參數的數量,在避免過擬合的同時,又保證特征的位置不變,提高識別的準確率。
2.2.2 測試
①測試驗證集:樣本本來有34799張,后來對其進行了擴充,所以訓練集增至47781張。驗證集就是從擴充過的訓練集中分出來的,占總量的20%。所以驗證集和訓練集是完全一樣的。
首先建立session,在會話中,運行模型的時候通過feed_dict函數向占位符傳入數據。由于BATCH_SIZE被設置為128,所以每次會隨機選取128張圖片傳入模型。EPOCHS的值為30,也就是將所有的樣本傳遞30次,每傳遞一次輸出一次,顯示其準確率、損失值和本批次運行的時間,以便更好的監控整個訓練過程。訓練結束,準確率達到97.6%。
②測試測試集:測試集是從官網下載的.p文件,它有4410個樣本,具體的測試過程和對驗證集的測試是類似的,只是傳入的樣本不同。最后的訓練結果是“Test Accuracy = 92.6%,Test Loss = 0.536”。用tensorboard分別作出準確率和損失值的變化曲線圖。如圖3所示,從圖中我們可以看出,隨著傳入批次的增多,準確率在逐漸增高,慢慢的趨近于1;損失值在逐漸降低,慢慢的趨近于0。
3 ?實驗結果及分析
3.1 模型的優化
3.1.1 學習率的選擇
學習率對模型的訓練和神經網絡的優化有著重要作用。學習率是結合梯度來更新權值的,選擇的學習率要適應當前梯度的變化。如果學習率設置過大,會導致每次改變的太多,總是錯過那個最佳的點;學習率設置的過小,又會導致收斂過慢,運行效率不高。本文選擇了0.0005、0.0009和0.005三組學習率進行試驗。
表1總結了不同學習率運行的結果,包含準確率和損失值。總體看來,表現比較好的時學習率為0.0005和0.0009,準確率均在98%以上,損失值也都在0.1以下;但是0.005的準確率和損失值都十分不理想,準確率只有3.5%,損失值也高達3.7。相比較兩個表現較好的學習率,0.0009的準確率更高,損失值更低,所以是最優的。最終我們選擇了0.0009為我們的學習率。
3.1.2 激活函數的選擇
激活函數是訓練中必不可少的一部分,而激活函數又有多個種類,怎么選擇合適的激活函數就顯得非常重要。在本研究中,選擇了relu函數、sigmoid函數、tanh函數和softplus函數四種激活函數進行試驗。
從表2中能看到,選的這四種激活函數的測試結果都還可以。其中relu表現最好,準確率高達0.983;tanh和softplus的準確率差不多,但是tanh的損失值有點高;sigmoid表現較差,準確率最低,損失值最高。綜上所述,在所有的激活函數中,relu的表現是最好的,所以其被作為本文的激活函數。
3.2 復雜環境下交通標志識別
從研究交通標志開始,專家們雖然已經收獲一些成果,但是都遇到了一些問題。出現這些問題大部分是因為交通標志處于室外,陰晴雨雪等復雜天氣都能對其產生影響。這些復雜情況主要有:光照條件多變、運動模糊、被遮擋一部分和發生形變等。本文對各種復雜環境下交通標志識別進行實驗,結果如圖4所示。
綜上所述,本文訓練的網絡對光線較強、霧天或者陰雨天氣、運動模糊和被遮擋一部分條件下的交通標志的識別的準確率都較高,一般能達到90%以上,對發生形變的測試勉強使人滿意,只有71%。
4 ?結論
交通標志識別系統的設計與實現,是智能交通系統的一個重要分支,具有研究價值和使用前景。本文著重研究了基于TensorFlow的交通標志識別系統的設計與實現。本文的主要工作如下所示:①本文首先對該課題的背景和意義做了深入的探討,對交通標志的識別的應用前景和重要現實意義有了深刻的認識。②選擇了GTSRB這一標準數據集,對其進行了預處理。預處理分為三步,分別是灰度化、直方圖均衡(數據增強)和數據擴充。以上對數據集的預處理都是為了改善特征提取,提高識別的準確率。③介紹了卷積神經網絡的搭建。通過卷積、池化、全連接一層層將整個框架搭建起來。然后使用訓練好的模型分別對驗證集和測試集進行了測試,并可視化訓練結果。④結果分析。對不同的學習率、不同的激活函數進行驗證和分析,找出了一套最優的方案。對一些復雜環境下的交通標志進行了測試,包括光線較強、光照較暗、霧天或者陰雨天氣、運動模糊、被遮擋一部分和發生形變等各種情況,結果表明本文算法有一定的實用性,而且在準確率,魯棒性和實時性等方面也表現較好。
參考文獻:
[1]Spadafora W G,Paielli P M, Llewellyn D R, et al. Intelligent transportation system. US. US7689230, 2010.
[2]Wen Y, Lu Y, Yan J, et al. An Algorithm for License Plate Recognition Applied to ?Intelligent Transportation System.IEEE Transactions on Intelligent Transportation Systems, 2011, 12(3 ):830-845.
[3]馬振貴.瘋狂收購英特爾布局無人駕駛.上海信息化,2017(04):40-43.
[4]Stallkamp J,Schlipsing M,Salmen J,et al. The German Traffic Sign Recognition Benchmark: A multi-class classification competition[C]. International Joint Conference on Neural Networks. IEEE, 2011:1453-1460.
[5]白璐.基于圖像處理的車牌識別系統的研究[D].長安大學,2010.
[6]宋小潞.基于大氣物理模型的單幅圖像去霧算法研究[D].華南理工大學,2015.
[7]Lecun Y,Bottou L,Bengio Y,et al.Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11):2278-2324.