董朋林
(四川大學計算機學院,成都610065)
基于計算機視覺的交通標志識別方法是近幾年的研究重點,現有的識別系統往往分為兩部分,交通標志檢測和交通標志識別。交通標志檢測常使用顏色特征[1-3]、形狀特征[4-6]以及兩者相結合[7-9]的辦法。由于交通標志處于室外環境,基于計算機視覺的檢測方法不僅容易受到光照的影響,而且容易受到交通標志褪色、形變和遮擋的影響。為了解決該問題,不少研究人員提出了消除光照影響的辦法,例如使用多顏色空間或者自動白平衡等方法[10-11]。在形狀檢測方面,有Hough 變換[12]、最小二乘法擬合[6]等常用辦法。有研究員使用了顏色與形狀特征結合的辦法,但是容易存在計算量大、耗費時間的問題。
而交通標志識別上,常用的方法是先提取紋理特征例如HOG 特征[13]、Hu 不變矩和Zernike 不變矩特征[14]、Haar[15]特征等,然后使用SVM 或者AdaBoost 等分類器進行分類。近年來,深度學習算法在物體識別上取得了不錯的效果,例如R-CNN 系列算法[16]。也有研究員將該方法用以交通標志的識別和檢測,但是交通標志通常只占整個圖像的很小一部分,而該系列算法對于小目標的識別效果不是特別好。
為了解決當前算法存在的問題,本文針對文獻[17]提出的RGB 空間顏色分割算法進行了改進,能較好地降低光照對顏色分割的影響。然后使用HOG 與LBP特征結合的融合特征訓練SVM 分類器,實現交通標志的檢測和基于顏色的初分類。最后設計了兩個相同結構的十層卷積神經網絡,對兩種類別的交通標志精確分類。整個算法檢測與識別交通標志的流程如圖1 所示,經試驗表明,該方法能從復雜的街道實景中檢測到交通標志,部分小交通標志依然有較好的效果,并以較高的分類準確率對36 種交通標志精確分類,且具有魯棒性高和抗干擾性強的優點。

圖1 算法流程
為了減小候選ROI 的數量,需要先對圖像進行預處理,大體流程如圖2 所示。

圖2 顏色分割流程
前3 個步驟需要在YUV 顏色空間中處理,該顏色空間的一個重要特性就是亮度信號Y 和色度信號U、V是分離的。為了消除光照的影響而不使物體的顏色發生變化,只需要對Y 通道進行處理而保持U、V 通道不變。計算Y 通道直方圖,然后進行直方圖均值化,使整副圖像的像素Y 通道值占有更多的級別且均勻分布,提高了對比度。處理過程如下:
(1)按照公式(1),將RGB 顏色空間轉換為YUV顏色空間:

(2)計算Y 通道直方圖H,并進行歸一化,使直方圖分布到255 個級別,計算直方圖積分(式(2)),然后將計算后的結果當作一個查找表,將原始圖像各像素點的Y 值,轉換為新的值Y’;

(3)計算均衡之后的Y’通道平均值Yavg;
(4)計算均衡之后Y’值大于Yavg部分的平均值YHav和Y’值小于Yavg部分的平均值YLav;
(5)設定預期的Y’通道平均值YDavg、大于Yavg部分的期望平均值YDHav和小于Yavg部分的期望平均值YDLav,本文中設置YDLav=120,YDavg=160,YDHav=200;
(6)按照公式(3)計算每個像素點新的Y 通道值;

(5)再次使用公式(1),從YUV 顏色空間轉回RGB顏色空間,然后轉換到HSV 顏色空間;
(6)結合YUV 空間和HSV 空間信息從原圖分割出紅色和藍色,并二值化(式(4));

(7)形態學處理,并提取輪廓。
本部分各階段處理效果如圖3 所示。

圖3 顏色分割
在經過顏色分割之后,過濾掉了原始圖像中的大部分信息,但是還存在很多的干擾,本部分主要闡述從剩余輪廓篩選出交通標志的過程。
根據剩余輪廓在原始彩色圖像上提取最小包圍矩形作為候選區域ROI,在ROI 內提取HOG 特征和LBP特征,用于訓練兩個不同的SVM 分類器,分別用于區域內是否含有紅色和藍色交通標志。
方向梯度直方圖(Histogram of Oriented Gradient,HOG)特征是一種常被用來做物體檢測的特征描述子,該特征通過計算和統計設定區域內的方向梯度直方圖得出。含有交通的區域會有明顯的圓形、矩形或者三角形邊緣,其方向梯度直方圖與不含有交通標志的區域有明顯的區別。圖4 為提取HOG 特征之后的效果。經過大量實驗,在樣本大小為64×64 的條件下,設置block 為16×16,cell 為4×4,bin 等于9 時,效果最好。

