劉 鳳,李 華,南方哲,錢育蓉
(新疆大學 軟件學院,新疆 烏魯木齊 830046)
交通標志的檢測與識別分為兩種:基于傳統方法、基于深度學習[1]算法。文獻[2-5]采用傳統算法,根據交通標志的顏色和形狀特征進行判別。但是在復雜場景中交通標志受遮擋、褪色、天氣狀況等影響,增加了檢測難度。
目前,基于深度學習算法被廣泛應用到交通標志的檢測與識別領域。Zhu等[6]結合AlexNet和OverFeat框架對交通標志進行分類和回歸,準確率達到88%。文獻[7,8]采用Faster R-CNN[9]對交通標志進行了檢測,但特征學習的網絡權重規模較大。He等[10]提出深度殘差框架解決深層網絡退化問題。Redmon等[11]提出的YOLOv3采用簡化的殘差塊對目標進行檢測。Shen等[12]提出的DSOD算法引入DenseNet[13]思想進行檢測。總體看來,基于深度學習的方法取得顯著成果,但是仍面臨以下挑戰:
(1)在自然場景下所采集的圖像具有物體遮擋、拍攝角度、形狀畸變等問題影響特征信息的提取,導致準確率下降;
(2)隨著網絡層數的增加,使得網絡復雜度變高;
(3)在復雜的場景下能準確檢測特定的交通標志也是必要的。
針對上述問題,本文以Faster R-CNN為基礎,提出基于DenseNet的交通標志檢測方法(densely faster region convolutional neural network,DesFR-CNN)。實驗結果表明,通過DenseNet提取特征可以降低網絡復雜度,同時提高檢測性能。
Faster R-CNN創新性地引入區域候選網絡(region proposal network,RPN),通過RPN預測候選區域,數據限定在300個,RPN作用一張圖像花費10 ms,速度明顯快于傳統的選擇性搜索[14](selective search,SS)。Faster R-CNN將候選區域生成、特征提取、分類和Bounding box回歸整合為一個框架,提高了網絡的整體性能且大幅度提升了檢測的速度。
其中,候選區域生成采用RPN網絡,圖1為RPN網絡的結構。它是在Feature Map上采用滑動窗口。RPN設計了anchor機制來應對不同目標具有不同尺寸的問題,在每個滑動窗口的位置,同時預測k個候選區域,這些候選區域經過卷積形成256維向量,最終通過reg層和cls層分別輸出4k個坐標和2k得分。

圖1 RPN網絡結構
密集卷積網絡設計了一種跨層密集連接方式。與ResNet[15]、MobileNet[16]模型相比,DenseNet(dense convolutional network)提倡特征復用使得網絡計算量減少;通過密集連接解決梯度消散問題。目前,最好的FractalNet[17]算法在CIFAR-10和CIFAR-100數據集上的分類錯誤率為7.33%和28.20%,但DenseNet將其降至5.19%和19.64%,這為后續的骨干網絡替換提供了研究基礎。
為了改善層之間的信息流和梯度流的傳遞,DenseNet設計密集連接方式,使得任意兩層卷積直接相連,并將學習到的特征傳遞給后續所有層。其公式為
xl=H([x0,x1,…,xl-1])
(1)
其中, [x0,x1,…,xl-1] 表示層中串聯生成的特征和。圖2顯示了殘差結構與密集結構的差異。

圖2 殘差結構和密集結構對比
用于提取目標特征的神經網絡稱為骨干網絡,其可以自適應地從輸入圖像中學習重要特征,這在很大程度上解決了傳統神經網絡特征提取能力不足的問題。Faster R-CNN 的骨干網絡VGG16共有16層,分為卷積層、全連接層和歸一化的Softmax層,其采用3×3的卷積核提高特征提取能力,用不同數目的過濾器構建卷積層以增強網絡的擬合能力。雖然這種網絡結構十分規整,但是它具有參數量大、特征提取冗余較多的缺點。因此,優化Faster R-CNN 骨干網絡的特征提取性能是必要的。
本文選用DenseNet-121對VGG16進行優化。表1為DenseNet-121的網絡結構,包括密集塊(dense block,DB)和過渡層(transition layer,TL)。每個DB都進行不同數目1×1、3×3的Conv操作,每個Conv由(batch normalization,BN)、(rectified linear unit,ReLU)、Conv組成。通過在每個3×3Conv前加入瓶頸層(bottleneck)來減少輸入特征圖數,即增加1×1 Conv使得網絡的計算效率提高。設一個DB的層數為L,則層間的連接數為L(L+1)/2, 通過密集連接使得網絡的每一層都可以獲得前面所有的特征圖,實現特征復用,提高層之間信息流和梯度流的傳遞。TL層包括一個BN、1×1Conv和2×2average pool,主要作用是減少特征圖尺寸和壓縮模型,降低網絡的復雜度。圖3為改進的Faster R-CNN的網絡結構。

