孫 超,溫 蜜,景俐娜
上海電力大學 計算機科學與技術學院,上海 200090
隨著人工智能和交通網絡技術的不斷發展,計算機視覺算法服務于自動駕駛領域中的交通標志檢測的需求也日益增加。交通標志檢測[1]是高級輔助駕駛系統和自動駕駛系統中的子任務,對維護駕駛員的安全有著重要作用。但由于目標尺寸小、光照變化、部分遮擋、背景雜亂等問題[2],在實際的自然場景中對交通標志進行檢測還存在一些困難。
過去,傳統的交通標志檢測方法主要通過提取目標的顏色、形狀等特征進行分類。Li等人[3]提出一種Ohta空間的顏色概率模型來計算目標的顏色概率圖,提取交通標志的輪廓信息進行檢測。Liang 等人[4]為目標的每個類別設計了一組模板,用于匹配每類交通標志的形狀。Wang等人[5]在德國交通標志檢測大賽中,采用方向梯度(histogram of gradient,HOG)特征和支持向量機(support vector machine,SVM)分類器的直方圖來檢測交通標志并獲得了高分。Xiao等人[6]使用BCNN(Boolean convolutional neural networks)結合HOG特征對GTSDB[7](German traffic sign detection benchmark)基準上的交通標志進行識別。上述方法雖然提高了交通標志的檢測精度,但在實時性方面依然難以滿足工業應用的要求。
自2012 年AlexNet[8]在ImageNet[9]圖像分類比賽中獲得巨大成功后,基于CNN(convolutional neural networks)的目標檢測方法逐漸成為主流,大致可分為兩類:多階段目標檢測和單階段目標檢測。
多階段目標檢測方法先提取圖像候選框區域,然后基于候選框做二次修正得到檢測結果。早期的Overfeat算法[10]利用多尺度滑動窗口對目標進行檢測。RCNN(region-CNN)算法[11]利用選擇性搜索[12]策略來建立ROI(region of interest)區域,并使用SVM 進行最終預測。為了檢測不同尺寸的圖像,Fast R-CNN[13]基于RCNN對SPP-Net(spatial pyramid pooling networks)[14]進行改進,使得網絡可以實現端到端的訓練。考慮到Fast R-CNN中選擇性搜索的巨大時間成本,Faster R-CNN[15]提出了一種RPN(region proposal network)網絡,通過共享卷積層從準確性上進一步提升了目標檢測器的性能。
單階段檢測方法直接對圖像進行檢測,在犧牲精度的基礎上提升了檢測效率。其中YOLO(you only look once)[16]算法將物體檢測作為回歸問題進行求解,提升了檢測速度。YOLOv2[17]為了解決YOLO 檢測精度低的問題,在其基礎上增加先驗框、多尺度訓練等策略。隨后,劉紫燕等人[18]在YOLOv3[19]算法的基礎上融合SPP網絡并對FPN(feature pyramid network)結構進行改進,提升了交通標志的檢測精度。SSD(single shot multibox detector)[20]算法融合YOLO的回歸思想和Faster R-CNN的Anchor 機制,使用多個不同尺度的特征圖對目標進行檢測,在檢測精度和速度上達到了更好的平衡。而在實際的道路交通中,交通標志擁有更小的尺寸、更復雜的背景信息,單階段檢測算法雖然能在大多數目標上取得較好的檢測結果,但在交通標志檢測的應用場景中還存在一些不足。
綜上所述,由于單階段檢測算法具有良好的實時性能,本文在SSD 網絡的基礎上,提出一種改進的交通標志檢測方法。首先對SSD的特征提取網絡進行改進,提出新的淺層特征提取方法,從不同維度提取目標的特征信息,增強交通標志的感受野區域。同時,對網絡中的深層特征圖進行處理,通過條件參數卷積來加深網絡模型容量,提升交通標志的特征表達能力。其次引入通道注意力機制,通過改進全連接層來減少通道降維對模型的影響,并在特征通道中融入更多目標的空間位置信息,增強交通標志在特征圖中的顯著性。最后優化算法的默認框參數,調整默認框的尺寸和數量來提升SSD模型對交通標志的檢測效果。
SSD 檢測算法對骨干網絡VGG16 進行改進,將全連接層FC7更改為卷積Conv7層,同時在后續的特征提取網絡中添加Conv8、Conv9、Conv10 和Conv11 這4 個卷積塊。通過級聯卷積的方式為目標生成不同尺度的特征圖,并將得到的38×38、19×19、10×10、5×5、3×3 和1×1 大小的特征圖輸送到后續的回歸和分類任務分支中。其中,淺層特征圖層Conv4_3和Conv7用于識別小目標,而深層的Conv8_2、Conv9_2、Conv10_2和Conv11_2特征圖用于檢測中等或大物體。SSD的網絡結構如圖1所示。

