趙樹恩,劉 偉
(重慶交通大學 機電與車輛工程學院,重慶 400074)
快速、準確的交通標志定位與識別是自動駕駛環境感知的重要內容,也是決策規劃的前提,對降低交通事故率和緩解日趨嚴重的交通擁堵等問題具有重大作用[1-2]。近年來對交通標志定位與識別的研究眾多,且取得了較為滿意的成果,但應用于多變的實際場景中,仍存在許多問題。
目前交通標志檢測與識別的研究方法主要包含兩類:基于傳統圖像特征提取結合機器學習的兩步驟方法和基于深度學習的目標檢測方法[3]。傳統圖像特征主要有:①基于顏色特征的方法,在RGB、H(色調)S(色飽和度)I(亮度)、HSV等色彩空間中分割出指定的色彩區域,然后提取出交通標志;② 基于形狀特征的方法,首先需要對道路交通圖像進行邊緣檢測,提取出其中特定的幾何形狀特征,然后利用機器學習的方法對定位出的交通標志分類,識別其語義信息。常用的機器學習方法為AdaBoost及支持向量機(SVM)。C.BAHLMANN等[4]同時考慮圖像顏色特征及Haar特征,然后基于AdaBoost算法實現交通標志檢測。C. G. KIRAN等[5]首先對圖像進行色彩分割,將分割后的小塊與邊緣特征結合,然后利用SVM實現交通標志分類。
基于傳統圖像特征檢測結合機器學習分類的方法可快速實現定位和識別,但對光照敏感性強,在有陰影、亮度低和存在遮擋和運動模糊的情況就難以取得較好的識別效果[6-7]。
隨著深度學習理論的發展,卷積神經網絡在目標檢測方面的優勢明顯,避免了傳統方法中的人工特征提取過程。基于卷積神經網絡的主流目標檢測算法有:①包含兩個階段的快速區域卷積神經網絡(Faster- RCNN)[8],該類神經網絡模型往往參數量和計算量巨大,需巨大存儲空間保存模型,難以達到實時性要求;②端到端的單階段模型,主要有YOLO(you only look noce)[9]、SSD(single shot multibox detector)[10],該類方法可直接定位和識別出交通標志的位置和類別,比前者效率提升,但精度有所下降。在實際場景中難以實現實時性與精度之前的平衡,王海等[11]對YOLO、Faster-RCNN及其改進的算法在道路交通圖像中進行了驗證,雖達到了較好的精度表現,但始終不能滿足實時定位的需求,而定位失敗的樣本大多為陰天、傍晚或存在背光的情況,因此,實現低照度條件下的交通標志檢測與識別,能大大優化無人駕駛車輛在感知過程中的表現。
針對上述問題,筆者提出一種快速的低照度道路交通標志檢測與識別方法。首先采用CLAHE算法對圖像進行增強;通過設定相關閾值,在HSV色彩空間分離出紅色、黃色、藍色像素區域(對應禁令標志、警告標志和指示標志);然后設定約束,定位可能的交通標志;為避免訓練樣本中各類別標志圖像數據量差距過大發生過擬合,利用DCGAN模型對交通標志圖像進行樣本量增強;最后使用DC-VGG輕量化模型實現多類交通標志識別,論文的思路構架如圖1。

圖1 思路構架Fig. 1 Idea framework
為增加低照度條件下的識別精度,筆者利用CLAHE算法[12]增強輸入圖像的亮度。該算法通過對局部對比度進行限制,有效防止了噪聲放大造成的圖像失真,該算法常用于處理灰度圖,實現灰度圖的圖像增強。針對彩色的道路圖像,將其由RGB換到HSV色彩空間,利用CLAHE對V通道進行直方圖均衡化,再將V通道重新聚合到原始圖像中。該方法能在抑制高亮區域過曝的同時,有效提高暗部亮度,具體步驟如下:
1) 子塊劃分。將V通道均勻分割為d個子塊。
2) 對比度閾值設定。對每個子塊進行灰度級均分,每個灰度級最后分得像素量Na=m/Nc,其中m、Nc分別為各個子塊中包含的像素個數及其灰度級。
閾值計算方式為:
T=Mc×Na
(1)
式中:Mc為截取限制的倍數。
3) 像素重新分配。將每個子塊直方圖中超出閾值T的像素,重新平均分配至各灰度級,再對各個子塊進行直方圖均衡化。
4) 雙線性插值重構。雙線性插值能有效防止直接拼接導致的塊狀效應,計算過程如下。
按x方向插值:
(2)
(3)
按y方向插值:
(4)
式中:P為插值點;v為該點像素值;x,y為各點的坐標,詳細見圖2。

