張海明,史 濤
(1.華北理工大學 電氣工程學院, 河北 唐山 063210;2.天津理工大學 電氣工程與自動化學院, 天津 300384)
目標檢測可以理解為針對多個目標的目標定位和圖像分類[1]。它的研究對于安防領(lǐng)域的人臉識別和智能視頻分析、交通領(lǐng)域的交通場景識別、醫(yī)學領(lǐng)域的圖像識別等領(lǐng)域具有重要意義[2]。在目標檢測模型方面,F(xiàn)aster R-CNN模型是最具代表性的目標檢測模型,因為它是第一個真正意義上的端到端的深度學習目標檢測算法,也是第一個準實時的深度學習目標檢測算法[3]。
作為Fast R-CNN模型的升級版本,可以將Faster R-CNN模型簡單地看成RPN+Fast R-CNN的模型,且RPN(region proposal network)和Fast R-CNN共享一部分卷積層[4]。Faster R-CNN模型對目標圖像的檢測過程是:首先將圖片輸入到模型中,然后利用模型的卷積神經(jīng)網(wǎng)絡(luò)對該圖片進行特征提取,在Faster R-CNN中,這部分卷積網(wǎng)絡(luò)被稱為基礎(chǔ)卷積網(wǎng)絡(luò);接著將基礎(chǔ)卷積網(wǎng)絡(luò)的頂層特征圖送入RPN,目的是從目標圖像中提取建議框;然后將RPN的關(guān)于預(yù)測前景與背景2個分類的數(shù)值以及4個邊界回歸值的輸出再輸入到RoI(region of interest)池化層,RoI的具體原理就是利用max pooling的方式從基礎(chǔ)卷積網(wǎng)絡(luò)的頂層特征圖中得到目標圖像的推薦區(qū);最后將RoI輸入到全連接層,然后通過邊界框預(yù)測層和Softmax層分別得到具體類別和邊界框。上述過程針對已經(jīng)訓練好的網(wǎng)絡(luò)。
本文基本思路是在Faster R-CNN模型對目標圖像檢測的一般原理基礎(chǔ)上,在一些方面對其進行改進,使性能更優(yōu)。在之前的研究中,文獻[5]針對模型檢測尺度單一和特征信息利用率低的問題,在傳統(tǒng)FPN(feature pyramid network)網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上增加了反向的特征融合過程;文獻[6]依據(jù)絕大多數(shù)交通標志是圓形、正方形和三角形的特點,重新設(shè)計了RPN網(wǎng)絡(luò)的錨盒;文獻[7-8]運用將目標圖像的灰度圖和其在二維速度場相結(jié)合的方法;文獻[9-10]運用背景差分法實現(xiàn)目標檢測,具體就是建立圖像的背景模板,通過檢測當前圖像幀與背景模板之間的差分得到當前場景下的目標檢測;文獻[11-13]運用方向梯度直方圖、局部紋理特征的方法將提取的特征傳輸至支持向量機進行目標檢測;文獻[14-17]利用激光點云與圖像信息融合進而實現(xiàn)交通標志的檢測。文獻[18]在原模型中加入多尺度融合方法,利用不同大小的卷積核來提取感受野不同的特征。盡管上述文獻針對Faster R-CNN模型在圖像目標檢測方面的改進都取得了較好效果,但在網(wǎng)絡(luò)結(jié)構(gòu)的改進方面仍有進一步探究的必要。本文針對Faster R-CNN模型在對目標圖像形成建議框時完全依賴基礎(chǔ)卷積網(wǎng)絡(luò)的頂層所生成的特征圖,也就是說,頂層特征圖的特征數(shù)直接決定了目標檢測的性能,所以本文在Faster R-CNN模型的基礎(chǔ)卷積網(wǎng)絡(luò)中引入殘差連接,用恒等映射的方式豐富頂層特征圖的特征數(shù);針對基礎(chǔ)卷積網(wǎng)絡(luò)中的池化層在壓縮特征圖時會丟失部分語義信息的問題,可在每個池化層前依次加入空洞率為2、3、5和7的空洞卷積,并與其他層配合,以減少池化操作對語義信息的丟失;利用多尺度特征融合的方法在原模型的基礎(chǔ)卷積網(wǎng)絡(luò)頂層加入特征融合模塊,對頂層的特征圖再次進行不同尺度的特征提取,并在此基礎(chǔ)上利用生物視覺系統(tǒng)稀疏性的特點對各個分支進行結(jié)構(gòu)上的優(yōu)化;在RPN階段,加入本文中構(gòu)造的注意力模型,利用注意力機制的特性對RPN階段做輔助性的補充。
對Faster R-CNN模型改進前,有必要展示如圖1所示的Faster R-CNN模型的網(wǎng)絡(luò)結(jié)構(gòu)。

