徐迎春
(江海職業技術學院智能信息學院,江蘇揚州 225001)
交通標志識別在無人駕駛和駕駛輔助領域有著重要的應用,它為車輛提供準確的交通標志信息。該任務實質是計算機視覺中的實時目標檢測。傳統的目標檢測算法是用SIFT(Scale-Invariant Feature Transform,尺度不變特征變換)和HOG(Histogram of Oriented Gradient,方向梯度直方圖)對圖像進行特征提取,最后使用SVM、Adaboost等分類器進行分類[1]。這些傳統操作在速度和準確性方面很難達到滿意的效果。近年來,基于卷積神經網絡的深度學習算法[2]在計算機視覺目標檢測中取得了很大的成功。其檢測算法大致可以分為兩大類:基于區域生成的二階段目標檢測算法:如R-CN N[3]系列。基于回歸的單階段目標檢測算法:如YOLO系列、SSD、Retina-Net。對于交通標志識別,在實際應用中快速準確地檢測非常重要,單階段檢測算法比二階段算法更能滿足實時的需求。YOLOv3[4]模型是一個精度與速度性價比很高的算法,然而深度學習算法的檢測準確率仍有很大地提升空間。本文對YOLOv3算法進行改進,用于道路場景下的4種主要的交通標志識別。
YOLO(you only look once) 模型把目標檢測當做單一的回歸任務,將圖像劃分為S×S網格,物體bbox(邊界框)中心落到哪個網格上就由該網格對應的錨框負責檢測該物體。YOLOv3模型在滿足精度要求的情況下能實時檢測,在工業界實際項目中大量應用。

圖1 YOLOv3 網絡結構圖Fig.1 Network structure of YOLOv3
YOLOv 3 結合了殘差網絡、特征金字塔以及多特征融合網絡等優秀的方法,具備較好的識別速度和檢測精度[5]。網絡結構如圖1[6]所示。
骨干網絡采用全卷積網絡Darknet-53,主要由卷積層、Batch Normalization(批標準化)及躍層連接組成,激活函數采用Leaky Relu[7]。輸入圖像(416×416×3)經過5個階段,每個階段進行2倍下采樣。在第5個階段得到32倍下采樣,第4階段16倍下采樣、第3階段8倍下采樣。32倍下采樣經過做一系列的卷積得到y1特征圖,同時把32倍下采樣,再經過2 倍的上采樣得到和1 6 倍下采樣相同的寬(w)、高(h),然后在C通道上張量拼接,再經過卷積得到y2特征圖,同理得到y3特征圖。這就實現了多尺度預測,同時還進行跨尺度融合。
錨框是先驗框,在數據集上聚類生成的,能使模型收斂更快,效果更好。YOLOv3中作者在COCO數據集上設置了9種(3×3)的錨框尺寸,應用在不同的特征圖上,每個特征圖上3個錨框。
錨框的尺寸是[pw,ph],起始點在對應網格的左上角,YO LO v3 直接預測出邊界框中心點相對于網格單元左上角的相對坐標和大小[tx,ty,tw,th]。邊界框的中心點、大小在錨框的基礎上通過“微調”得到,即[tx,ty,tw,th]→[bx,by,bw,bh],推導公式如圖2。

圖2 預測框位置和大小計算Fig.2 Prediction box position and size calculation
預測框的中心點移動上用了Sigmoid激活函數,Sigmoid函數取值在(0,1)之間,保證中心點不會偏出網格;在寬、高縮放上用EXP函數,函數值在(0,+∞),保證縮放不會出現負數。
根據YOLOv3 的網絡結構和預測框的信息, 得出YOLOv3的輸入為[N,3,416,416],N為Batch Size一次輸入的圖像數,經過特征提取得到三個輸出分支13×13,26×26,52×52三個尺度的特征圖,每個輸出分支上3個錨框,每個錨框對應預測框有85個信息。85=4坐標+1目標概率+80分類,255=85×3錨框,(COCO數據集上有80個分類)最后網絡的輸出是[[N,255,13,13][N,255,26,26][N,255,52,52]]。
在目標檢測任務里,有幾個關鍵信息是需要確定的:(x,y,w,h),confidence,class。根據關鍵信息的特點,損失函數應該由目標框位置損失、目標置信度損失、類別損失組成[8]。在YOLOv3的論文里雖然沒有明確列出所用的損失函數,但可以從代碼分析出它的損失函數公式(1):