圖3 改進Faster R-CNN的網絡結構

表1 DenseNet-121網絡結構
(1)候選框參數和匹配策略
為了能對不同尺寸的目標進行正確檢測,Faster R-CNN 算法使用RPN網絡的anchor機制進行處理,輸出不同尺寸的特征圖進行預測,并且在端對端的網絡中可以進行參數的共享傳遞,轉換效率更高。
每個anchor以當前輸入圖片像素點為中心,使用3種面積(1282,2562,5122)和3種長寬比(1∶1,1∶2,2∶1),因此每個滑動點都對應k=9個anchor。對輸入圖像大小為W×H的卷積特征映射,總共產生W×H×k個anchor,有效預測所有目標的候選框和分類概率。anchor生成候選框可以覆蓋待檢測目標的各種尺寸和形狀,可解決不同尺度目標的問題。
然而,RPN通過anchor機制產生的候選框數目龐大,且候選框之間重疊的區域較高。為了解決候選框的冗余問題,采用NMS對候選框進行篩選,與真實標簽框進行匹配。本文設置 (intersection-over-union,IoU)閾值為0.7,保留與真實標簽框大于0.7的IoU重疊的候選框,極大地減少了候選框的數量。
(2)確定特征圖數和壓縮因子
使用DenseNet進行特征提取時,使用Growth rate來表示每一層卷積產生的特征圖數,記為k。由于網絡中每層都接受前面所有層的特征作為輸入,所以每層卷積的特征維度會增加k。k的取值影響網絡中的信息傳遞和性能,綜合考慮本文設置k=32。為了提高網絡計算能力和減少特征圖數,在TL中設置θ作為壓縮因子,本文設置θ為0.5,即將特征維度壓縮至當前輸入的一半。
(3)選擇損失函數
模型的訓練過程實質是對目標函數進行持續優化,降低損失值直到函數收斂,將其定義為損失函數。將與真實標簽框有最高IoU重疊以及與任意真實標簽框大于0.7的IoU重疊作為正樣本,小于0.3的IoU重疊作為負樣本。本文采用的損失函數為

(2)

在訓練階段,首先將交通標志圖像進行目標信息標注,獲取真實交通標志的位置和類別信息,然后將標注完成的數據輸入模型中進行訓練,得到最終的Faster R-CNN模型。整體流程如圖4所示。

圖4 整體流程
本文采用中國交通標志數據集[2](chinese traffic sign dataset,CTSD)和德國交通標志檢測基準(german traffic sign detection benchmark,GTSDB)作為實驗的檢測基準。
CTSD數據集共有1100張圖片,訓練樣本為700張,測試樣本為400張;典型的圖像尺寸為1024×768和1280×720;所采集到的數據集受到各種噪聲的影響,包括雨天和霧天等天氣、拍攝角度傾斜、復雜背景和相似物的影響。GTSDB數據集包括600張訓練樣本和300張測試樣本,圖像尺寸為1360×800;這些圖片包含鄉村、城市、高速公路等復雜自然場景,包括白天和黑夜光照條件等多種天氣條件。本文將這兩個數據集都劃分為禁止標志(prohibitory)、指示標志(mandatory)和警告標志(warning)3類。CTSD與GTSDB數據集存在一些差異,例如CTSD中的警告標志為黃色三角形,而GTSDB中的為紅色三角形;中國交通標志包含漢字,不僅僅是英文字母。這些細微差異被考慮應用到交通標志的檢測,增強模型的泛化性能。
目標檢測分為對目標定位和分類兩個步驟,均值平均精度 (mean average precision,mAP)是衡量目標檢測算法的精確度的基本指標,對評價目標在圖像中的位置以及預測目標類別比較適用。mAP計算公式為
(3)
其中,AveragePrecisionC表示目標類別C的平均精度,N(Classes) 表示目標類別總數,mAP定義請參見文獻[18]。
本實驗在GeForce GTX 1080Ti GPU服務器上搭建基于TensorFlow的目標檢測框架Faster R-CNN,操作環境為64位Windows 10,編程語言為Python 3.7,主要函數庫包括OpenCV、cython、easydict等。訓練參數設置見表2。