圖1 Faster R-CNN模型的網(wǎng)絡(luò)結(jié)構(gòu)示意圖
從圖1可以看出,F(xiàn)aster R-CNN模型的基礎(chǔ)卷積網(wǎng)絡(luò)是一個主干性質(zhì)的卷積網(wǎng)絡(luò),其頂層特征圖的特征數(shù)將直接影響目標檢測的性能。為豐富頂層特征圖的特征,在原模型的基礎(chǔ)上引入殘差連接,并在4個池化層前依次加入空洞率rate為2、3、5和7的空洞卷積。為保證生成的特征圖尺寸與未卷積前的特征圖一致,在Padding的設(shè)置上需做到與rate的值相同。因為對于步長為1、大小為3×3的卷積核(空洞率為1)來說,例如要對一個大小為7×7的特征圖進行特征提取時,還要生成大小為7×7的特征圖,這時必須將Padding設(shè)為1;當用空洞率為2、大小為3×3的卷積核時,等同于用大小為5×5的卷積核進行卷積。同樣,為生成大小為7×7的特征圖,須將Padding設(shè)為2;rate為3、5和7亦然。在改進模型的第一部分中共包含2個模塊,并在最大池化層前加入空洞卷積。第一、二模塊的結(jié)構(gòu)框圖分別如圖2、3所示。

圖2 改進后模型第1部分的第1模塊結(jié)構(gòu)框圖

圖3 改進后模型第1部分的第2模塊結(jié)構(gòu)框圖
需要說明的是,為實現(xiàn)addition層的運算,除空洞卷積外的其他卷積的Padding設(shè)為Same;/3×3表示卷積核的大小為3×3;conv.16代表卷積核的個數(shù)為16,其他亦然;s1表示步長為1,s2表示步長為2。在以上模塊中,添加BN(batch-normalization)層的目的是為了提高網(wǎng)絡(luò)模型的收斂速度和泛化能力,同時將原Faster R-CNN模型的激活函數(shù)ReLU替換為LeakyReLU。相較ReLU,LeakyReLU在一定程度上避免了負半軸神經(jīng)元衰亡的現(xiàn)象發(fā)生。
對原模型改進后的第2部分模塊中,用多尺度特征提取與融合的方法對第一部分模塊的頂層特征圖再次進行不同尺度的特征提取;在多尺度特征提取的基礎(chǔ)上依據(jù)感受野相同的理論將卷積核進行等價,具體是用幾個3×3卷積核去替代5×5卷積核和7×7卷積核,這樣做可以在3×3的卷積核之間增加更多的非線性激活函數(shù),進而提高模型的泛化能力;最后運用生物視覺系統(tǒng)的稀疏性對以上網(wǎng)絡(luò)結(jié)構(gòu)進行優(yōu)化,具體是將3×3的卷積核進行拆分。多尺度特征提取與融合模塊中5條支路的卷積層及參數(shù)設(shè)置如表1所示。

表1 5條支路的卷積層及參數(shù)情況
在表1中,卷積1×3和3×1的Padding設(shè)為Same;maxpool的Padding設(shè)為1。在第2部分中改進后模塊的結(jié)構(gòu)見圖4。

圖4 改進后模型第2部分的結(jié)構(gòu)框圖
在原模型改進后的第3部分模塊中引入生物視覺的注意力機制。對于高等生物尤其是人類來說,注意力機制有著相當重要的作用[19],因為從信息的角度來看,它能夠在極短的時間內(nèi)將重要信息和次要信息區(qū)分開來;從能量的角度來看,它能夠使生物視覺規(guī)避在次要信息中的能量消耗,進而將有限的能量與精力分配給重要信息。基于此特性,提出了如圖5所示的卷積神經(jīng)網(wǎng)絡(luò)注意力模型[20]。圖5中,F(xiàn)代表特征圖,M代表通過Softmax函數(shù)從特征圖F中學習到的注意力圖,G代表通過將特征圖F和注意力圖M相對應(yīng)的通道的值求哈達瑪積進而得到的注意力特征圖。該模型的主要作用就是在模型的訓練過程中,依據(jù)圖像標簽及目標函數(shù),通過Softmax函數(shù)使M中的圖像目標的期望區(qū)域數(shù)值相對F較大一些,然后通過求哈達瑪積就更凸顯特征圖F中相對應(yīng)的目標區(qū)域的數(shù)值,而G正是該數(shù)值較大的特征的集合。

