曾嘯川 鄧紅衛 莫嵐淋 陳一楠 賀迪



摘要:本文以自動駕駛小車為例,將深度學習技術運用于自動駕駛小車,在模擬的道路上,實現對交通標志識別的自動駕駛。本文采用TensorFlow深度學習框架,編寫CNN結構模型,訓練卷積神經網絡,運用OpenCV圖像處理技術,使用攝像頭采集模擬道路與交通信號標志數據,通過處理器計算和處理,面對相應的交通信號標志,自動駕駛小車自動采取應對措施。測試結果表明,小車具有一定程度的自動駕駛與交通標志識別能力。
關鍵詞:TensorFlow;深度學習;卷積神經網絡;自動駕駛;交通標志識別
中圖分類號:TP18 文獻標識碼:A 文章編號:1007-9416(2020)07-0131-04
0 引言
TensorFlow[7]是一個采用數據流圖(data flow graphs),用于數值計算的開源軟件庫。節點(Nodes)在圖中表示數學操作,圖中的線(edges)則表示在節點間相互聯系的多維數據數組,即張量(tensor)。它靈活的架構讓開發者可以在多種平臺上展開計算,例如計算機中的一個或多個CPU(或GPU),服務器,移動設備等等。無人駕駛技術是傳感器、計算機、人工智能、通信、導航定位、模式識別、機器視覺、智能控制等多門前沿學科的綜合體。無人駕駛汽車的關鍵技術包括環境感知、導航定位、路徑規劃、決策控制等。環境感知模塊相當于無人駕駛汽車的眼和耳,無人駕駛汽車通過環境感知模塊來辨別自身周圍的環境信息,為其行為決策[8]提供信息支持。無人駕駛汽車的導航模塊用于確定無人駕駛汽車其自身的地理位置,是無人駕駛汽車的路徑規劃和任務規劃的之支撐。路徑規劃是無人駕駛汽車信息感知和智能控制的橋梁,是實現自主駕駛的基礎。決策控制模塊相當于無人駕駛汽車的大腦,其主要功能是依據感知系統獲取的信息來進行決策判斷,進而對下一步的行為進行決策,然后對車輛進行控制。正因人工智能與無人駕駛汽車擁有好的前景需求,本文基于TensorFlow深度學習和計算機視覺[9],研究深度學習中的圖像識別[10]技術的問題。并將實時視頻通過圖像識別之后的結果,與自動駕駛小車[11-13]的控制相結合,從而實現無人駕駛。自動駕駛小車除了能實現自動駕駛與避障外,還能實現對交通標志[1]的識別[14-16]。
1 系統構成與功能
自動駕駛小車可以分為感知和決策兩個部分,樹莓派發送指令給Arduino控制直流減速電機實現小車的決策部分;通過攝像頭采集的道路和交通標志數據對小車進行訓練,讓其具有感知功能,并通過測試,實現其感知部分。
1.1 硬件系統構成
自動駕駛小車的實物圖如圖1所示,系統硬件框圖如圖2所示。本文的自動駕駛小車是組裝的小車底盤,由一個伺服電機和一個直流減速電機組成。硬件系統由樹莓派4B、Arduino uno r3、L293D驅動模塊、L298N驅動模塊、HC-05藍牙模塊與HC-SR04超聲波模塊構成。樹莓派4B作為上位機,進行數據采集與圖像預測,Arduino uno r3作為下位機,通過HC-05藍牙模塊與樹莓派4B通訊,并發送指令控制自動駕駛小車的運行。L293D驅動伺服電機實現自動駕駛小車的轉向,L298N驅動直流減速電機控制自動駕駛小車的速度。自動駕駛小車上方安裝了一個800萬像素的攝像頭,用于數據采集。
1.2 系統運行流程
該系統的整體流程圖如圖3所示。將訓練好的模擬道路模型裝載到樹莓派4B中,將訓練好的交通標志模型裝載到PC中。PC與樹莓派4B通過局域網進行通訊,樹莓派4B通過實時采集到的視頻流數據發送到PC,PC將發送過來的實時視頻拆分為一幀一幀的圖片,并進行處理與預測,將預測的交通標志的對應標簽,發送信號流給樹莓派4B,樹莓派4B再發送對應指令給Arduino,自動駕駛小車從而自動采取應對的措施。
2 系統算法設計
網絡模型算法基于TensorFlow框架進行設計,圖片處理算法基于OpenCV進行設計,如圖4所示。模型設計方面,在不影響特征提取的情況下,加入最大池化層,還加入Dropout層防止過擬合。圖片處理方面,將攝像頭采集到的實時視頻拆分為一幀一幀的圖片,通過HSV顏色空間[2]的轉換、二值化處理和目標區域的提取[3]等預處理操作,再進行交通標志的預測。
2.1 網絡結構
如圖5所示,為模擬道路自動駕駛的網絡結構。本算法設計的卷積神經網絡[4]以小車采集的圖像作為輸入,主要由5個卷積層以及3個全連接層所構成。使用的損失函數為交叉熵;激活函數為ReLU;分類器使用Softmax;優化器為ADAM。采集的道路的圖像大小為320*160個像素,每張圖片都有對應的標簽值,經過OpenCV的處理變成灰度圖片,再將每一張圖片輸入到網絡結構中進行訓練。每張圖片經過5個卷積層的特征提取,加入了Dropout層防止過擬合,flatten層是卷積層到全連接層的過渡層,將多維的數據變成一維,最終輸出為三個標簽對應的值。
如圖6所示,為交通標志分類識別的網絡結構。本算法設計的卷積神經網絡以32*32*3的彩色圖像作為輸入,主要由3個卷積層,3個池化層,以及3個全連接層所構成。使用的損失函數為交叉熵;激活函數為ReLU;分類器使用Softmax;優化器為ADAM。采集的交通標志的圖片為大小不等的彩色圖片,經過OpenCV的處理將圖片統一變成32*32大小,通過python的pickle模塊將圖片數據序列化后轉變成二進制文件保存,再將該文件輸入到網絡結構中進行訓練,使圖片數據更易于讀取與處理。
2.2 HSV顏色空間的轉換和二值化處理
HSV是把H(色調),S(飽和度),V(明度)當做色值來定位顏色的空間。相對于RGB空間,HSV空間能夠非常直觀的表達色彩的明暗,色調,以及鮮艷程度,方便進行顏色之間的對比。將采集到的圖片進行HSV顏色空間的轉換,并將紅色、藍色和綠色三種顏色閾值分割[5-6],對目標區域進行閾值化與膨脹處理,最終生成一張合并的mask圖。如下圖所示,為本系統在模擬道路上所收集到的五類模擬交通標志mask圖。圖7為人行橫道標志mask圖;圖8、圖9分別為紅綠燈標志mask圖;圖10為50_kmh限速標志mask圖;圖11為“stop”停車標志mask圖。
2.3 滑動窗口技術
滑動窗口技術,首先固定一個卷積區域,然后將卷積核在圖像上按照指定步長進行滑動,對于每一次的滑動得到區域進行預測,判斷該區域中存在目標的概率?;瑒哟翱谀繕藱z測算法有很明顯的缺點,就是計算成本,因為如果在圖片中剪切出太多小方塊,卷積網絡要一個個地處理。如果選用的步幅很大,顯然會減少輸入卷積網絡的窗口個數,但是粗糙間隔尺寸可能會影響性能。反之,如果采用小粒度或小步幅,傳遞給卷積網絡的小窗口會特別多,這意味著超高的計算成本。為此,對這些問題做了一些改進。在生成的mask圖中,白色區域代表目標區域,黑色區域則代表非目標區域。在進行滑動窗口采用小步幅進行滑動,如果遇到黑色區域或者低像素值區域就直接跳過,遇到目標區域才進行預測。這樣處理不僅不會影響其性能,也不會擁有超高的計算成本。
3 實驗與分析
數據采集結束后,通過構建的卷積神經網絡來訓練樣本數據。將所有數據集拆分80%為訓練集,其他的20%為驗證集。如圖12所示,自動駕駛訓練,訓練數據集包含8167個圖片樣本,輸入到卷積神經網絡進行訓練,經過20次迭代,訓練集正確率為0.9836,loss值為0.0434,驗證集正確率為0.9639,loss值為0.1035。如圖13所示,交通標志訓練,訓練數據集包含10222個圖片樣本,輸入到卷積神經網絡進行訓練,經過10次迭代,訓練集正確率為0.9825,loss值為0.0610,驗證集正確率為0.9941,loss值為0.0543。
4 結語
本文的主要貢獻和結論如下。
(1)本文將深度學習中的圖像識別技術與無人駕駛小車相擬合,兩者之間能夠流暢的運行。(2)實驗結果表明,本系統設計的基于TensorFlow深度學習的自動駕駛系統具有一定的自動駕駛與交通標志識別能力。(3)本實驗樹莓派與Arduino之間采用藍牙模塊通訊,存在一定的時間延遲,總體表現還好,應該考慮使用更好的通訊方式,以減小通訊的延遲時間。(4)采用提取感興趣區域的方法,運用滑動窗口技術,并進行略微的改進,能夠使圖像識別能力比較準確,處理速度更快。(5)由于硬件計算能力有限,導致整個系統發送指令時有一定的延遲時間,無人駕駛小車行駛過程中有一定的誤差。
參考文獻
[1] Saadna Y,Behloul A.An overview of traffic sign detection and classification methods[J].International Journal of Multimedia Information Retrieval,2017(6):193-210.
[2] Qin Y Y,Cui W,Li Q,et al.Traffic Sign Image Enhancement in Low Light Environment[J].Procedia Computer Science,2019(154):596-602.
[3] Salti S,Petrelli A,Tombari F,et al.Traffic sign detection via interest region extraction[J].Pattern Recognition,2015,48(4):1039-1049.
[4] Alexander Shustanov,Pavel Yakimov.CNN Design for Real-Time Traffic Sign Recognition[J].Procedia Engineering,2017(201):718-725.
[5] Cao Jingwei,Song Chuanxue,Peng Silun,Xiao Feng,Song Shixin. Improved Traffic Sign Detection and Recognition Algorithm for Intelligent Vehicles[J].Sensors(SENSORS-BASEL),2019,19(18):4021.
[6] Selcan Kaplan Berkaya,Huseyin Gunduz,Ozgur Ozsen,Cuneyt Akinlar,Serkan Gunal.On circular traffic sign detection and recognition[J].Expert Systems with Applications,2016(48):67-75.
[7] 章敏敏,徐和平,王曉潔,等.谷歌TensorFlow機器學習框架及應用[J].微型機與應用,2017,36(10):58-60.
[8] 武歷穎.無人駕駛汽車環境信息提取及運動決策方法研究[D].西安:長安大學,2016.
[9] 白辰甲.基于計算機視覺和深度學習的自動駕駛方法研究[D].哈爾濱:哈爾濱工業大學,2017.
[10] 孫洪萍.圖像識別——交通標志的檢測與識別[J].科技創新與應用,2018(11):130-131.
[11] 呂威.電動助力轉向系統穩定性和電流控制方法研究[D].長春:吉林大學,2010.
[12] 劉剛.基于智能車的后輪雙電機差速的研究與應用[J].電子制作,2015(13):88-89.
[13] 陳孟元,孫書誠,王虎.基于圖像識別的尋跡智能車設計[J].重慶理工大學學報(自然科學),2013,27(3):80-84+103.
[14] 仲崇豪,宋斌,徐方明,等.基于TensorFlow的交通標志識別系統研究[J].信息與電腦(理論版),2019,31(22):101-102.
[15] 王全,梁敬文.基于TensorFlow的交通標志識別方法研究[J].價值工程,2019,38(27):204-206.
[16] 鄭揮,郭唐儀,王建博,等.自然背景下交通標志牌的檢測方法研究[J].現代交通技術,2017,14(3):79-81+110.