YOLOv3損失函數中w,h依然采用總平方誤差,其他部分的損失函數改為采用二值交叉熵。λcoord表示中心坐標誤差的權重;S表示圖像的網格數;B表示每個網格所預測的框的個數;Iijobj表示第i個網格的第j個預測框是否檢測到了目標(1或0);λnoobj表示當預測框沒有預測到目標時,其置信度誤差在損失函數中所占權重[9]。表示預測框坐標。為預測框內含有目標物體的概率得分。表示第(i,j)預測框屬于類別C的概率。( xi, yi, wij,是訓練標記的值,表示真實目標框坐標、置信度和類別。
NMS(non maximum suppression)非極大值抑制,是目標檢測框架的后處理模塊,用來刪除檢測器輸出的冗余預測bbox。先對預測框進行評分,條件是有物體有對應類別,計算公式是Scorebbox=Scoreobject×Scoreclass,按類別進行分組,按Score進行排序,選取當前類別中Score最大的那一個,按x,y,w,h計算它與其余的bbox的IoU。IoU值大于我們設定的閾值的框舍去。IoU是兩個區域的重疊部分(交集)除以兩個區域的集合部分(并集)所得到的比值。

表1 實驗數據集anchor 尺寸Tab.1 Anchor size of experimental data set

圖3 ResNet 和ResNet-D 網絡結構對照Fig.3 Comparison of RESNET and resnet-d network structures

表2 算法改進實驗結果對照Tab.2 Comparison of experimental results of algorithm improvement
anchor值的大小對目標檢測網絡十分重要。合適的anchor值能加快網絡的收斂速度,降低誤差。本文中采用Kaggle數據集,為了提高本次實驗檢測的定位精度,需要使用K-means算法重新對anchor值進行更新。更新后的anchor尺寸如表1所示。
訓練深度卷積神經網絡時,網絡的規模受限于樣本的數量,而訓練樣本的多樣性又直接關系到深度卷積神經網絡的識別能力。本文在構建虛擬樣本時采用了I mage Mixup方法,將2張圖像合并,增加樣本多樣性,提高模型抗空間擾動的能力,對樣本泛化能力有著明顯的提升作用。
ResNet50模型在計算機視覺中廣泛運用,它提出后許多研究者對它進行了一系列的改進,依次提出了B、C、D三種改進結構。原始ResNet50每個階段的下采樣block會丟失3/4的信息。本文將骨干網絡改為ResNet50-D。如圖3,左邊分支將stride=2從1×1的卷積核上調整到3×3上;右邊分支將原來1×1 stride=2的卷積改為先2×2 stride=2的平均池化,然后接1×1 stride=1的卷積,進行全量信息計算,增強特征提取能力。
本文使用Kaggle數據集road-sign-detection 比賽數據。劃分成訓練集和測試集,總共877張圖,其中訓練集701張圖、測試集176張圖。4個類別:speedlimit、crosswalk、trafficlight、stop。VOC數據格式是指每個圖像文件對應一個同名的xml文件,xml文件中標記物體框的坐標和類別等信息。
本文采用平均精度均值(Average Precision,mAP)和FPS兩個指標對算法模型進行評估。mAP指標通過首先計算每個類別的平均精度(Average Precision,AP),再對所有類別的平均精度求取均值得到[10]。在驗證集上采用mAP作為評價指標,數值越高模型效果越好。FPS(Frames Per Second,FPS)是每秒處理幀數,用于評估一個檢測器的實時性,是檢測速度的直接體現。FPS值越大,說明檢測器的實時性越好。

圖4 trafficlight、stop 檢測效果Fig.4 Detection effect of traffic light and stop
為了驗證提出的改進網絡的有效性, 在百度的aistudio平臺上完成所有與原算法的比較實驗。該平臺搭載有Intel Xeon@2.60 GHz 4 Cores的處理器,內存32GB,圖像處理單元(GPU)采用NVIDIA Tesla V100顯卡,顯存16 GB大小,操作系統為Ubuntu5.4.0終端,深度學習框架為PaddlePaddle1.8.4。載入COCO上的預訓練模型作遷移學習,[9]在訓練階段,初始學習率設置為0.0001,學習率調整倍數gamma設置為0.1,設定批處理參數Batch Size=8,最大迭代次數2000,每200次保存模型。
為了驗證改進之后網絡模型檢測的效果,先用原始YOLOv3模型檢測,在本文數據集上mAP(IoU=0.5)精度為72.3;然后對數據集上anchor重新聚類,用新尺寸檢測,模型的mAP值提升0.8%。采用了Image Mixup圖像增廣技術,模型精度有0.4%的小量提升。采用ResNet50-D作骨干網絡,模型檢測精度提升約1%。最后分別選取改進前和改進后網絡訓練得到的權重進行最終對比實驗,改進后模型檢測精度提升2.1%。實驗對比見表2。
由此可以看出:這些技巧對模型精度提升有幫助。因為它們在訓練過程中使用,且并沒有引入額外計算量,所以預測速度幾乎不變。由于深度學習模型的訓練依賴大量數據,本數據集圖片數量不多,所以預測精度還有待提升。
改進后的網絡模型的檢測效果如圖4、圖5[10],模型能準確識別標志。

圖5 speedlimit、crosswalk 檢測效果Fig.5 Detection effect of speedlimit and crosswalk
本文提出了一種基于YOLOv3改進的目標檢測算法,在交通標志識別任務中取得較好的效果,能夠準確快速地檢測出四種交通標志。交通標志識別易受到光照環境,遮擋、重疊,大、小目標等多因素影響,算法還需繼續優化,從而滿足實際需要。