圖5 基于卷積神經(jīng)網(wǎng)絡(luò)的注意力模型示意圖
依據(jù)上述原理構(gòu)造注意力模型:首先使用全局平均池化對個數(shù)為2N的特征圖做特征壓縮,輸出2N個數(shù)值,然后利用N個步長為1、大小為1×1的卷積核做通道壓縮,形成瓶頸層,以減少計算參數(shù);再利用2N個步長為1、大小為1×1的卷積核做通道數(shù)的恢復(fù),同時需要在這2個1×1的卷積層之間加入非線性激活函數(shù)LeakyReLU;然后,用BN層對通道的權(quán)重做歸一化處理;最后將歸一化處理的特征與2N個原特征圖的對應(yīng)通道求哈達瑪積。其中,構(gòu)造的注意力模型如圖6所示。

圖6 本文中構(gòu)造的注意力模型的框圖
改進的Faster R-CNN模型的總體結(jié)構(gòu)如圖7所示。
采用中國交通標志數(shù)據(jù)集(CTSDS)來驗證模型的有效性,該數(shù)據(jù)集分為5個類別,分別為限高(height limitation)、限速(speed limitation)、限重(weight limitation)、警告(warning)和禁止(prohibitory)。為了得到性能上更加穩(wěn)定的分類模型,先分析現(xiàn)實中交通標志中會出現(xiàn)的影響分類器性能提高的因素,通過分析了解在現(xiàn)實中會存在以下6種情況:① 受自然環(huán)境中天氣狀況的影響,比如雨天,霧天等,從而影響圖像的清晰度和亮度;② 在自然條件和人為因素的影響下,交通標志在烈日灼曬、雨水沖刷會出現(xiàn)褪色和掉漆的現(xiàn)象;③ 受自然界中不可控力和人為自主或非自主因素的影響,交通標志會出現(xiàn)變形和扭轉(zhuǎn)現(xiàn)象;④ 在數(shù)據(jù)集的收集過程中,由于相機的拍攝角度和相機距離、交通標志的距離導(dǎo)致拍攝的照片出現(xiàn)模糊和扭曲的現(xiàn)象;⑤ 存在周圍建筑物、來往行車、樹木等的遮擋;⑥ 由于距離交通標志太過遙遠,交通標志會呈現(xiàn)一個縮小的像,具體表現(xiàn)就是小目標。6種情況如圖8所示。

圖7 改進的Faster R-CNN模型的總體結(jié)構(gòu)框圖

圖8 影響分類器性能的6種情況
針對上述6種情況,一方面,可以采取的措施就是在采集交通標志圖片的過程中做到有針對性的采集,比如在不同天氣情況下采集圖片,同時加大對褪色、掉漆、變形、扭轉(zhuǎn)、模糊的交通標志的采集力度;另一方面,可以運用數(shù)據(jù)增強的手段來模擬交通標志在現(xiàn)實中真實存在的情況,本文采取添加-5、0、5和10 dB高斯噪聲的方式來模擬現(xiàn)實中交通標志會出現(xiàn)污點的情況;對數(shù)據(jù)集部分圖像的東、西、南、北、東南、東北、西南和西北共8個方位添加5%、10%、15%和20%的不同程度的遮擋以模擬現(xiàn)實中存在的遮擋情況,從而使數(shù)據(jù)集更加完備,進而利用以上增廣后的數(shù)據(jù)集訓練模型,以提高檢測性能。
增廣后的數(shù)據(jù)集中,每個類別的圖片數(shù)量為2 000張。需要指明的是,本文中將數(shù)據(jù)集按照95%和5%的比例拆分為大小為9 500的訓練集和500的測試集。對于訓練集的標簽標記,采用Matlab的Image Labeler APP對含有9 500張圖片的訓練集進行逐一標記。
實驗平臺:lenovo臺式電腦;操作系統(tǒng)為64位的Windows 10;CPU型號為intel(R)-Core(TM)i5-4590,頻率是3.30 GHz;GPU型號為NVIDIA的GeForce-GT-705;軟件環(huán)境為Matlab R2021a;深度學習框架為Caffe。
對于Faster R-CNN模型的RPN模塊,它在訓練時會從每張圖片中獲取很多anchor,該模型依據(jù)IoU的具體數(shù)值從而選取一定數(shù)量的正負樣本,一般正樣本滿足的條件是真值框與anchor的IoU值大于0.7,而負樣本滿足的條件是真值框與anchor的值IoU小于0.3。模型默認mini-batch為256,其中正負樣本比例為50%和50%,也就是正負樣本數(shù)分別為128和128。如果出現(xiàn)正樣本數(shù)不足128的情況,就用負樣本加以補充,以保證出現(xiàn)256個錨盒(anchor)。但這樣會存在一定的問題,即在數(shù)據(jù)集中絕大多數(shù)的圖片只會包含1—4個交通標志,嚴重影響正負樣本的均衡性。表2為8次迭代過程中的正樣本和負樣本數(shù)。
從表2中的數(shù)據(jù)可以看出,在每次迭代過程中,正樣本數(shù)在30上下浮動,所以為了達到正負樣本數(shù)據(jù)的均衡性,可將mini-batch設(shè)為64,使正負樣本數(shù)均為32,因為32是8的整數(shù)倍,便于數(shù)據(jù)處理。

