張海明,史 濤
(1.華北理工大學(xué) 電氣工程學(xué)院, 河北 唐山 063210;2.天津理工大學(xué) 電氣工程與自動(dòng)化學(xué)院, 天津 300384)
目標(biāo)檢測(cè)可以理解為針對(duì)多個(gè)目標(biāo)的目標(biāo)定位和圖像分類[1]。它的研究對(duì)于安防領(lǐng)域的人臉識(shí)別和智能視頻分析、交通領(lǐng)域的交通場(chǎng)景識(shí)別、醫(yī)學(xué)領(lǐng)域的圖像識(shí)別等領(lǐng)域具有重要意義[2]。在目標(biāo)檢測(cè)模型方面,F(xiàn)aster R-CNN模型是最具代表性的目標(biāo)檢測(cè)模型,因?yàn)樗堑谝粋€(gè)真正意義上的端到端的深度學(xué)習(xí)目標(biāo)檢測(cè)算法,也是第一個(gè)準(zhǔn)實(shí)時(shí)的深度學(xué)習(xí)目標(biāo)檢測(cè)算法[3]。
作為Fast R-CNN模型的升級(jí)版本,可以將Faster R-CNN模型簡(jiǎn)單地看成RPN+Fast R-CNN的模型,且RPN(region proposal network)和Fast R-CNN共享一部分卷積層[4]。Faster R-CNN模型對(duì)目標(biāo)圖像的檢測(cè)過(guò)程是:首先將圖片輸入到模型中,然后利用模型的卷積神經(jīng)網(wǎng)絡(luò)對(duì)該圖片進(jìn)行特征提取,在Faster R-CNN中,這部分卷積網(wǎng)絡(luò)被稱為基礎(chǔ)卷積網(wǎng)絡(luò);接著將基礎(chǔ)卷積網(wǎng)絡(luò)的頂層特征圖送入RPN,目的是從目標(biāo)圖像中提取建議框;然后將RPN的關(guān)于預(yù)測(cè)前景與背景2個(gè)分類的數(shù)值以及4個(gè)邊界回歸值的輸出再輸入到RoI(region of interest)池化層,RoI的具體原理就是利用max pooling的方式從基礎(chǔ)卷積網(wǎng)絡(luò)的頂層特征圖中得到目標(biāo)圖像的推薦區(qū);最后將RoI輸入到全連接層,然后通過(guò)邊界框預(yù)測(cè)層和Softmax層分別得到具體類別和邊界框。上述過(guò)程針對(duì)已經(jīng)訓(xùn)練好的網(wǎng)絡(luò)。
本文基本思路是在Faster R-CNN模型對(duì)目標(biāo)圖像檢測(cè)的一般原理基礎(chǔ)上,在一些方面對(duì)其進(jìn)行改進(jìn),使性能更優(yōu)。在之前的研究中,文獻(xiàn)[5]針對(duì)模型檢測(cè)尺度單一和特征信息利用率低的問(wèn)題,在傳統(tǒng)FPN(feature pyramid network)網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上增加了反向的特征融合過(guò)程;文獻(xiàn)[6]依據(jù)絕大多數(shù)交通標(biāo)志是圓形、正方形和三角形的特點(diǎn),重新設(shè)計(jì)了RPN網(wǎng)絡(luò)的錨盒;文獻(xiàn)[7-8]運(yùn)用將目標(biāo)圖像的灰度圖和其在二維速度場(chǎng)相結(jié)合的方法;文獻(xiàn)[9-10]運(yùn)用背景差分法實(shí)現(xiàn)目標(biāo)檢測(cè),具體就是建立圖像的背景模板,通過(guò)檢測(cè)當(dāng)前圖像幀與背景模板之間的差分得到當(dāng)前場(chǎng)景下的目標(biāo)檢測(cè);文獻(xiàn)[11-13]運(yùn)用方向梯度直方圖、局部紋理特征的方法將提取的特征傳輸至支持向量機(jī)進(jìn)行目標(biāo)檢測(cè);文獻(xiàn)[14-17]利用激光點(diǎn)云與圖像信息融合進(jìn)而實(shí)現(xiàn)交通標(biāo)志的檢測(cè)。文獻(xiàn)[18]在原模型中加入多尺度融合方法,利用不同大小的卷積核來(lái)提取感受野不同的特征。盡管上述文獻(xiàn)針對(duì)Faster R-CNN模型在圖像目標(biāo)檢測(cè)方面的改進(jìn)都取得了較好效果,但在網(wǎng)絡(luò)結(jié)構(gòu)的改進(jìn)方面仍有進(jìn)一步探究的必要。本文針對(duì)Faster R-CNN模型在對(duì)目標(biāo)圖像形成建議框時(shí)完全依賴基礎(chǔ)卷積網(wǎng)絡(luò)的頂層所生成的特征圖,也就是說(shuō),頂層特征圖的特征數(shù)直接決定了目標(biāo)檢測(cè)的性能,所以本文在Faster R-CNN模型的基礎(chǔ)卷積網(wǎng)絡(luò)中引入殘差連接,用恒等映射的方式豐富頂層特征圖的特征數(shù);針對(duì)基礎(chǔ)卷積網(wǎng)絡(luò)中的池化層在壓縮特征圖時(shí)會(huì)丟失部分語(yǔ)義信息的問(wèn)題,可在每個(gè)池化層前依次加入空洞率為2、3、5和7的空洞卷積,并與其他層配合,以減少池化操作對(duì)語(yǔ)義信息的丟失;利用多尺度特征融合的方法在原模型的基礎(chǔ)卷積網(wǎng)絡(luò)頂層加入特征融合模塊,對(duì)頂層的特征圖再次進(jìn)行不同尺度的特征提取,并在此基礎(chǔ)上利用生物視覺(jué)系統(tǒng)稀疏性的特點(diǎn)對(duì)各個(gè)分支進(jìn)行結(jié)構(gòu)上的優(yōu)化;在RPN階段,加入本文中構(gòu)造的注意力模型,利用注意力機(jī)制的特性對(duì)RPN階段做輔助性的補(bǔ)充。
對(duì)Faster R-CNN模型改進(jìn)前,有必要展示如圖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ò)是一個(gè)主干性質(zhì)的卷積網(wǎng)絡(luò),其頂層特征圖的特征數(shù)將直接影響目標(biāo)檢測(cè)的性能。為豐富頂層特征圖的特征,在原模型的基礎(chǔ)上引入殘差連接,并在4個(gè)池化層前依次加入空洞率rate為2、3、5和7的空洞卷積。為保證生成的特征圖尺寸與未卷積前的特征圖一致,在Padding的設(shè)置上需做到與rate的值相同。因?yàn)閷?duì)于步長(zhǎng)為1、大小為3×3的卷積核(空洞率為1)來(lái)說(shuō),例如要對(duì)一個(gè)大小為7×7的特征圖進(jìn)行特征提取時(shí),還要生成大小為7×7的特征圖,這時(shí)必須將Padding設(shè)為1;當(dāng)用空洞率為2、大小為3×3的卷積核時(shí),等同于用大小為5×5的卷積核進(jìn)行卷積。同樣,為生成大小為7×7的特征圖,須將Padding設(shè)為2;rate為3、5和7亦然。在改進(jìn)模型的第一部分中共包含2個(gè)模塊,并在最大池化層前加入空洞卷積。第一、二模塊的結(jié)構(gòu)框圖分別如圖2、3所示。
圖2 改進(jìn)后模型第1部分的第1模塊結(jié)構(gòu)框圖
圖3 改進(jìn)后模型第1部分的第2模塊結(jié)構(gòu)框圖
需要說(shuō)明的是,為實(shí)現(xiàn)addition層的運(yùn)算,除空洞卷積外的其他卷積的Padding設(shè)為Same;/3×3表示卷積核的大小為3×3;conv.16代表卷積核的個(gè)數(shù)為16,其他亦然;s1表示步長(zhǎng)為1,s2表示步長(zhǎng)為2。在以上模塊中,添加BN(batch-normalization)層的目的是為了提高網(wǎng)絡(luò)模型的收斂速度和泛化能力,同時(shí)將原Faster R-CNN模型的激活函數(shù)ReLU替換為L(zhǎng)eakyReLU。相較ReLU,LeakyReLU在一定程度上避免了負(fù)半軸神經(jīng)元衰亡的現(xiàn)象發(fā)生。
對(duì)原模型改進(jìn)后的第2部分模塊中,用多尺度特征提取與融合的方法對(duì)第一部分模塊的頂層特征圖再次進(jìn)行不同尺度的特征提取;在多尺度特征提取的基礎(chǔ)上依據(jù)感受野相同的理論將卷積核進(jìn)行等價(jià),具體是用幾個(gè)3×3卷積核去替代5×5卷積核和7×7卷積核,這樣做可以在3×3的卷積核之間增加更多的非線性激活函數(shù),進(jìn)而提高模型的泛化能力;最后運(yùn)用生物視覺(jué)系統(tǒng)的稀疏性對(duì)以上網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行優(yōu)化,具體是將3×3的卷積核進(jìn)行拆分。多尺度特征提取與融合模塊中5條支路的卷積層及參數(shù)設(shè)置如表1所示。
表1 5條支路的卷積層及參數(shù)情況
在表1中,卷積1×3和3×1的Padding設(shè)為Same;maxpool的Padding設(shè)為1。在第2部分中改進(jìn)后模塊的結(jié)構(gòu)見(jiàn)圖4。
圖4 改進(jìn)后模型第2部分的結(jié)構(gòu)框圖
在原模型改進(jìn)后的第3部分模塊中引入生物視覺(jué)的注意力機(jī)制。對(duì)于高等生物尤其是人類來(lái)說(shuō),注意力機(jī)制有著相當(dāng)重要的作用[19],因?yàn)閺男畔⒌慕嵌葋?lái)看,它能夠在極短的時(shí)間內(nèi)將重要信息和次要信息區(qū)分開(kāi)來(lái);從能量的角度來(lái)看,它能夠使生物視覺(jué)規(guī)避在次要信息中的能量消耗,進(jìn)而將有限的能量與精力分配給重要信息?;诖颂匦裕岢隽巳鐖D5所示的卷積神經(jīng)網(wǎng)絡(luò)注意力模型[20]。圖5中,F(xiàn)代表特征圖,M代表通過(guò)Softmax函數(shù)從特征圖F中學(xué)習(xí)到的注意力圖,G代表通過(guò)將特征圖F和注意力圖M相對(duì)應(yīng)的通道的值求哈達(dá)瑪積進(jìn)而得到的注意力特征圖。該模型的主要作用就是在模型的訓(xùn)練過(guò)程中,依據(jù)圖像標(biāo)簽及目標(biāo)函數(shù),通過(guò)Softmax函數(shù)使M中的圖像目標(biāo)的期望區(qū)域數(shù)值相對(duì)F較大一些,然后通過(guò)求哈達(dá)瑪積就更凸顯特征圖F中相對(duì)應(yīng)的目標(biāo)區(qū)域的數(shù)值,而G正是該數(shù)值較大的特征的集合。
圖5 基于卷積神經(jīng)網(wǎng)絡(luò)的注意力模型示意圖
依據(jù)上述原理構(gòu)造注意力模型:首先使用全局平均池化對(duì)個(gè)數(shù)為2N的特征圖做特征壓縮,輸出2N個(gè)數(shù)值,然后利用N個(gè)步長(zhǎng)為1、大小為1×1的卷積核做通道壓縮,形成瓶頸層,以減少計(jì)算參數(shù);再利用2N個(gè)步長(zhǎng)為1、大小為1×1的卷積核做通道數(shù)的恢復(fù),同時(shí)需要在這2個(gè)1×1的卷積層之間加入非線性激活函數(shù)LeakyReLU;然后,用BN層對(duì)通道的權(quán)重做歸一化處理;最后將歸一化處理的特征與2N個(gè)原特征圖的對(duì)應(yīng)通道求哈達(dá)瑪積。其中,構(gòu)造的注意力模型如圖6所示。
圖6 本文中構(gòu)造的注意力模型的框圖
改進(jìn)的Faster R-CNN模型的總體結(jié)構(gòu)如圖7所示。
采用中國(guó)交通標(biāo)志數(shù)據(jù)集(CTSDS)來(lái)驗(yàn)證模型的有效性,該數(shù)據(jù)集分為5個(gè)類別,分別為限高(height limitation)、限速(speed limitation)、限重(weight limitation)、警告(warning)和禁止(prohibitory)。為了得到性能上更加穩(wěn)定的分類模型,先分析現(xiàn)實(shí)中交通標(biāo)志中會(huì)出現(xiàn)的影響分類器性能提高的因素,通過(guò)分析了解在現(xiàn)實(shí)中會(huì)存在以下6種情況:① 受自然環(huán)境中天氣狀況的影響,比如雨天,霧天等,從而影響圖像的清晰度和亮度;② 在自然條件和人為因素的影響下,交通標(biāo)志在烈日灼曬、雨水沖刷會(huì)出現(xiàn)褪色和掉漆的現(xiàn)象;③ 受自然界中不可控力和人為自主或非自主因素的影響,交通標(biāo)志會(huì)出現(xiàn)變形和扭轉(zhuǎn)現(xiàn)象;④ 在數(shù)據(jù)集的收集過(guò)程中,由于相機(jī)的拍攝角度和相機(jī)距離、交通標(biāo)志的距離導(dǎo)致拍攝的照片出現(xiàn)模糊和扭曲的現(xiàn)象;⑤ 存在周圍建筑物、來(lái)往行車、樹(shù)木等的遮擋;⑥ 由于距離交通標(biāo)志太過(guò)遙遠(yuǎn),交通標(biāo)志會(huì)呈現(xiàn)一個(gè)縮小的像,具體表現(xiàn)就是小目標(biāo)。6種情況如圖8所示。
圖7 改進(jìn)的Faster R-CNN模型的總體結(jié)構(gòu)框圖
圖8 影響分類器性能的6種情況
針對(duì)上述6種情況,一方面,可以采取的措施就是在采集交通標(biāo)志圖片的過(guò)程中做到有針對(duì)性的采集,比如在不同天氣情況下采集圖片,同時(shí)加大對(duì)褪色、掉漆、變形、扭轉(zhuǎn)、模糊的交通標(biāo)志的采集力度;另一方面,可以運(yùn)用數(shù)據(jù)增強(qiáng)的手段來(lái)模擬交通標(biāo)志在現(xiàn)實(shí)中真實(shí)存在的情況,本文采取添加-5、0、5和10 dB高斯噪聲的方式來(lái)模擬現(xiàn)實(shí)中交通標(biāo)志會(huì)出現(xiàn)污點(diǎn)的情況;對(duì)數(shù)據(jù)集部分圖像的東、西、南、北、東南、東北、西南和西北共8個(gè)方位添加5%、10%、15%和20%的不同程度的遮擋以模擬現(xiàn)實(shí)中存在的遮擋情況,從而使數(shù)據(jù)集更加完備,進(jìn)而利用以上增廣后的數(shù)據(jù)集訓(xùn)練模型,以提高檢測(cè)性能。
增廣后的數(shù)據(jù)集中,每個(gè)類別的圖片數(shù)量為2 000張。需要指明的是,本文中將數(shù)據(jù)集按照95%和5%的比例拆分為大小為9 500的訓(xùn)練集和500的測(cè)試集。對(duì)于訓(xùn)練集的標(biāo)簽標(biāo)記,采用Matlab的Image Labeler APP對(duì)含有9 500張圖片的訓(xùn)練集進(jìn)行逐一標(biāo)記。
實(shí)驗(yàn)平臺(tái):lenovo臺(tái)式電腦;操作系統(tǒng)為64位的Windows 10;CPU型號(hào)為intel(R)-Core(TM)i5-4590,頻率是3.30 GHz;GPU型號(hào)為NVIDIA的GeForce-GT-705;軟件環(huán)境為Matlab R2021a;深度學(xué)習(xí)框架為Caffe。
對(duì)于Faster R-CNN模型的RPN模塊,它在訓(xùn)練時(shí)會(huì)從每張圖片中獲取很多anchor,該模型依據(jù)IoU的具體數(shù)值從而選取一定數(shù)量的正負(fù)樣本,一般正樣本滿足的條件是真值框與anchor的IoU值大于0.7,而負(fù)樣本滿足的條件是真值框與anchor的值IoU小于0.3。模型默認(rèn)mini-batch為256,其中正負(fù)樣本比例為50%和50%,也就是正負(fù)樣本數(shù)分別為128和128。如果出現(xiàn)正樣本數(shù)不足128的情況,就用負(fù)樣本加以補(bǔ)充,以保證出現(xiàn)256個(gè)錨盒(anchor)。但這樣會(huì)存在一定的問(wèn)題,即在數(shù)據(jù)集中絕大多數(shù)的圖片只會(huì)包含1—4個(gè)交通標(biāo)志,嚴(yán)重影響正負(fù)樣本的均衡性。表2為8次迭代過(guò)程中的正樣本和負(fù)樣本數(shù)。
從表2中的數(shù)據(jù)可以看出,在每次迭代過(guò)程中,正樣本數(shù)在30上下浮動(dòng),所以為了達(dá)到正負(fù)樣本數(shù)據(jù)的均衡性,可將mini-batch設(shè)為64,使正負(fù)樣本數(shù)均為32,因?yàn)?2是8的整數(shù)倍,便于數(shù)據(jù)處理。
表2 8次迭代過(guò)程中的正樣本和負(fù)樣本數(shù)
RPN的損失函數(shù)是一個(gè)多任務(wù)損失函數(shù),它包含最小化分類誤差與正樣本的窗口位置偏差2個(gè)代價(jià)函數(shù)[21]。其中,總損失函數(shù)為
(1)
分類損失Lcls定義為:
(2)
回歸損失Lreg定義為:
(3)
對(duì)于改進(jìn)模型的預(yù)訓(xùn)練,由于德國(guó)交通標(biāo)志數(shù)據(jù)集(German traffic sign data set,GTSDS)和CTSDS數(shù)據(jù)集存在共性,所以從GTSDS數(shù)據(jù)集中抽取限高、限速、限重、警告和禁止5類圖片,每類圖片隨機(jī)抽取60張并用Matlab的Image Labeler APP對(duì)選取的300張圖片逐一標(biāo)記。同時(shí),在學(xué)習(xí)率的設(shè)置中,先選擇數(shù)值為1×10-3的學(xué)習(xí)率,經(jīng)過(guò)100輪(epoch)終止網(wǎng)絡(luò)初步預(yù)訓(xùn)練,再選擇數(shù)值為1×10-4的學(xué)習(xí)率來(lái)訓(xùn)練網(wǎng)絡(luò),直到損失率不再下降為止。此過(guò)程大約需要300輪,當(dāng)預(yù)訓(xùn)練完成后,保存權(quán)重文件,為訓(xùn)練網(wǎng)絡(luò)做準(zhǔn)備。
在網(wǎng)絡(luò)的訓(xùn)練過(guò)程中,選擇可使參數(shù)更新更加平穩(wěn)的Adam算法作為優(yōu)化算法。對(duì)于學(xué)習(xí)率的選擇,可將訓(xùn)練拆分為3個(gè)過(guò)程,前80×103輪的學(xué)習(xí)率設(shè)置為1×10-3,接下來(lái)直到120×103輪前的學(xué)習(xí)率設(shè)置為1×10-4,最后直到160×103輪的學(xué)習(xí)率設(shè)為1×10-5。當(dāng)損失率不再下降后,保存權(quán)重文件,接著用測(cè)試集去檢驗(yàn)這個(gè)訓(xùn)練好的模型的性能。圖9和圖10分別為位置損失曲線和交叉熵?fù)p失曲線。
圖9 位置損失
圖10 交叉熵?fù)p失
從圖9曲線的走勢(shì)可以看出,當(dāng)改進(jìn)的模型迭代到10×103輪后,位置損失曲線基本穩(wěn)定在0.5左右。從圖10曲線的走勢(shì)可以看出,當(dāng)改進(jìn)的模型迭代到10×103輪后,交叉熵?fù)p失曲線基本趨于穩(wěn)定。
在評(píng)估模型性能時(shí)需要用到2個(gè)指標(biāo),它們分別是精確率與召回率(precision and recall),分別用式(4)和式(5)表示。
(4)
(5)
其中:TP表示正確檢測(cè)的真目標(biāo)數(shù);FP表示假目標(biāo)卻被確定為真目標(biāo)數(shù);FN表示真目標(biāo)被錯(cuò)誤確定為假目標(biāo)數(shù)。
用測(cè)試集去檢測(cè)已經(jīng)訓(xùn)練好的模型。測(cè)試集共有5個(gè)類別,每個(gè)類別有100張圖片。具體的檢測(cè)結(jié)果如表3所示。需要指出的是:表格第1行表示測(cè)試樣本的真類別,表格第1列表示本文方法的預(yù)測(cè)類別。
表3 本文方法下對(duì)5類目標(biāo)的測(cè)試結(jié)果
通過(guò)表4中的數(shù)據(jù)可以得到5類目標(biāo)的平均識(shí)別率為98.8%。為了驗(yàn)證改進(jìn)模型的有效性,選取5個(gè)具有代表性的目標(biāo)檢測(cè)網(wǎng)絡(luò)與本文的改進(jìn)模型做對(duì)比實(shí)驗(yàn)。選取的檢測(cè)模型為Fast-R-CNN、Faster R-CNN、SSD(single shot multibox detector)、YOLO(you only look once)-V2和YOLO-V3。從表4可以看出,5類目標(biāo)的精準(zhǔn)率均達(dá)到98%以上,平均識(shí)別率為98.8%。圖11說(shuō)明本文方法具有較高的識(shí)別性能,證實(shí)了本文方法的有效性。
表4 本文方法下對(duì)5類目標(biāo)的精確率和召回率
實(shí)驗(yàn)數(shù)據(jù)經(jīng)過(guò)處理后的平均識(shí)別率如圖11所示。
為驗(yàn)證改進(jìn)Faster R-CNN模型的性能,運(yùn)用CTSDS數(shù)據(jù)集。在測(cè)試結(jié)果的顯示時(shí),用不同顏色的矩形框標(biāo)出交通標(biāo)志的目標(biāo)位置,并在該矩形框的上方顯示出預(yù)測(cè)類別及置信度,具體的檢測(cè)結(jié)果如圖12所示。
圖11 6種模型對(duì)5類目標(biāo)的平均識(shí)別率
圖12 5類交通標(biāo)志的目標(biāo)檢測(cè)結(jié)果
基于Faster R-CNN模型對(duì)目標(biāo)圖像進(jìn)行檢測(cè)的一般原理,對(duì)該網(wǎng)絡(luò)的結(jié)構(gòu)進(jìn)行改進(jìn)。CTSDS數(shù)據(jù)集測(cè)試結(jié)果表明,對(duì)5類交通標(biāo)志的平均識(shí)別率為98.8%,高于實(shí)驗(yàn)中所選取的具有代表性的目標(biāo)檢測(cè)網(wǎng)絡(luò)模型,證實(shí)了新算法的有效性。但該模型存在內(nèi)存占用率較高的問(wèn)題,與當(dāng)下流行的輕量化模型存在一定矛盾,在這方面改進(jìn)模型仍有很大的提升空間。