圖1 SSD網絡結構Fig.1 SSD network structure
SSD 在不同尺度特征圖的每個單元上設置不同尺寸和寬高比的默認框,通過默認框的設計來降低網絡訓練的難度。一般來說,每個單元都會設置多個默認框,但在尺寸和寬高比上會有一些變化。其中Conv4_3 特征圖層上的尺寸進行單獨設計,產生的最小尺寸為30,其余特征圖中默認框的大小由式(1)計算:
其中,m為特征圖的數量,Conv4_3 層的默認框尺寸是單獨設計的,因此m=5。Sk表示默認框尺寸與原圖的比例,其中Smin=0.2,Smax=0.9。
在SSD的不同尺度特征圖中,對每個單元上的默認框設置不同的寬高比,來提高網絡對不同形狀目標的魯棒性。每個默認框的高度和寬度由式(2)計算:
對寬高比tr=1 的默認框,在其基礎上產生一個新尺寸的默認框,公式表示為:
因此,總共可以產生6 個不同寬高比的默認框,寬高比的設計如圖2 所示。不同特征圖上每個默認框的中心坐標為:

圖2 默認框的寬高比Fig.2 Aspect ratio of default box
其中,|fk|為特征圖的尺寸。通過將不同尺度特征圖中的特征映射與不同比例和寬高比的默認框結合起來,SSD網絡可以適應不同大小和形狀的目標。
SSD 檢測算法通過不同尺度的特征圖和設定的默認框對目標進行檢測,在顯著的目標上取得了較好的檢測效果,但由于交通標志目標在原始圖像中的分辨率較低,特征信息經過卷積、池化等操作后將逐漸減少,嚴重影響交通標志的檢測精度。為解決這個問題,本文在SSD的基礎上進行改進優化,提出了基于改進特征提取網絡、融合注意力機制和優化默認框參數的檢測方法,通過實驗和測試,驗證了改進的算法在交通標志檢測上的有效性。
本章將對改進的網絡模型進行介紹,其中包括本文提出的特征提取方法、改進的通道注意力機制以及SSD的默認框參數優化。
SSD 利用不同卷積塊中的特征圖對不同大小的目標進行檢測,為了更好地提取復雜場景下交通標志的特征信息,本文提出新的特征提取方法。首先,從不同的維度提取交通標志的位置信息和方向感知,并將其聚合到新的特征圖中,以此來增強目標特征的表達能力。其次,引入條件參數卷積(CondConv)[21]的方法,對SSD網絡的Conv8_2、Conv9_2、Conv10_2 和Conv11_2 特征圖層進行卷積操作,利用特例化的卷積內核來減少網絡開銷并提升模型的表達能力。改進后的SSD 網絡結構如圖3所示。

圖3 改進SSD網絡結構Fig.3 Improved SSD network structure
(1)特征提取網絡
由于高分辨率特征圖中包含更多交通標志的特征信息,本文選取SSD網絡的淺層Conv4和Conv7卷積塊進行特征提取,整個過程如圖4所示。