表2 8次迭代過程中的正樣本和負樣本數(shù)
RPN的損失函數(shù)是一個多任務(wù)損失函數(shù),它包含最小化分類誤差與正樣本的窗口位置偏差2個代價函數(shù)[21]。其中,總損失函數(shù)為
(1)
分類損失Lcls定義為:
(2)
回歸損失Lreg定義為:
(3)

對于改進模型的預(yù)訓練,由于德國交通標志數(shù)據(jù)集(German traffic sign data set,GTSDS)和CTSDS數(shù)據(jù)集存在共性,所以從GTSDS數(shù)據(jù)集中抽取限高、限速、限重、警告和禁止5類圖片,每類圖片隨機抽取60張并用Matlab的Image Labeler APP對選取的300張圖片逐一標記。同時,在學習率的設(shè)置中,先選擇數(shù)值為1×10-3的學習率,經(jīng)過100輪(epoch)終止網(wǎng)絡(luò)初步預(yù)訓練,再選擇數(shù)值為1×10-4的學習率來訓練網(wǎng)絡(luò),直到損失率不再下降為止。此過程大約需要300輪,當預(yù)訓練完成后,保存權(quán)重文件,為訓練網(wǎng)絡(luò)做準備。
在網(wǎng)絡(luò)的訓練過程中,選擇可使參數(shù)更新更加平穩(wěn)的Adam算法作為優(yōu)化算法。對于學習率的選擇,可將訓練拆分為3個過程,前80×103輪的學習率設(shè)置為1×10-3,接下來直到120×103輪前的學習率設(shè)置為1×10-4,最后直到160×103輪的學習率設(shè)為1×10-5。當損失率不再下降后,保存權(quán)重文件,接著用測試集去檢驗這個訓練好的模型的性能。圖9和圖10分別為位置損失曲線和交叉熵損失曲線。

圖9 位置損失

圖10 交叉熵損失
從圖9曲線的走勢可以看出,當改進的模型迭代到10×103輪后,位置損失曲線基本穩(wěn)定在0.5左右。從圖10曲線的走勢可以看出,當改進的模型迭代到10×103輪后,交叉熵損失曲線基本趨于穩(wěn)定。
在評估模型性能時需要用到2個指標,它們分別是精確率與召回率(precision and recall),分別用式(4)和式(5)表示。
(4)

(5)
其中:TP表示正確檢測的真目標數(shù);FP表示假目標卻被確定為真目標數(shù);FN表示真目標被錯誤確定為假目標數(shù)。
用測試集去檢測已經(jīng)訓練好的模型。測試集共有5個類別,每個類別有100張圖片。具體的檢測結(jié)果如表3所示。需要指出的是:表格第1行表示測試樣本的真類別,表格第1列表示本文方法的預(yù)測類別。

表3 本文方法下對5類目標的測試結(jié)果
通過表4中的數(shù)據(jù)可以得到5類目標的平均識別率為98.8%。為了驗證改進模型的有效性,選取5個具有代表性的目標檢測網(wǎng)絡(luò)與本文的改進模型做對比實驗。選取的檢測模型為Fast-R-CNN、Faster R-CNN、SSD(single shot multibox detector)、YOLO(you only look once)-V2和YOLO-V3。從表4可以看出,5類目標的精準率均達到98%以上,平均識別率為98.8%。圖11說明本文方法具有較高的識別性能,證實了本文方法的有效性。

表4 本文方法下對5類目標的精確率和召回率
實驗數(shù)據(jù)經(jīng)過處理后的平均識別率如圖11所示。
為驗證改進Faster R-CNN模型的性能,運用CTSDS數(shù)據(jù)集。在測試結(jié)果的顯示時,用不同顏色的矩形框標出交通標志的目標位置,并在該矩形框的上方顯示出預(yù)測類別及置信度,具體的檢測結(jié)果如圖12所示。

圖11 6種模型對5類目標的平均識別率

圖12 5類交通標志的目標檢測結(jié)果
基于Faster R-CNN模型對目標圖像進行檢測的一般原理,對該網(wǎng)絡(luò)的結(jié)構(gòu)進行改進。CTSDS數(shù)據(jù)集測試結(jié)果表明,對5類交通標志的平均識別率為98.8%,高于實驗中所選取的具有代表性的目標檢測網(wǎng)絡(luò)模型,證實了新算法的有效性。但該模型存在內(nèi)存占用率較高的問題,與當下流行的輕量化模型存在一定矛盾,在這方面改進模型仍有很大的提升空間。