張萬征,胡志坤,李小龍
(智洋創新科技股份有限公司,山東 淄博 255086)
近年來,各大知名汽車公司都在積極開發先進的駕駛輔助系統(ADAS)[1],并試圖將ADAS系統商業化,甚至作為將來自動駕駛的基礎。ADAS系統不僅配備了車道保持輔助系統(LKAS)[2],還需要配備具有各種道路交通識別標志的交通標志識別(TSR)系統。而根據歐洲NCAP評級標準,當汽車速度超過設定的速度閾值時,汽車應該能夠向駕駛員發出警告。盡管當前應用廣泛的數字地圖數據也可以知道限速值,但這種方法僅限于地圖數據中的道路。因此,在大多數汽車駕駛情況下,需要基于視覺的交通標志識別系統,要求TSR系統需要能識別各種交通標志,以獲得更詳細的道路信息[3]。近年來,交通標志識別越來越受到國內外研究者的關注。比如清華大學、西安交通大學等高校和科研院所對自動駕駛車輛和交通標志識別進行了大量研究。2008年,國家自然科學基金啟動了視聽信息認知計算項目,無人駕駛中與車輛相關的可視化計算是其重要的研究內容之一。交通標志圖像采集通常來自于駕駛車輛上的攝像設備[4],因此交通標志識別系統在實際應用中需要具有良好的實時性和準確性。自然場景中光照、天氣、遮擋和拍攝角度的變化增加了交通標志識別的難度。目前,交通標志分類識別的主要算法有統計分類、模板匹配、稀疏編碼、神經網絡和遺傳算法。其中,基于卷積神經網絡的交通標志識別算法以其自學習能力受到國內外研究人員的高度重視。特別是在深度學習結構中,卷積神經網絡(CNN)在圖像分類問題中得到了廣泛的應用。CNN是一種使用小的子區域(接收域)的多層感知器。接收域被平鋪以覆蓋整個輸入圖像,然后通過共享相同的權重和偏移量生成特征映射。因此,深度學習可以減少神經網絡學習所需的參數數目,提高學習效率。
本文利用LeNet-5對國內各種交通標志進行訓練,最后以實時應用為目標,選擇合適的輕量級檢測算法提取交通標志感興趣區域,再通過訓練模型對交通標志進行識別。
包括本文使用的LeNet-5模型[5]在內,幾乎所有用于圖像分類的CNN模型都是以物體圖像作為輸入數據的。通常在圖像識別過程中會先對圖像進行預處理,選擇性搜索常被用作目標檢測的預處理。它通過計算不同顏色空間和紋理的相似性來搜索可能包含對象的區域。目的是在健壯性和速度之間進行權衡[6]。上述算法盡管可以取得較好的檢測效果,但時間復雜度太高,無法滿足實時計算的要求。因此,本文提出了一種簡單的區域分割方法,即HSV(Hue,Saturation,Value)閾值運算,色調值的范圍設置為0~180,其他值的范圍為0~255。在實際應用場景中,交通標志具有鮮明的色彩特征,如人行橫道標志是藍色的,停車標志是紅色的。因此,簡單的HSV閾值法基本能提取出大部分交通標志的區域。表1顯示了包含“停車”和“人行橫道”標志的圖像的色調、飽和度和值分布。一般來說,停車標志的色調較高(大于160),人行橫道標志的色調在100左右。飽和度的值也取決于道路標志本身。本文選擇了5個閾值操作的最小和最大H、S和V數。分別采用了停車、急轉彎、慢行、人行橫道、減速標志提取算法,通過下面的方程得到HSV的最小數和最大數。
Hmin=μH-ασH,Hmax=μH+ασH
Smin=μS-βσS,Smax=μS+βσS
Vmin=μV-γσV,Vmax=μV+γσV,
(1)
式(1)中,μ是非零像素的平均值和標準偏差。α、β和γ是H、S和V范圍邊緣的決定因素。一般取α為1.1,β和γ設置為2.5。最大值和最小值的選擇都反映了足夠的飽和度和值的裕度,因為它們都會隨著光照條件的變化而發生變化。特別是在停止標志中,由于本文使用HSV二次曲線顏色空間模型,所以色調的最小值和最大值被設置為啟發式的。紅色的色調在170~180和0~10之間。