圖4 淺層特征提取網絡Fig.4 Shallow feature extraction network
為了更好地保留目標空間方向的位置信息,使用(H,1)和(1,W)大小的池化內核對輸入特征圖進行池化操作,沿水平和垂直方向將其分解為兩個一維特征,大小分別為C×H×1 和C×1×W。隨后通過兩個不同尺寸的卷積內核進一步提取特征信息,并對H×W×C/2 大小的特征圖進行融合,經過BN 和ReLU 激活函數處理后將其輸送到后續的特征提取網絡中。此外,為了更好地提升交通標志的感受野區域,對特征圖進行分組卷積,利用C組1×1大小的卷積內核來學習更多的特征信息,最后將編碼后的特征圖輸送到SSD網絡的分類和回歸任務分支中。
通過本文提出的特征提取網絡對特征圖進行處理,目標的空間位置信息被很好地保存下來,同時交通標志的感受野區域進一步增強,可以有效地提升復雜背景下交通標志的檢測精度。
(2)條件參數卷積
在SSD的后續特征提取網絡中,對4個不同尺度的輸入特征圖進行特例化的卷積計算,隨后再使用得到的卷積核對特征圖做卷積操作得到對應的輸出,整個卷積過程的數學表達式為:
其中,σ表示激活函數,n為專家混合的數量,Wi為SSD網絡中原始卷積層的內核維度,而αi=ri(x)是一個依賴于輸入特征圖的標量權重,由具有學習參數的路由函數計算得到:
條件參數卷積的應用相當于多個專家公式的線性組合,數學公式表示為式(7),其中每個專家對應于傳統的靜態卷積。因此,條件參數卷積具有與n個專家線性混合相同的容量,但是計算效率更高,因為只需要對一個昂貴的卷積操作進行運算。
圖5 為條件參數卷積示意圖,可以看出,對輸入特征圖(H×W×C)做全局平均池化(global average pooling,GAP)得到C維向量之后,通過FC層獲取n維向量(對應n個專家的加權值),然后利用Sigmoid 函數將值約束到[0,1]中來作為n個卷積核參數的加權權重,最后與輸入特征圖進行組合可生成具有權值的新特征圖,并將該層特征圖用于后續的任務分支中。

圖5 條件參數卷積Fig.5 Conditional parameter convolution
本文對SSD模型的特征提取網絡進行改進,單獨處理網絡的Conv4_3、Conv7層特征圖,通過特征提取網絡對交通標志的空間坐標信息和位置信息進行探索,讓網絡學到更多目標的細節信息,并進一步增強淺層特征圖上目標的感受野區域。同時,使用條件參數卷積內核對深層特征圖進行計算,通過提升核生成函數的復雜性來提升模型的容量,在減少網絡參數的同時增強交通標志的特征表達能力。
為了使SSD模型關注到更多的交通標志目標,本文引入注意力機制并進行改進。通道注意力機制首次由SE-Net[22]提出,通過建立特征之間的空間相關性,提升卷積神經網絡的性能,其網絡結構如圖6所示。

圖6 SE-Net結構Fig.6 SE-Net structure
具體來說,給定輸入特征,SE-Net 對每個通道進行全局平均池化(GAP),然后使用兩個全連接層(FC)和Sigmoid函數來生成通道權重。盡管這種策略被廣泛用于后續的通道注意力模塊中,但降維操作會破壞通道與權重之間的直接對應關系,同時SE-Net 只對特征通道進行處理,忽視了目標的空間特征信息。基于此,本文在SSD 網絡中融入通道注意力模塊,并對其進行改進,強化特征通道之間的信息交互,優化通道與權值的對應關系,改善目標的空間特征表達。
本文使用的通道注意力結構如圖7 所示。給定輸入特征圖χ∈RH×W×C,首先沿著通道方向將其分為2個分支,即χ1,χ2∈RH×W×C/2。其中χ1利用通道間的相互關系生成通道注意力圖,χ2通過特征之間的空間位置關系形成空間注意力圖。

圖7 改進通道注意力結構Fig.7 Improved channel attention structure
對于通道注意力子圖,使用全局平均池化進行編碼,生成大小為1×1×C/2 的特征通道。同時為了減少SE-Net中全連接層帶來的降維影響,使用一維卷積內核來學習通道之間的直接對應關系,隨后通過簡單的Sigmoid 函數將其編碼為不同的權重數值,并最終與輸入特征圖進行相乘操作,得到具有更強目標相應的子特征圖。
同時,為了更好地學習交通標志在特征圖中的位置敏感度,對χ2輸入使用1×1 的卷積內核得到H×W×1的特征圖,然后使用Sigmoid 函數進行激活,并與輸入χ2進行空間信息校準生成空間注意力子圖。最后對兩個不同的特征子圖進行融合操作,輸出具有交通標志關鍵特征信息的新特征圖,并將該特征圖用于SSD網絡的后續特征提取網絡中。
綜上所述,由于高分辨率的特征圖擁有更豐富的交通標志特征信息,本文選擇在SSD 網絡的淺層特征圖Conv7 后加入通道注意力模塊。通過對Conv7 層特征圖進行分解,并行提取目標的重要感知信息和空間位置信息,增強交通標志目標在特征圖上的顯著性,提升SSD模型對交通標志的檢測精度。
SSD算法利用不同尺度的特征圖對目標進行檢測,每層特征圖上設置不同尺寸和數量的默認框。為了讓默認框更好地框定目標并減少復雜背景信息的干擾,本文根據交通標志尺寸小的特點對默認框的尺寸和數量進行優化,將SSD 網絡使用的Smin和Smax設計為0.14和0.86,并將用于檢測大目標的Conv10_2 和Conv11_2層特征圖上的默認框數量調整為0,來減少網絡參數。改進后的目標默認框尺寸和數量如表1 所示。通過減少默認框的尺寸和數量,可以有效避免交通標志因尺寸小而無法與默認框匹配的問題,同時可提高SSD對交通標志的檢測速度。