表2 訓練參數設置
3.3.1 優化特征提取網絡實驗
(1)基于ResNet網絡實驗
針對交通標志圖像受諸多噪聲影響以及交通標志尺度小等問題,本節使用ResNet-50替代Faster R-CNN中的骨干網絡VGG16進行實驗。圖5是在CTSD數據集下進行訓練,與原始模型相比,基于ResNet-50的Faster R-CNN模型在指示標志、禁止標志和警告標志這3類精度都有明顯提升,分別提高了10.8%、8.2%和9.2%。

圖5 CTSD數據集下不同模型的準確率對比
表3和表4統計了使用不同基礎網絡(VGG16和ResNet-50)的兩種算法在CTSD和GTSDB數據集上的交通標志檢測結果。使用ResNet-50作為骨干網絡的Faster R-CNN 模型在CTSD和GTSDB數據集上分別取得了90.2%和86.7%的mAP值,分別提升了9.4%和7.3%。ResNet-50作為骨干網絡在檢測交通標志時準確率較高,與原始網絡相比,在識別警告標志這一類別上達到了最高的AP值,為95.9%。在GTSDB數據集中,禁止標志的AP值有較大的提升,提高了19.2%,原因是ResNet-50網絡的層數加深增強了特征提取能力,提高了檢測精度;而在指示標志和警告標志這兩類中,AP值提高的不明顯,這是GTSDB數據集中的標志不均衡導致的,使得特征表達的不充分。

表3 CTSD數據集下交通標志mAP(%)值和AP(%)值

表4 GTSDB數據集下交通標志mAP(%)值和AP(%)值
(2)綜合性能對比實驗
在駕駛輔助系統中,不僅需要提高模型準確率,而且還要考慮模型的大小。為了綜合評估骨干網絡的特征提取能力以及最終模型的大小,本文采用了4種網絡替換 Faster R-CNN的骨干網絡進行實驗。表5為各個模型對GTSDB數據集檢測結果。通過對比可以發現,Faster R-CNN 目標檢測算法默認的ZF、VGG_CNN_M_1024和VGG16這3個骨干網絡的mAP值最高的是VGG16網絡,但是其模型大小卻是最大的;殘差網絡屬于一種輕量級網絡,通過分析表5可知,雖然ResNet-152比ResNet-50的mAP值提高了0.4%,但是模型大小卻是3個殘差網絡中最大的,而ResNet-50模型大小是以下網絡中最小的。因此,最終選擇模型更小、準確率較高的ResNet-50網絡作為Faster R-CNN的骨干網絡。

表5 不同特征提取網絡的mAP(%)值和模型大小對比
(3)基于DenseNet網絡實驗
表6顯示了使用VGG16、ResNet-50和DenseNet-121這3種網絡進行特征提取的參數量(模型所有帶參數的層的權重參數總量)、交通標志識別的mAP值以及FLOPs(表示浮點運算次數)。ResNet-50的參數量為24.4 M,相較于VGG16的參數量減少了約81.5%并且所需的計算量更少,即FLOPs為4.12,就使得使用殘差網絡進行特征提取的準確率有明顯提高,但通過跳躍連接在傳遞信息時產生較多的冗余信息。本文提出使用DenseNet優化Faster R-CNN 的特征提取層,由表6可知,DenseNet-121僅需要7.7 M的參數量并且FLOPs僅為2.88,與ResNet-50的參數量相比減少了約68.4%,并且計算量大大減少,計算效率更高,其作為主干網絡的準確率就可以實現較好的性能,為85.2%。從網絡的參數量和計算量來看,DenseNet-121網絡作為主干網絡可以減少網絡的復雜度,實現交通標志檢測。