圖2 雙線性插值各點坐標Fig. 2 Coordinates of bilinear interpolation points
設定圖像子塊為8,經CLAHE算法增強后的道路圖像如圖3。
圖3(a)、圖3(b)為兩張低照度道路交通圖像;圖3(e)、圖3(f)為對應CLAHE增強之后的圖像;圖3(c)、圖3(d)為對比了圖像增強前后V通道直方圖,顯然低像素值區間像素個數得到很大抑制,增加了高像素值個數,從而一定程度上抑制高亮區域過曝,同時為暗區域提升亮度。

圖3 圖像亮度增強結果Fig. 3 Image brightness enhancement results
由于國內的交通標志主要分為3種顏色:紅色、黃色、藍色,分別對應禁令標志、警告標志和指示標志。因此,要定位可能的交通標志,需將圖像分割為僅包含紅色、黃色、藍色的二值圖像。通過設定閾值,將轉換到HSV色彩空間的道路圖像進行分割。根據經驗,閾值設定如表1。

表1 色彩提取閾值Table 1 Color extraction threshold
為了更好的提取紅色像素,設定了兩個區間的紅色閾值,將鮮亮及較暗的紅色均作為檢測的目標,以降低漏檢率。然后對得到的3個二值化圖像進行輪廓檢測,得到感興趣區域外接矩形。設定約束條件為:
(5)
式中:w、h分別為外接矩形的寬高;s為輸入圖像的面積,以上變量均以像素為單位。
滿足式(5)所述條件的區域即為可能的交通標志的位置。則圖4中方框區域即可能為交通標志所在位置,但只有白色方框中的圖像為真實的交通標志,其余框中圖像標定為負樣本。

圖4 基于色彩特征的交通標志定位結果Fig. 4 Location results of traffic signs based on color features
傳統VGG-16[13]共有13個卷積層、5個池化層及3個全連接層,其結構如圖5。該模型共有6個階段:1、2階段由兩個卷積層和一個池化層組成,提取圖像的低級特征;3、4、5階段均為3個卷積層加1個池化層的結構,通過設定大小為3×3的卷積核,既得到了較大的感受野,同時有效限制了參數量。

圖5 VGG-16結構Fig. 5 VGG-16 structure diagram
傳統的VGG-16網絡模型全局使用3×3大小的卷積核,通過多個卷積層與池化層的堆疊實現深層特征提取達到較好的識別效果,但參數量巨大,導致訓練和預測時需強大的硬件支持,且會耗費大量時間;此外,該模型淺層到深層特征關聯性低,易導致細膩特征丟失。
為加快圖像分類速度并保留細節特征,筆者在傳統VGG理論基礎上,提出基于膨脹卷積結合殘差結構的DC-VGG輕量化道路交通標志快速識別模型,其基本結構如圖6。

圖6 DC-VGG結構Fig. 6 DC-VGG structure diagram
DC-VGG將傳統VGG-16中的經典結構(3個3×3 卷積)替換為空洞率為3,卷積核為3×3的膨脹卷積層,為防止多層膨脹卷積疊加導致的局部信息丟失,引入殘差結構,以確保圖像的細節特征。
筆者所提出的DC-VGG模型由5個普通卷積層、3個池化層、3個膨脹卷積層及3個全連接層構成。相比于傳統VGG-16該模型結構大大簡化,引入膨脹卷積[14]可在卷積核不變的情況下,獲取更大的感受野,從而減少參數量。感受野的計算方式為:
k′=k+(k-1)×(d-1)
(6)
RFi+1=RFi+(k′-1)×Si
(7)
式中:k為卷積核大小;d為空洞率;RFi+1、RFi分別為當前層和上一層的感受野;Si為當前層之前的所有層步長乘積。因此,1個空洞率為3,大小為3×3的卷積核感受野與3個3×3的卷積核感受野相同。
為適應文中輸入交通標志圖像大小,對每個卷積層大小進行了修改,修改后的結果見圖5。在全連接層末端利用Softmax進行概率計算:
(8)
式中:aj、ak分別為輸入Softmax向量的第j和第k個值;W為數據的類別數;Sj為Softmax輸出的第j個值,即輸入圖像屬于第j個類別的概率。對應的損失函數為:
(9)
式中:yj是圖像的真實標簽,維度為L,若y中第i位為1則標志該圖像屬于i類,其余位置的值均為0。
為與原模型形成對比,將傳統的VGG-16模型每個卷積層的大小和通道數分別調整為原來的1/4和1/2,且令全連接層與DC-VGG相同。經調整,新的VGG-16總參數量為3 862 194,而文中的DC-VGG總參數量為953 970,參數量減少了75.3%。
為避免不同類別的交通標志樣本數量不均衡導致分類模型訓練結果出現過擬合現象,筆者應用深度卷積對抗神經網絡擴充交通標志樣本量。
DCGAN實際上是在GAN的基礎之上增加了深度卷積神經網絡[15],由generator(G)和discriminator(D)兩個模塊構成,其結構如圖7。D負責下采樣提取圖像深度信息,判斷圖像真假。通過形狀變化和上采樣,G將輸入的噪聲數據轉換成目標圖像,在每次學習中更新,與D相互博弈,以生成接近真實的目標圖像。