表1 每層特征圖上的默認框尺寸和數量Table 1 Default box size and number on each layer of feature maps
為了驗證本文方法的有效性,在CCTSDB數據集上與其他方法進行對比分析,并在該基準上對提出的方法進行消融實驗,同時通過LISA 數據集來驗證改進的SSD檢測模型在其他交通標志上的魯棒性。
3.1.1 CCTSDB數據集
CCTSDB為中國交通標志數據基準,其中包含來自城市道路和高速公路等場景的15 734張圖像,分辨率為1 000×350~1 024×768,數據類別為mandatory、prohibitory、warning。
本文在CCTSDB數據集中選取不同場景、相似度較低的3 105張圖片,挑選合適的圖片進行數據增強操作,對符合條件的圖片加入雨、霧、雪和多云4 種不同的天氣因素進行擴充,使其具有更多的自然天氣場景,擴充后的數據集示例如圖8所示。通過數據增強操作,共有4 000 張圖片用于訓練和測試,其中3 200 張訓練圖片,800張測試圖片,對本文改進的算法進行評估。

圖8 基于天氣因素的數據增強Fig.8 Data enhancement based on weather factors
3.1.2 LISA數據集
美國交通標志LISA 數據集提供6 610 張分辨率為648×480~1 024×522的圖像,共有47個類別。該數據集中大多數類別的實例數較少,因此本文選擇實例數較多的4類交通標志進行檢測,分別為stop、pedestrianCrossing、singalAhead、speedLimit。經過對LISA 數據集進行處理,將3 764張圖片用于訓練,941張圖片用于測試。
本文實驗基于Ubunta18.04操作系統,CPU為Intel?CoreTMi9-9900K,GPU為NVIDIA GeForce 2080,16 GB顯存,訓練及測試在深度學習Pytorch框架上完成。
為了對改進的SSD交通標志檢測算法進行評估,選用查準率(precision,P)、召回率(recall,R)、AP 和mAP作為評價指標,計算公式為:
式中,TP表示檢測到的目標類別與真實目標類別一致的樣本數量;FP為檢測到的目標類別與真實目標類別不一致的樣本數量;FN是真實目標存在但未被網絡檢測出來的樣本數量;N為目標類別數。
3.3.1 與其他方法的性能比較
本小節將本文改進的SSD 檢測算法與其他先進的方法進行比較,其中包括Faster R-CNN,YOLO 系列的YOLOv3、YOLOv4[23],基于Anchor-free的CornerNet[24]、CenterNet[25]方法以及SSD的不同改進DSSD[26]和FSSD[27]算法。
表2 為不同算法在CCTSDB 數據集上獲得的類別AP 值,其中SSD300 和SSD512 模型在3 類交通標志上獲得的準確率分別為84.9%、83.1%、91.0%和85.0%、85.9%、90.7%。相比于其他常用的檢測方法,SSD 在具體數據類別上并沒有取得較好的優勢。通過本文的方法對其進行改進,SSD300 和SSD512 模型的類別AP 值分別提高了8.1個百分點、9.5個百分點、5.1個百分點和8.8個百分點、10.2個百分點、5.9個百分點。與其他的檢測算法相比,本文改進的SSD交通標志檢測算法在不同的輸入尺寸下均取得了較好的檢測結果,具有更好的準確性。

表2 不同算法的AP對比Table 2 AP comparison of different algorithms
為了驗證本文所提方法的實時性,對各模型的檢測速率進行對比,實驗結果如表3 所示。可以看出,本文提出的方法獲得了較好的檢測結果。具體來說,Faster R-CNN 的檢測準確率為83.9%,但檢測速度只有15.4 FPS。YOLOv4可以在YOLOv3算法的基礎上進一步提升mAP 和FPS,檢測單張圖片只需11 ms。Center-Net 算法的mAP 超過了SSD512 模型,檢測精度為87.7%。與其他的檢測算法相比,本文改進的SSD300可以獲得更高的準確率,mAP 達到93.9%,檢測速度為87.5 FPS,檢測圖片所需的時間也僅為11 ms。隨著輸入圖像的分辨率的提升,檢測精度也進一步提升,改進SSD512 模型的mAP 為95.5%。實驗表明,本文改進的SSD檢測算法具有良好的實時性和準確性,可滿足實際場景的檢測需求。

