劉 鳳,李 華,南方哲,錢育蓉
(新疆大學 軟件學院,新疆 烏魯木齊 830046)
交通標志的檢測與識別分為兩種:基于傳統(tǒng)方法、基于深度學習[1]算法。文獻[2-5]采用傳統(tǒng)算法,根據(jù)交通標志的顏色和形狀特征進行判別。但是在復(fù)雜場景中交通標志受遮擋、褪色、天氣狀況等影響,增加了檢測難度。
目前,基于深度學習算法被廣泛應(yīng)用到交通標志的檢測與識別領(lǐng)域。Zhu等[6]結(jié)合AlexNet和OverFeat框架對交通標志進行分類和回歸,準確率達到88%。文獻[7,8]采用Faster R-CNN[9]對交通標志進行了檢測,但特征學習的網(wǎng)絡(luò)權(quán)重規(guī)模較大。He等[10]提出深度殘差框架解決深層網(wǎng)絡(luò)退化問題。Redmon等[11]提出的YOLOv3采用簡化的殘差塊對目標進行檢測。Shen等[12]提出的DSOD算法引入DenseNet[13]思想進行檢測??傮w看來,基于深度學習的方法取得顯著成果,但是仍面臨以下挑戰(zhàn):
(1)在自然場景下所采集的圖像具有物體遮擋、拍攝角度、形狀畸變等問題影響特征信息的提取,導(dǎo)致準確率下降;
(2)隨著網(wǎng)絡(luò)層數(shù)的增加,使得網(wǎng)絡(luò)復(fù)雜度變高;
(3)在復(fù)雜的場景下能準確檢測特定的交通標志也是必要的。
針對上述問題,本文以Faster R-CNN為基礎(chǔ),提出基于DenseNet的交通標志檢測方法(densely faster region convolutional neural network,DesFR-CNN)。實驗結(jié)果表明,通過DenseNet提取特征可以降低網(wǎng)絡(luò)復(fù)雜度,同時提高檢測性能。
Faster R-CNN創(chuàng)新性地引入?yún)^(qū)域候選網(wǎng)絡(luò)(region proposal network,RPN),通過RPN預(yù)測候選區(qū)域,數(shù)據(jù)限定在300個,RPN作用一張圖像花費10 ms,速度明顯快于傳統(tǒng)的選擇性搜索[14](selective search,SS)。Faster R-CNN將候選區(qū)域生成、特征提取、分類和Bounding box回歸整合為一個框架,提高了網(wǎng)絡(luò)的整體性能且大幅度提升了檢測的速度。
其中,候選區(qū)域生成采用RPN網(wǎng)絡(luò),圖1為RPN網(wǎng)絡(luò)的結(jié)構(gòu)。它是在Feature Map上采用滑動窗口。RPN設(shè)計了anchor機制來應(yīng)對不同目標具有不同尺寸的問題,在每個滑動窗口的位置,同時預(yù)測k個候選區(qū)域,這些候選區(qū)域經(jīng)過卷積形成256維向量,最終通過reg層和cls層分別輸出4k個坐標和2k得分。
圖1 RPN網(wǎng)絡(luò)結(jié)構(gòu)
密集卷積網(wǎng)絡(luò)設(shè)計了一種跨層密集連接方式。與ResNet[15]、MobileNet[16]模型相比,DenseNet(dense convolutional network)提倡特征復(fù)用使得網(wǎng)絡(luò)計算量減少;通過密集連接解決梯度消散問題。目前,最好的FractalNet[17]算法在CIFAR-10和CIFAR-100數(shù)據(jù)集上的分類錯誤率為7.33%和28.20%,但DenseNet將其降至5.19%和19.64%,這為后續(xù)的骨干網(wǎng)絡(luò)替換提供了研究基礎(chǔ)。
為了改善層之間的信息流和梯度流的傳遞,DenseNet設(shè)計密集連接方式,使得任意兩層卷積直接相連,并將學習到的特征傳遞給后續(xù)所有層。其公式為
xl=H([x0,x1,…,xl-1])
(1)
其中, [x0,x1,…,xl-1] 表示層中串聯(lián)生成的特征和。圖2顯示了殘差結(jié)構(gòu)與密集結(jié)構(gòu)的差異。
圖2 殘差結(jié)構(gòu)和密集結(jié)構(gòu)對比
用于提取目標特征的神經(jīng)網(wǎng)絡(luò)稱為骨干網(wǎng)絡(luò),其可以自適應(yīng)地從輸入圖像中學習重要特征,這在很大程度上解決了傳統(tǒng)神經(jīng)網(wǎng)絡(luò)特征提取能力不足的問題。Faster R-CNN 的骨干網(wǎng)絡(luò)VGG16共有16層,分為卷積層、全連接層和歸一化的Softmax層,其采用3×3的卷積核提高特征提取能力,用不同數(shù)目的過濾器構(gòu)建卷積層以增強網(wǎng)絡(luò)的擬合能力。雖然這種網(wǎng)絡(luò)結(jié)構(gòu)十分規(guī)整,但是它具有參數(shù)量大、特征提取冗余較多的缺點。因此,優(yōu)化Faster R-CNN 骨干網(wǎng)絡(luò)的特征提取性能是必要的。
本文選用DenseNet-121對VGG16進行優(yōu)化。表1為DenseNet-121的網(wǎng)絡(luò)結(jié)構(gòu),包括密集塊(dense block,DB)和過渡層(transition layer,TL)。每個DB都進行不同數(shù)目1×1、3×3的Conv操作,每個Conv由(batch normalization,BN)、(rectified linear unit,ReLU)、Conv組成。通過在每個3×3Conv前加入瓶頸層(bottleneck)來減少輸入特征圖數(shù),即增加1×1 Conv使得網(wǎng)絡(luò)的計算效率提高。設(shè)一個DB的層數(shù)為L,則層間的連接數(shù)為L(L+1)/2, 通過密集連接使得網(wǎng)絡(luò)的每一層都可以獲得前面所有的特征圖,實現(xiàn)特征復(fù)用,提高層之間信息流和梯度流的傳遞。TL層包括一個BN、1×1Conv和2×2average pool,主要作用是減少特征圖尺寸和壓縮模型,降低網(wǎng)絡(luò)的復(fù)雜度。圖3為改進的Faster R-CNN的網(wǎng)絡(luò)結(jié)構(gòu)。
圖3 改進Faster R-CNN的網(wǎng)絡(luò)結(jié)構(gòu)
表1 DenseNet-121網(wǎng)絡(luò)結(jié)構(gòu)
(1)候選框參數(shù)和匹配策略
為了能對不同尺寸的目標進行正確檢測,F(xiàn)aster R-CNN 算法使用RPN網(wǎng)絡(luò)的anchor機制進行處理,輸出不同尺寸的特征圖進行預(yù)測,并且在端對端的網(wǎng)絡(luò)中可以進行參數(shù)的共享傳遞,轉(zhuǎn)換效率更高。
每個anchor以當前輸入圖片像素點為中心,使用3種面積(1282,2562,5122)和3種長寬比(1∶1,1∶2,2∶1),因此每個滑動點都對應(yīng)k=9個anchor。對輸入圖像大小為W×H的卷積特征映射,總共產(chǎn)生W×H×k個anchor,有效預(yù)測所有目標的候選框和分類概率。anchor生成候選框可以覆蓋待檢測目標的各種尺寸和形狀,可解決不同尺度目標的問題。
然而,RPN通過anchor機制產(chǎn)生的候選框數(shù)目龐大,且候選框之間重疊的區(qū)域較高。為了解決候選框的冗余問題,采用NMS對候選框進行篩選,與真實標簽框進行匹配。本文設(shè)置 (intersection-over-union,IoU)閾值為0.7,保留與真實標簽框大于0.7的IoU重疊的候選框,極大地減少了候選框的數(shù)量。
(2)確定特征圖數(shù)和壓縮因子
使用DenseNet進行特征提取時,使用Growth rate來表示每一層卷積產(chǎn)生的特征圖數(shù),記為k。由于網(wǎng)絡(luò)中每層都接受前面所有層的特征作為輸入,所以每層卷積的特征維度會增加k。k的取值影響網(wǎng)絡(luò)中的信息傳遞和性能,綜合考慮本文設(shè)置k=32。為了提高網(wǎng)絡(luò)計算能力和減少特征圖數(shù),在TL中設(shè)置θ作為壓縮因子,本文設(shè)置θ為0.5,即將特征維度壓縮至當前輸入的一半。
(3)選擇損失函數(shù)
模型的訓練過程實質(zhì)是對目標函數(shù)進行持續(xù)優(yōu)化,降低損失值直到函數(shù)收斂,將其定義為損失函數(shù)。將與真實標簽框有最高IoU重疊以及與任意真實標簽框大于0.7的IoU重疊作為正樣本,小于0.3的IoU重疊作為負樣本。本文采用的損失函數(shù)為
(2)
在訓練階段,首先將交通標志圖像進行目標信息標注,獲取真實交通標志的位置和類別信息,然后將標注完成的數(shù)據(jù)輸入模型中進行訓練,得到最終的Faster R-CNN模型。整體流程如圖4所示。
圖4 整體流程
本文采用中國交通標志數(shù)據(jù)集[2](chinese traffic sign dataset,CTSD)和德國交通標志檢測基準(german traffic sign detection benchmark,GTSDB)作為實驗的檢測基準。
CTSD數(shù)據(jù)集共有1100張圖片,訓練樣本為700張,測試樣本為400張;典型的圖像尺寸為1024×768和1280×720;所采集到的數(shù)據(jù)集受到各種噪聲的影響,包括雨天和霧天等天氣、拍攝角度傾斜、復(fù)雜背景和相似物的影響。GTSDB數(shù)據(jù)集包括600張訓練樣本和300張測試樣本,圖像尺寸為1360×800;這些圖片包含鄉(xiāng)村、城市、高速公路等復(fù)雜自然場景,包括白天和黑夜光照條件等多種天氣條件。本文將這兩個數(shù)據(jù)集都劃分為禁止標志(prohibitory)、指示標志(mandatory)和警告標志(warning)3類。CTSD與GTSDB數(shù)據(jù)集存在一些差異,例如CTSD中的警告標志為黃色三角形,而GTSDB中的為紅色三角形;中國交通標志包含漢字,不僅僅是英文字母。這些細微差異被考慮應(yīng)用到交通標志的檢測,增強模型的泛化性能。
目標檢測分為對目標定位和分類兩個步驟,均值平均精度 (mean average precision,mAP)是衡量目標檢測算法的精確度的基本指標,對評價目標在圖像中的位置以及預(yù)測目標類別比較適用。mAP計算公式為
(3)
其中,AveragePrecisionC表示目標類別C的平均精度,N(Classes) 表示目標類別總數(shù),mAP定義請參見文獻[18]。
本實驗在GeForce GTX 1080Ti GPU服務(wù)器上搭建基于TensorFlow的目標檢測框架Faster R-CNN,操作環(huán)境為64位Windows 10,編程語言為Python 3.7,主要函數(shù)庫包括OpenCV、cython、easydict等。訓練參數(shù)設(shè)置見表2。
表2 訓練參數(shù)設(shè)置
3.3.1 優(yōu)化特征提取網(wǎng)絡(luò)實驗
(1)基于ResNet網(wǎng)絡(luò)實驗
針對交通標志圖像受諸多噪聲影響以及交通標志尺度小等問題,本節(jié)使用ResNet-50替代Faster R-CNN中的骨干網(wǎng)絡(luò)VGG16進行實驗。圖5是在CTSD數(shù)據(jù)集下進行訓練,與原始模型相比,基于ResNet-50的Faster R-CNN模型在指示標志、禁止標志和警告標志這3類精度都有明顯提升,分別提高了10.8%、8.2%和9.2%。
圖5 CTSD數(shù)據(jù)集下不同模型的準確率對比
表3和表4統(tǒng)計了使用不同基礎(chǔ)網(wǎng)絡(luò)(VGG16和ResNet-50)的兩種算法在CTSD和GTSDB數(shù)據(jù)集上的交通標志檢測結(jié)果。使用ResNet-50作為骨干網(wǎng)絡(luò)的Faster R-CNN 模型在CTSD和GTSDB數(shù)據(jù)集上分別取得了90.2%和86.7%的mAP值,分別提升了9.4%和7.3%。ResNet-50作為骨干網(wǎng)絡(luò)在檢測交通標志時準確率較高,與原始網(wǎng)絡(luò)相比,在識別警告標志這一類別上達到了最高的AP值,為95.9%。在GTSDB數(shù)據(jù)集中,禁止標志的AP值有較大的提升,提高了19.2%,原因是ResNet-50網(wǎng)絡(luò)的層數(shù)加深增強了特征提取能力,提高了檢測精度;而在指示標志和警告標志這兩類中,AP值提高的不明顯,這是GTSDB數(shù)據(jù)集中的標志不均衡導(dǎo)致的,使得特征表達的不充分。
表3 CTSD數(shù)據(jù)集下交通標志mAP(%)值和AP(%)值
表4 GTSDB數(shù)據(jù)集下交通標志mAP(%)值和AP(%)值
(2)綜合性能對比實驗
在駕駛輔助系統(tǒng)中,不僅需要提高模型準確率,而且還要考慮模型的大小。為了綜合評估骨干網(wǎng)絡(luò)的特征提取能力以及最終模型的大小,本文采用了4種網(wǎng)絡(luò)替換 Faster R-CNN的骨干網(wǎng)絡(luò)進行實驗。表5為各個模型對GTSDB數(shù)據(jù)集檢測結(jié)果。通過對比可以發(fā)現(xiàn),F(xiàn)aster R-CNN 目標檢測算法默認的ZF、VGG_CNN_M_1024和VGG16這3個骨干網(wǎng)絡(luò)的mAP值最高的是VGG16網(wǎng)絡(luò),但是其模型大小卻是最大的;殘差網(wǎng)絡(luò)屬于一種輕量級網(wǎng)絡(luò),通過分析表5可知,雖然ResNet-152比ResNet-50的mAP值提高了0.4%,但是模型大小卻是3個殘差網(wǎng)絡(luò)中最大的,而ResNet-50模型大小是以下網(wǎng)絡(luò)中最小的。因此,最終選擇模型更小、準確率較高的ResNet-50網(wǎng)絡(luò)作為Faster R-CNN的骨干網(wǎng)絡(luò)。
表5 不同特征提取網(wǎng)絡(luò)的mAP(%)值和模型大小對比
(3)基于DenseNet網(wǎng)絡(luò)實驗
表6顯示了使用VGG16、ResNet-50和DenseNet-121這3種網(wǎng)絡(luò)進行特征提取的參數(shù)量(模型所有帶參數(shù)的層的權(quán)重參數(shù)總量)、交通標志識別的mAP值以及FLOPs(表示浮點運算次數(shù))。ResNet-50的參數(shù)量為24.4 M,相較于VGG16的參數(shù)量減少了約81.5%并且所需的計算量更少,即FLOPs為4.12,就使得使用殘差網(wǎng)絡(luò)進行特征提取的準確率有明顯提高,但通過跳躍連接在傳遞信息時產(chǎn)生較多的冗余信息。本文提出使用DenseNet優(yōu)化Faster R-CNN 的特征提取層,由表6可知,DenseNet-121僅需要7.7 M的參數(shù)量并且FLOPs僅為2.88,與ResNet-50的參數(shù)量相比減少了約68.4%,并且計算量大大減少,計算效率更高,其作為主干網(wǎng)絡(luò)的準確率就可以實現(xiàn)較好的性能,為85.2%。從網(wǎng)絡(luò)的參數(shù)量和計算量來看,DenseNet-121網(wǎng)絡(luò)作為主干網(wǎng)絡(luò)可以減少網(wǎng)絡(luò)的復(fù)雜度,實現(xiàn)交通標志檢測。
表6 不同模型參數(shù)量、mAP和FLOPs對比
表7和表8顯示在CTSD和GTSDB數(shù)據(jù)集下使用DenseNet-121進行特征提取的Faster R-CNN算法的mAP值和AP值。由表7和表8可知,與VGG16網(wǎng)絡(luò)相比,使用DenseNet-121網(wǎng)絡(luò)作為骨干網(wǎng)絡(luò)的Faster R-CNN模型在CTSD和GTSDB數(shù)據(jù)集上的mAP值分別提高了4.7%和5.8%;與ResNet-50相比,基于DenseNet-121網(wǎng)絡(luò)的Faster R-CNN模型在準確性上稍微有所降低,這是因為Transition Layer層中引入的壓縮因子θ,減少了特征圖的數(shù)量,使其丟失了一些特征信息導(dǎo)致最終的結(jié)果偏低,但是準確率基本維持在正常范圍。在CTSD數(shù)據(jù)集中,基于DenseNet-121網(wǎng)絡(luò)的Faster R-CNN模型對警告標志的準確率達到最高,為90.9%;與骨干網(wǎng)絡(luò)為ResNet-50相比,檢測指示標志的準確率更高,提高了2.2%。在GTSDB數(shù)據(jù)集中,與骨干網(wǎng)絡(luò)為VGG16和ResNet-50相比,基于DenseNet-121網(wǎng)絡(luò)的Faster R-CNN模型對警告標志的準確率分別提高了1.3%和0.3%。因此,基于DenseNet-121網(wǎng)絡(luò)的Faster R-CNN模型優(yōu)化了特征提取性能且大大減少參數(shù)。
表7 CTSD數(shù)據(jù)集下交通標志mAP(%)值和AP(%)值
表8 GTSDB數(shù)據(jù)集下交通標志mAP(%)值和AP(%)值
3.3.2 交通標志特定場景識別
圖6顯示了指示標志、禁止標志和警告標志在GTSDB數(shù)據(jù)集上各個迭代次數(shù)的AP值。由圖6可知,對禁止標志的識別準確率最好,最高可達89.3%。在迭代了3 W次,指示標志、禁止標志和警告標志的AP值都是最高的。圖7為各模型的部分測試實驗截圖(截圖中的黑色矩形框為模型預(yù)測目標的全局位置,黑色矩形框上方為預(yù)測的類別和得分)。圖7(a)是基于VGG16網(wǎng)絡(luò)的檢測模型,分別識別出1個和2個,其存在嚴重的漏檢且得分較低,圖7(b)是基于DenseNet-121網(wǎng)絡(luò)的檢測模型,分別都識別出2個,雖存在漏檢情況,但是整體得分較高。因此,使用本文的方法提高了交通標志檢測的準確率,識別效果都優(yōu)于原始Faster R-CNN模型。
圖6 各迭代次數(shù)AP值對比
圖7 各模型測試結(jié)果
從交通標志識別的準確性來看,基于DenseNet網(wǎng)絡(luò)的Faster R-CNN模型在CTSD和GTSDB數(shù)據(jù)集上的mAP值分別為85.5%和85.2%,與原始Faster R-CNN算法相比分別提升了4.7%和5.8%;從特征提取網(wǎng)絡(luò)的參數(shù)量和計算量來看,DenseNet-121網(wǎng)絡(luò)的參數(shù)量僅為7.7 M,GFLOPs為2.88,與VGG16網(wǎng)絡(luò)相比,參數(shù)量減少了約94.2%,計算量大大減少。綜上所述,本文提出的DesFR-CNN交通標志檢測算法無論是從檢測的準確性上,還是從網(wǎng)絡(luò)的復(fù)雜度上都要優(yōu)于原始Faster R-CNN模型。因此,使用本文的DesFR-CNN交通標志檢測算法可以提高交通標志的準確率以及降低網(wǎng)絡(luò)復(fù)雜度。
針對交通標志識別受遮擋、拍攝角度、形狀畸變等影響使得精度低下以及復(fù)雜度較高的問題,本文通過引入密集卷積網(wǎng)絡(luò)對原始Faster R-CNN模型進行改進,能夠提高算法的準確率以及降低復(fù)雜度?;诿芗矸e網(wǎng)絡(luò)的Faster R-CNN算法的準確率達到了85.2%,較原算法提高了5.8%,網(wǎng)絡(luò)的參數(shù)量減少了約94.2%。實驗結(jié)果表明,增加網(wǎng)絡(luò)層次和深度能夠提高交通標志檢測的精度以及減少參數(shù),但是依然存在漏檢和定位不精確等問題。針對上述問題,考慮采用特征融合技術(shù)優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)以及改進候選區(qū)域網(wǎng)絡(luò)的anchor機制,防止交通標志漏檢和實現(xiàn)精準定位,以促進無人駕駛核心技術(shù)的快速發(fā)展。