圖4 交通標志的HOG特征
使用單獨的HOG 特征無法區分某些極端情況下候選ROI 中是否含有交通標志,因此采用LBP 特征與HOG 特征融合形成最終的特征。局部二值模式(Local Binary Pattern,LBP)也是一種計算機視覺中常用的特征算子,LBP 特征具有灰度不變性、旋轉不變性和計算簡單的特點。在形成該特征的時候,同樣需要將原圖劃分為若干區域,統計每個區域內的LBP 的歸一化直方圖,連接每個區域的統計直方圖成為最后的特征向量。經過實驗取每個區域為8×8 大小時,效果最好。
根據前文描述的方法提取HOG 特征,特征維度為6084 維;提取LBP 特征,特征長度為576 維,采用特征層融合的方式將兩個特征串行為6660 維融合特征。由于特征長度過長,直接輸入到SVM 中,訓練和分類過程都會非常緩慢,故采用主成分分析(PCA)進行特征降維。經實驗,降維后保留1500 維左右的特征能達到最好的效果。
本實驗采用以徑向基函數(RBF)為核函數的SVM作為分類器,訓練了兩個分類器分別區分含有紅色交通標志的ROI、不含交通標志的紅色ROI 和含有藍色交通標志的ROI、不含交通標志的藍色ROI。正負樣本來自訓練集經過顏色分割后的局部彩色圖像,正樣本為含有交通標志的區域,負樣本為不含交通標志的區域,如圖5 所示。

圖5 正負樣本
經過SVM 分類之后,樣本已經被初分為了3 類,分別是含有紅色交通標志、含有藍色交通標志和不含交通標志,接下來使用卷積神經網絡對前兩類進行精確分類。卷積神經網絡由一系列卷積層和池化層構成,每一層的輸入數據為前一層的輸出數據,最后再連接2-3 個全連接層,用于輸出最后的分類結果。將輸出結果與物體的真實類別相比較,得出損失函數值,通過最小化損失函數來調整每一層的參數。
在文獻[19]中,Cires an D 等人設計了一個多列深度神經網絡用于交通標志的分類,在GTSRB 測試集上取得了比肉眼識別準確率跟高的結果,達到了99.46%的準確率。他們在將樣本送入網絡之前,先做了5 種不同的預處理,每種預處理之后的結果單獨輸入5 個不同初始化但是具有相同結構的9 層卷積神經網絡中。這樣的多列深度神經網絡雖然在該數據集上能取得很高的效果,但是訓練該神經網絡的時間多達幾十個小時,且在識別的時候無法滿足實時性需求。因此,本文設計了2 個十層卷積神經網絡分別用于分類紅色和藍色交通標志,訓練時間大幅度減少,而且還有很高的分類精度,在TT100K 的單純用于測試分類的測試集上能達到98%左右的準確率。

表1 神經網絡結構
網絡結構如表1 所示,在前6 層使用了兩個卷積層接一個池化層的模型代替了卷積層與池化層交替的結構,然后在每一個卷積層后面增添非線性激活函數ReLU。在池化層中,使用了尺寸為2×2,步長為2 的最大池化。在池化層2 后面再接上交替的卷積層和池化層進一步提取特征。最后兩層是全連接層,在每一個全連接層后面駕駛drop 率為0.5 的dropout 層防止過擬合,最后一個全連接層的神經元個數為最后要分類的交通標志的類別數目。在損失函數的選擇上,使用了Softmax 作為損失函數,并使用了Adam 作為優化損失函數的方法。
為了訓練該神經網絡,我們使用了TT100K 數據集[20],關于該數據集的詳細介紹在下一節中。該數據集各類別的樣本數量分布不均衡,所以在訓練之前對數據集進行了增廣。保持原始樣本數量大于1000 的類別的樣本數量不變,對數量小于1000 的樣本我們使用了兩種方式增廣數據集,一是將原始樣本隨機旋轉[-5°,5°],第二中方式是將原始樣本隨機平移[-10,10]個像素位置,這樣就使得樣本數量為原始數量的3 倍。各類別樣本數量如圖8 所示。

圖6 每種類別的樣本數量
在訓練的時候,將訓練集的20%作為驗證集,并設置了可變學習率,當迭代進行到某個次數的時候,將學習率變為當前學習率的1/10,初始學習率設置為0.001。圖6 為訓練過程中,準確率和損失的變化趨勢。該網路的一個明顯優勢是訓練時間,與動輒訓練需要幾十個小時的深度神經網絡相比,訓練本網絡使用的時間不足1 個小時。