表6 不同模型參數量、mAP和FLOPs對比
表7和表8顯示在CTSD和GTSDB數據集下使用DenseNet-121進行特征提取的Faster R-CNN算法的mAP值和AP值。由表7和表8可知,與VGG16網絡相比,使用DenseNet-121網絡作為骨干網絡的Faster R-CNN模型在CTSD和GTSDB數據集上的mAP值分別提高了4.7%和5.8%;與ResNet-50相比,基于DenseNet-121網絡的Faster R-CNN模型在準確性上稍微有所降低,這是因為Transition Layer層中引入的壓縮因子θ,減少了特征圖的數量,使其丟失了一些特征信息導致最終的結果偏低,但是準確率基本維持在正常范圍。在CTSD數據集中,基于DenseNet-121網絡的Faster R-CNN模型對警告標志的準確率達到最高,為90.9%;與骨干網絡為ResNet-50相比,檢測指示標志的準確率更高,提高了2.2%。在GTSDB數據集中,與骨干網絡為VGG16和ResNet-50相比,基于DenseNet-121網絡的Faster R-CNN模型對警告標志的準確率分別提高了1.3%和0.3%。因此,基于DenseNet-121網絡的Faster R-CNN模型優化了特征提取性能且大大減少參數。

表7 CTSD數據集下交通標志mAP(%)值和AP(%)值

表8 GTSDB數據集下交通標志mAP(%)值和AP(%)值
3.3.2 交通標志特定場景識別
圖6顯示了指示標志、禁止標志和警告標志在GTSDB數據集上各個迭代次數的AP值。由圖6可知,對禁止標志的識別準確率最好,最高可達89.3%。在迭代了3 W次,指示標志、禁止標志和警告標志的AP值都是最高的。圖7為各模型的部分測試實驗截圖(截圖中的黑色矩形框為模型預測目標的全局位置,黑色矩形框上方為預測的類別和得分)。圖7(a)是基于VGG16網絡的檢測模型,分別識別出1個和2個,其存在嚴重的漏檢且得分較低,圖7(b)是基于DenseNet-121網絡的檢測模型,分別都識別出2個,雖存在漏檢情況,但是整體得分較高。因此,使用本文的方法提高了交通標志檢測的準確率,識別效果都優于原始Faster R-CNN模型。

圖6 各迭代次數AP值對比

圖7 各模型測試結果
從交通標志識別的準確性來看,基于DenseNet網絡的Faster R-CNN模型在CTSD和GTSDB數據集上的mAP值分別為85.5%和85.2%,與原始Faster R-CNN算法相比分別提升了4.7%和5.8%;從特征提取網絡的參數量和計算量來看,DenseNet-121網絡的參數量僅為7.7 M,GFLOPs為2.88,與VGG16網絡相比,參數量減少了約94.2%,計算量大大減少。綜上所述,本文提出的DesFR-CNN交通標志檢測算法無論是從檢測的準確性上,還是從網絡的復雜度上都要優于原始Faster R-CNN模型。因此,使用本文的DesFR-CNN交通標志檢測算法可以提高交通標志的準確率以及降低網絡復雜度。
針對交通標志識別受遮擋、拍攝角度、形狀畸變等影響使得精度低下以及復雜度較高的問題,本文通過引入密集卷積網絡對原始Faster R-CNN模型進行改進,能夠提高算法的準確率以及降低復雜度。基于密集卷積網絡的Faster R-CNN算法的準確率達到了85.2%,較原算法提高了5.8%,網絡的參數量減少了約94.2%。實驗結果表明,增加網絡層次和深度能夠提高交通標志檢測的精度以及減少參數,但是依然存在漏檢和定位不精確等問題。針對上述問題,考慮采用特征融合技術優化網絡結構以及改進候選區域網絡的anchor機制,防止交通標志漏檢和實現精準定位,以促進無人駕駛核心技術的快速發展。