表1 HSV最大值最小值Tab.1 HSV maximum and minimum
限速標志的形狀是一般圓形的,與其他物體的形狀有區別。因此,Hough變換用于檢測輸入圖像中的圓形[7]。在Hough變換算法之前,實現了高斯濾波(標準差為1.2的5×5核)和Canny邊緣檢測算法[8-11]。圖1顯示了前攝像頭圖像的區域檢測的結果。檢測階段排除了尺寸過大或過小或長寬比過大(長矩形)的區域。

圖1 交通標志檢測結果Fig.1 Traffic sign test results
CNN架構將每個檢測到區域輸入到CNN模型中。圖像的大小調整為100×100像素,還具有rgb像素。換言之,CNN的輸入數據具有100×100×3維。輸出層設計為20個節點,其中18個為所選交通標志的類別數,另一個為其他類型標志的類別數,最后1個節點顯示假陽性類輸出。圖2顯示所選交通標志的圖像。本文算法基于LeNet-5模型,并將一些節點進行修改。在兩個卷積層中,使用5×5大小的卷積核,它將輸入圖像與步長1進行計算。在每個卷積層之后,max pooling層使用2×2核和步長2對數據進行重采樣并減小數據大小。

圖2 識別的主要標志Fig.2 Main identification signs
本文通過自動駕駛汽車擋風板上的4攝像頭采集了駕駛視頻。首先,只訓練由簡單仿射變換產生的正樣本,經過多次檢測,收集到了假陽性分類結果。本文將它們設為陰性樣本。最后,將訓練數據與25 000個正樣本和78 000個負樣本混合,圖3顯示了樣本的示例。


圖3 樣本示例Fig.3 Sample example
LeNet-5網絡只為數字識別設計,傳統的LeNet-5網絡只包含10個輸出[12]。考慮到本文有18個類型而不是10個,本文使用了與輸出層中輕微修改的LeNet-5架構。網絡的第一層是可訓練的特征extactor,具有特定的約束,例如本地連接和權重共享。卷積層應用卷積核(5×5),子采樣層應用核(2×2)。輸出中的分類層是完全連接的mlp。這些層使用提取的局部特征對輸入圖像進行分類。本文采用C++、CUDA 7.5環境開發了TSR系統。本文使用Caffe[13-14]深度學習框架,其中包括模塊化和高效的計算機操作。訓練使用的電腦規格為i7-6820 CPU,titan x顯卡,12 GB GPU內存。
本文的測試在一段校園道路進行。由于安全原因,校園內交通標志種類繁多,適合對TSR系統進行測試。在先前的現場測試中,輸出節點閾值被調整為0.95,即如果輸入的裁剪圖像中的a類節點的輸出值為0.95,則TSR系統確定該圖像為a類。在可觀察范圍內,道路上有16個交通標志。所有的交通標志在駕駛過程中都被成功識別。圖4顯示了從輸入幀到輸出分類結果的整個過程。輸入圖像來自現場測試視頻。如圖4的底圖所示,人行橫道和停車交通標志被劃分為安裝良好的邊界框。在本文的實時處理計算機上,運行平均每秒幀數約為16.9 Hz。

圖4 系統流程圖及識別結果Fig.4 System flow chart and identification results
在基于視覺的ADAS領域中,大多數研究都是利用靜態算法進行的,傳統的LeNet-5可以高效地進行數字識別,但是由于其模型較為復雜且檢測區域過多,因此計算速度較慢,在很多情況下無法滿足TSR系統中對實時判斷的要求,本文提出了改進的LeNet-5卷積神經網絡結構對18種交通標志圖像進行識別。在檢測階段,采用基于顏色的輕量級分割算法和Hough變換算法提取交通標志的目標區域,再利用LeNet-5對交通標志進行分類識別。最后通過在校園道路中的交通標志進行實驗證明,本文算法可以快速識別出道路中的交通標志,具有穩定高效、實時性好的優勢。