圖7 DCGAN結構Fig. 7 DCGAN structure diagram
文中的實驗環境配置如下,硬件:使用Intel i7-8300 處理器,內存為DDR 8GB,顯卡為NVIDIA GTX1050TI;軟件:實驗平臺為基于Python語言的Tensorflow-GPU深度學習框架。
運用的數據源自CCTSDB公開數據集,共有道路圖像15 000余張,包含大量低照度道路圖像。對其中13 000個圖像進行自適應圖像增強及交通標志定位,除去數據量太少的交通標志類別,得到禁令標志16類,警告標志9類、指示標志14類。合并負樣本數據,最終確定分類模型的輸出維度為34。
由于33類交通標志圖像數據量有不同程度的差距,且相較于總數達到6 450的負樣本數據,差距甚大。因此,在模型訓練之前,先對這33類交通標志數據量增強。DCGAN增強后的部分結果如圖8,圖中左側為實際提取到的標志圖,右側為分辨率56×56的生成結果。通過該方法將每類交通標志圖像數據均擴充至3 000個。

圖8 DCGAN數據樣本生成示意Fig. 8 Schematic diagram of DCGAN data sample generation
將增強后的數據集,按8∶2的比例劃分訓練集和驗證集。得到的訓練結果如圖9。

圖9 訓練結果Fig. 9 Training results
由圖9可知,在不進行數據樣本增強的情況下,驗證集上表現出的準確率最低,且準確率上升的速度最慢;DC-VGG相較于VGG-16準確率上升更快,且具有VGG-16的性能表現。詳細數據見表2。

表2 模型訓練結果Table 2 Model training results
由表2可知,DC-VGG的準確率略高于VGG-16方法,均達到0.98以上;該方法較VGG-16訓練總時長縮短26.6%,平均單個標志預測時長縮減14.4%。
為進一步驗證該方法對交通標志識別的有效性,選擇在剩余2 000余張圖像中隨機抽取800張道路圖像進行識別。經統計,該方法識別準確率達到94.12%,略低于YOLOv3的交通標志檢測模型平均準確率94.6[16],但在1050TI平臺下,文中的方法平均檢測速度達到28.55幀/s,遠高于YOLOv3的8.77幀/s。因此,筆者所提出的方法能保證識別準確率的同時提高辨識的實時性。圖10為低照度不同場景下道路交通標志的定位識別結果。

圖10 道路交通標志識別結果Fig. 10 Road traffic sign recognition results
針對低照度情況下道路交通標志圖像亮度偏低、飽和度過高、圖像模糊、識別不精確等問題,提出了基于膨脹卷積-VGG模型的道路交通標志快速定位與識別方法。通過CLAHE算法增強原始圖像亮度,并運用深度卷積對抗神經網絡算法對樣本進行擴增,實現了道路交通標志快速識別。實驗結果表明,筆者所提出的方法能在低照度、遮擋等情況下都有優異的表現,并且即使在硬件不佳的情況下也能實時檢測高分辨率圖像。由于車載視覺成像設備獲取的道路交通標志標線圖像質量受氣象、光照、環境等因素影響較大,進而直接影響標志標線識別算法的可靠性和魯棒性,在未來工作中,還有進一步研究交通標志特征的自適應提取方法,從而提升識別模型的辨識速度與精度。