表3 不同算法的性能對比Table 3 Performance comparison of different algorithms
此外,根據上述幾種檢測方法和改進的SSD300 在三種數據類別上的Precision 和Recall 值,繪制了P-R 曲線,如圖9所示。可以看出,本文改進SSD網絡的P-R曲線在不同數據類別的檢測結果中,都能夠包圍住其他的檢測模型,說明本文方法可以有效地檢測出其他算法未檢測到的交通標志。

圖9 不同算法的P-R曲線Fig.9 P-R curves of different algorithms
3.3.2 消融實驗結果與分析
本小節對提出的方法進行消融對比分析,實驗結果如表4所示,其中改進1、2、3、4分別表示改進SSD300的淺層特征提取網絡,對深層特征圖進行條件參數卷積,在Conv7層特征通道后融入注意力模塊,以及對默認框參數進行優化。
從表4 中可知,對淺層特征提取網絡進行改進,充分學習交通標志的位置感知和方向感知信息,可將檢測精度提升4.7個百分點,但檢測速度有所下降;使用條件參數卷積內核對SSD網絡的深層特征圖進行處理,可有效增強交通標志的特征表達能力,帶來更少的網絡開銷,相比于SSD 算法依然能保持較高的檢測速率;引入通道注意力模塊來增加目標的顯著性可提升檢測的平均準確率,mAP 達到89.9%,同時由于對特征通道進行分組處理,減少了部分網絡參數,檢測每張圖片需要的時間僅為11 ms;默認框參數的優化進一步提升了檢測速度。最后結合上述四種不同的改進方法,相對于SSD檢測模型,本文改進的SSD 將檢測精度提升7.6 個百分點,檢測速度達到87.5 FPS,檢測圖片所需的時間與SSD模型一樣,這表明本文改進的交通標志檢測算法具有較好的應用價值。

表4 消融實驗結果Table 4 Results of ablation experiments
為了進一步驗證本文改進的SSD 檢測模型對其他交通標志的魯棒性,在LISA數據集上進行實驗,相關實驗結果在表5中進行展示。

表5 整體檢測性能對比Table 5 Overall detection performance comparison
通過對比表5中的檢測結果可知,改進后的SSD300和SSD512 模型在LISA 數據集上獲得的mAP 分別為94.6%和96.7%,相比于SSD提升了8.5個百分點和6.2個百分點。同時,改進后的SSD檢測算法依然有較高的檢測速率,表明本文提出的方法在其他交通標志數據集上具有良好的魯棒性。
本節隨機選取部分圖片進行可視化,圖10為CCTSDB數據集上的檢測結果,從左到右分別為SSD檢測結果和改進的SSD檢測結果。可以看出,在不同的自然交通道路場景中,本文改進的SSD模型均可檢測出交通標志類別,并在SSD 算法的基礎上進一步提升了檢測精度,可滿足工業應用的高準確性要求。

圖10 CCTSDB數據集可視化Fig.10 CCTSDB dataset visualization
LISA 數據集的可視化結果如圖11 所示。可以發現,不管在什么樣的拍攝圖片中,本文改進的SSD 模型依然有很好的表現,不僅可以檢測到SSD漏檢的交通標志,還可以在原有的基礎上提升檢測精度。綜上各種環境下的圖片檢測結果可知,改進后的SSD算法在交通標志檢測方面具有良好的性能。

圖11 LISA數據集可視化Fig.11 LISA dataset visualization
針對無人駕駛場景中交通標志檢測精度低、實時性差等問題,本文對SSD算法進行改進。首先設計新的特征提取網絡來學習目標的位置和方向信息,增強交通標志的特征表達能力,同時通過條件參數卷積來提取目標的重要特征信息。其次在網絡中加入通道注意力模塊,增強交通標志目標的顯著性。最后對默認框尺寸和數量進行優化,提升網絡對交通標志的檢測效果。改進后的SSD 算法在保持檢測速率的同時將檢測精度提升了7.6個百分點和8.5個百分點,并對復雜自然場景中的交通標志具有更好的魯棒性。在未來的研究工作中,將關注如何在高分辨輸入圖像的前提下,提升SSD模型對交通標志的檢測速度。