圖7 準確率與損失趨勢(左為紅色交通標志,右為藍色交通標志)

圖8 數據集中包含的紅藍交通標志類別
為了評估本方法的效果,在參考了其他文獻的數據之后,在交通標志檢測和識別方面與一些典型方法做了多個相關對照實驗,最主要有:一是與傳統的交通標志檢測算法進行了對比,二是與完全使用神經網絡的辦法就檢測與識別同時進行時的對比。所有實驗均在一臺CPU 為Intel Core i7、GPU 為GTX 1080、64G 內存的Linux 計算機上進行。
本文使用Tsinghua-Tencent 100K[20]數據集對交通標志的檢測與識別進行實驗。該數據集是適合中國道路情況的、全新的開放交通標志基準,由清華大學與騰訊街景聯合推出的。整個數據集有100000 張圖片,其中包含交通標志的圖片有9000 余張,這些圖片是不同條件下的騰訊街景圖像,大小為2048×2048 像素。包含交通標志的圖片又分為test 測試集和train 訓練集,其中test 集包括3073 張、train 集包括6107 張。數據集中包括大量各種光照條件下的樣本,而且部分標志有形變、遮擋、褪色和與背景顏色相似等情況出現,因此該數據集能夠較好地測試交通標志識別分類算法應對各種復雜情況下的能力。數據集中包含的紅色和藍色交通標志類別如圖8,幾乎涵蓋了所有中國道路上常見的紅藍標志。在測試的時候,部分交通標志樣本數量實在過少,故選取了樣本數量大于80 的類別,共計36 類,并按上一節所述方法進行增廣。
傳統的方法對于圓形交通標志的檢測使用Hough變換或者最小二乘擬合的方法,使用機器學習的辦法則使用HOG 特征加SVM 或者Haar 特征加AdaBoost的辦法,在相同的數據集上,我們與這幾種方法進行了對比,對比結果如表2 所示。從下表可以看出,本文的方法與其它方法相比,無論是在準確率還是在召回率上都有明顯的優勢,只是在處理時間上,雖然比Hough變換所用時間少,但是卻比最小二乘擬合多,這暴露出了本方法的一個可以改進的地方。
在實驗過程中也發現,本方法在有遮擋、形變和旋轉的情況下依然能從圖中檢測到交通標志,而傳統方法則很難處理該情況。機器本方法則不使用形狀進行判別,從而避免這兩種情況的干擾。相比于使用單特征的機器學習方法,本方法有更高的準確率和召回率以及更低的漏檢率。

表2 檢測準確率
僅用本文提出的網絡用于分類能取得98%的準確度,但是將檢測階段聯合在一起的準確度則更能說明效果。我們主要與文獻[20]中提出的卷積神經網絡和經典的Fast R-CNN[21]進行了比較。表3 顯示的是與這兩種方法相比各類別的準確率(FA 為Fast R-CNN 的準確率,TA 為文獻[20]的準確率,OA 為本文方法的準確率),從表中數據可以看出,雖然在部分類別的分類正確率上不如文獻[20]中的方法和Fast R-CNN,但是總體上準確率較穩定,在部分類別的識別準確率上有明顯優勢,Fast R-CNN 的準確率約為0.50,文獻20 的準確率約為0.88,本文的準確率約為0.91。不過在實驗中發現,三種方法都存在一定程度上的漏檢,尤其是Fast R-CNN,原因在于交通標志相對于整個圖片來說所占比例太少,暴露出不管是傳統方法還是深度學習的方法,在小目標的檢測上都需要提高。
本文主要說明了一種針對街道實景交通標志的高效檢測和識別方法,對方法的各主要步驟進行了詳細的說明。與傳統方法相比,使用了YUV 與HSV 顏色空間結合的顏色分割方法。針對傳統的使用顏色分割+形狀匹配的方法不能有效解決遮擋、形變和旋轉的情況,提出了使用顏色分割和SVM 檢測的方法,在顏色分割之后使用HOG 與LBP 結合的融合特征用于判定ROI 是否含有交通標志。在精確分類的時候,使用了2 個具有相同結構的10 層卷積神經網絡進行分類,與其他的深度學習方法相比,在分類準確率上有明顯的優勢。
在未來,還需要對本方法進行改進,希望能降低檢測所用時間,針對小目標也能有不錯的檢測效果。

表3 各類別分類準確率