榮 亮, 高清維, 李笑語(yǔ), 盧一相, 孫 冬
(安徽大學(xué) 電氣工程與自動(dòng)化學(xué)院,安徽 合肥 230601)
目標(biāo)檢測(cè)是事件檢測(cè)、活動(dòng)識(shí)別、場(chǎng)景理解、目標(biāo)追蹤等許多高級(jí)視覺任務(wù)的必備前提,廣泛應(yīng)用于視頻監(jiān)控、自動(dòng)駕駛、智能交通系統(tǒng)以及人機(jī)交互等眾多實(shí)際任務(wù)。傳統(tǒng)的目標(biāo)檢測(cè)算法大部分是人為干預(yù)設(shè)計(jì)特征信息,例如:由Viola P和Jones M在2001年提出的Viola-Jones[1]框架,以及利用方向梯度直方圖(histogram of oriented gradients,HOG)特征和支持向量機(jī)(support vector machine,SVM)進(jìn)行分類的DPM[2]算法。2012年出現(xiàn)了基于深度學(xué)習(xí)理論的深度卷積神經(jīng)網(wǎng)絡(luò)(deep convolutional neural network,DCNN)圖像分類算法[3,4],使得圖像分類的準(zhǔn)確率大幅提高,從而也促進(jìn)了目標(biāo)檢測(cè)準(zhǔn)確率的增加。隨著機(jī)器學(xué)習(xí)理論的發(fā)展,通過深度學(xué)習(xí)進(jìn)行目標(biāo)檢測(cè)成為研究的熱點(diǎn)之一。出現(xiàn)了如R-CNN[5],Faster R-CNN[6]和SSD[7]等用于目標(biāo)檢測(cè)的神經(jīng)網(wǎng)絡(luò)框架,在目標(biāo)檢測(cè)領(lǐng)域取得了優(yōu)秀的成績(jī)。
目前基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法,還難以滿足自動(dòng)駕駛等精度系數(shù)要求較高的任務(wù)。為此許多學(xué)者對(duì)單階段檢測(cè)模型進(jìn)行諸多改進(jìn),例如文獻(xiàn)[8]提出利用轉(zhuǎn)置卷積對(duì)SSD檢測(cè)能力的改進(jìn)的方法以及溫捷文等人設(shè)計(jì)的Atrous濾波器[9]都從一定程度上提升了單階段檢測(cè)網(wǎng)絡(luò)對(duì)于小目標(biāo)和遮擋目標(biāo)的檢測(cè)能力,但均效果有限。
本文以RefineDet[10]網(wǎng)絡(luò)為基礎(chǔ),通過2個(gè)卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)與1個(gè)循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)的并聯(lián),先粗略定位目標(biāo)位置再由細(xì)定位模塊精確修正檢測(cè)框,在保證了檢測(cè)速度的同時(shí)引入注意力機(jī)制,使得被遮擋的小目標(biāo)也能精準(zhǔn)定位,檢測(cè)精度顯著提升的同時(shí)也取得了優(yōu)于Faster R-CNN等目標(biāo)檢測(cè)網(wǎng)絡(luò)的時(shí)效性。
RefineDet可以看成是RPN與單階段框架SSD模型的并聯(lián)結(jié)構(gòu),主要由Anchor微調(diào)模塊(ARM)和檢測(cè)模塊(ODM)組成,由中科院自動(dòng)化所在2018年提出,檢測(cè)精度幾乎算是當(dāng)前最優(yōu),且擁有24 FPS的不錯(cuò)速度,其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。其中ARM的作用是移除負(fù)樣本的檢測(cè)框從而為分類器減少搜索運(yùn)算量,同時(shí)粗略調(diào)整Anchors的位置和大小,以便為隨后的回歸器提供更佳的初始化結(jié)果。
圖1 RefineDet結(jié)構(gòu)
而為了在ARM和ODM之間建立鏈接,RefineDet設(shè)置了傳輸連接塊(TCB)將來(lái)自ARM的不同層的信息變成符合ODM所需的形式。TCB傳輸不僅可以在ODM中預(yù)測(cè)目標(biāo)的位置、尺寸和類別標(biāo)簽,還將ARM的高層特征反向添加到傳輸?shù)奶卣鱽?lái)繼承大規(guī)模的上下文,從而提高了檢測(cè)的準(zhǔn)確性。
ODM則是SSD網(wǎng)絡(luò)的改進(jìn),由TCB的輸出作為輸入信息,根據(jù)微調(diào)之后的Anchors將結(jié)果回歸到準(zhǔn)確的目標(biāo)位置并預(yù)測(cè)多類別標(biāo)簽。
由于SSD基于全卷積的檢測(cè)框架,各個(gè)卷積層負(fù)責(zé)檢測(cè)對(duì)應(yīng)大小的目標(biāo),并沒有把上下文語(yǔ)義聯(lián)系起來(lái),越往后位置信息丟失越多,對(duì)遮擋目標(biāo)檢測(cè)能力較弱,其對(duì)于檢測(cè)目標(biāo)特征圖層的運(yùn)算函數(shù)可以由下表示
γn=fn(fn-1(fn-2(…(f1(x)))))
(1)
φ=g(hn(γn),hn-1(γn-1),…,hn-m(γn-m))
(2)
式中fn為各層神經(jīng)網(wǎng)絡(luò)的非線性映射,輸入圖像x經(jīng)過網(wǎng)絡(luò)的特征提取對(duì)應(yīng)生成第n層特征圖γn,hn把對(duì)應(yīng)的γn轉(zhuǎn)換為目標(biāo)檢測(cè)的輸入,最終通過g(·)函數(shù)綜合考慮各個(gè)輸入后輸出檢測(cè)結(jié)果φ。當(dāng)m偏大時(shí)經(jīng)過多層網(wǎng)絡(luò)γn-m包含信息非常抽象,大量基礎(chǔ)信息丟失,從而導(dǎo)致hn-m(·)非常難以學(xué)習(xí)得到。
為了保證目標(biāo)檢測(cè)的速度和對(duì)遮擋目標(biāo)的準(zhǔn)確性,ODM使用SSD框架為基礎(chǔ),利用特征融合RNN聯(lián)系上下文語(yǔ)義,從而得到
γ=Grnn(γn,γn-1,γn-2,…,γn-m)
(3)
添加了特征融合RNN后,式(2)變?yōu)橄率?/p>
φ=g(hn(γ),hn-1(γ),…,hn-m(γ))
(4)
使得γ既包含了淺層特征也包含了語(yǔ)義豐富的高層特征,即使在m很大的情況下,hn-m也容易準(zhǔn)確訓(xùn)練。RefineDet采用了兩步級(jí)聯(lián)回歸。在ARM中先調(diào)整Anchor的位置和大小,然后用粗略的操作作為ODM的輸入,最后ODM再進(jìn)一步檢測(cè)和識(shí)別物體,這種做法會(huì)有更加精確的檢測(cè)結(jié)果。
采用將注意力機(jī)制引入目標(biāo)檢測(cè)網(wǎng)絡(luò),檢測(cè)框架流程如下:1)圖片輸入后首先通過粗定位模塊,從而得到粗粒度的檢測(cè)框并去除一些負(fù)樣本。2)輸出檢測(cè)框的坐標(biāo)直接傳遞給細(xì)定位模塊和特征圖給RNN將高層特征信息和底層特征信息融合到一起,從而避免目標(biāo)信息的丟失。3)由細(xì)定位模塊根據(jù)融合的特征圖,在注意力機(jī)制下對(duì)粗定位的檢測(cè)框坐標(biāo)進(jìn)行精確定位和目標(biāo)分類。
采用RefineDet兩步級(jí)聯(lián)回歸的思想,本文的檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。本文使用ResNet101[11]為特征提取網(wǎng)絡(luò)為例,圖中粗定位模塊的前三個(gè)卷積層為ResNet101網(wǎng)絡(luò)本身的輸出層,最后一層是另外添加的一個(gè)殘差模塊?;?層特征最后得到兩條支路,一個(gè)檢測(cè)框的坐標(biāo)回歸支路,另一個(gè)是檢測(cè)框的二分類支路。細(xì)定位模塊是改進(jìn)的SSD模型,融合了不同層的特征,然后做框架坐標(biāo)精確回歸和多分類。該部分的輸入anchors是粗定位部分傳來(lái)的坐標(biāo)信息。所以本文算法預(yù)測(cè)檢測(cè)是基于每層特征圖進(jìn)行,最后將各層結(jié)果再整合到一起。
圖2 目標(biāo)檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu)
傳統(tǒng)的SSD算法中直接使用淺層的特征圖,并沒有和高層的特征層融合再使用,也就是說神經(jīng)網(wǎng)絡(luò)對(duì)檢測(cè)框的預(yù)測(cè)是在每一個(gè)特征層上單個(gè)進(jìn)行的,最后再將各層預(yù)測(cè)后得到的結(jié)果整合在一起。而采用把每層特征圖都與損失函數(shù)相連且設(shè)計(jì)了特征融合RNN連接兩個(gè)定位模塊做法的優(yōu)點(diǎn)在于不會(huì)丟失淺層信息,網(wǎng)絡(luò)對(duì)遮擋目標(biāo)和小型目標(biāo)的檢測(cè)精度更佳,從而提升整體檢測(cè)準(zhǔn)確度,這一點(diǎn)在FPN[12]和RON[13]等網(wǎng)絡(luò)框架中已經(jīng)有了詳細(xì)的證明。
采用一個(gè)循環(huán)神經(jīng)網(wǎng)絡(luò)來(lái)代替RefineDet中多個(gè)TCB模塊。特征融合層如圖3所示。結(jié)構(gòu)通過將高級(jí)特征傳遞到每層特征層來(lái)組成大量相互關(guān)聯(lián)的上下文信息,從而提高了檢測(cè)的準(zhǔn)確性。同時(shí)為了匹配它們之間的尺寸,通過反卷積的操作來(lái)加強(qiáng)高層特征的映射并以元素方式進(jìn)行求和,最后通過額外設(shè)置的卷積層來(lái)確保檢測(cè)特征的辨別力。所提方法將來(lái)自粗定位的不同層的特征圖轉(zhuǎn)換為細(xì)定位模塊所需的形式,以便細(xì)定位模塊可以共享來(lái)自粗定位的特征。
圖3 特征融合RNN
值得一提的是,深度學(xué)習(xí)中的注意力機(jī)制同樣可以添加到RNN中,形成一種基于注意力的特征融合RNN。
本文根據(jù)計(jì)算出的注意力權(quán)重向量對(duì)卷積輸出結(jié)果過進(jìn)行賦權(quán)重使用的注意力機(jī)制,具體流程如下:
對(duì)于定位模塊卷積層傳來(lái)的長(zhǎng)寬為H,W,通道數(shù)為C的輸入X,首先通過一式對(duì)其進(jìn)行空間池化得到Y(jié)
(5)
然后進(jìn)行注意力權(quán)重的學(xué)習(xí),并通過Sigmoid函數(shù)將其壓縮到1×1×C的列向量空間I
(6)
(7)
最后如式(8)將學(xué)習(xí)來(lái)的注意力權(quán)重和原始輸入相乘得到經(jīng)注意力機(jī)制調(diào)整后的輸入,再傳入到網(wǎng)絡(luò)用于精確定位和目標(biāo)分類
X′hw=Xhw·I
(8)
損失函數(shù)如式(9)所示
α(∑iLm(ci,li)+∑iLr(li,ti,gi))
(9)
顯而易見地由粗定位損失和細(xì)定位損失構(gòu)成,而每個(gè)定位框架的損失函數(shù)又含定位損失加上類別置信度損失兩部分,共計(jì)4個(gè)部分組成。其中,N為匹配的檢測(cè)框數(shù)量,α為平衡粗定位和細(xì)定位之間的權(quán)重,通過交叉驗(yàn)證實(shí)驗(yàn)本文將其數(shù)值設(shè)置為1,而pi為置信度,ci為預(yù)測(cè)類別,xi為粗定位模塊的位置信息,ti為細(xì)定位模塊位置信息,li為給定的標(biāo)準(zhǔn)框類別,gi為給定的標(biāo)準(zhǔn)框坐標(biāo)和大小信息。Lb和Lm分別為SSD模型中的二分類損失函數(shù)和多類別損失,Lr為預(yù)測(cè)框和標(biāo)準(zhǔn)框坐標(biāo)信息之間的回歸損失,具體如下所示
(10)
這樣就使得預(yù)測(cè)框與真實(shí)框之間位置越相近關(guān)于類別p越匹配,則損失越小。在粗細(xì)兩個(gè)定位模塊損失函數(shù)的訓(xùn)練下,預(yù)測(cè)得到精確的檢測(cè)框。
本文的遮擋目標(biāo)檢測(cè)實(shí)驗(yàn)計(jì)算機(jī)硬件配置是Intel Core i7—7700k CPU和Nvidia GeForce GTX 1080Ti,使用Tensorflow深度學(xué)習(xí)框架利用GPU訓(xùn)練網(wǎng)絡(luò)參數(shù)進(jìn)行試驗(yàn)。訓(xùn)練所采用的圖像數(shù)據(jù)來(lái)自PASCAL VOC 2007和VOC 2012,訓(xùn)練集經(jīng)過翻轉(zhuǎn)和隨機(jī)截取擴(kuò)充以提升模型健壯性。網(wǎng)絡(luò)卷積層數(shù)和各層卷積核尺寸如圖3所示。步長(zhǎng)全部為1;網(wǎng)絡(luò)權(quán)重初始值服從均值為0,標(biāo)準(zhǔn)差為0.1的正態(tài)分布,偏置初始值全部設(shè)為0。池化操作采用SAME模式,步長(zhǎng)為2的最大池化。最后通過Adam[14]算法優(yōu)化損失函數(shù),學(xué)習(xí)率設(shè)為0.001。
使用其他模型與本文使用注意力機(jī)制的網(wǎng)絡(luò)模型進(jìn)行對(duì)比實(shí)驗(yàn),部分結(jié)果如圖4所示。
圖4 試驗(yàn)結(jié)果對(duì)比圖
從主觀視覺上可以看出本文框架對(duì)遮擋和小型目標(biāo)具有明顯優(yōu)勢(shì)。融入注意力的模型識(shí)別出了包含大量遮擋車輛在內(nèi)的所有車輛,并且獲得了相對(duì)于Faster RCNN更好的檢測(cè)框,而SSD框架并沒有識(shí)別出重疊的汽車。
將目前性能最優(yōu)越的幾種目標(biāo)檢測(cè)模型與本文框架在VOC 2007和2012上測(cè)試其性能指標(biāo)并記錄在表1上。
可以看出,無(wú)論是采用VGG—16還是ResNet—101作為特征提取網(wǎng)絡(luò)時(shí),本文模型在測(cè)試集上的mAP值都要比其他模型更高。特別是在ResNet—101網(wǎng)絡(luò)進(jìn)行特征提取時(shí),本文框架的速度同樣取得了略低于RefineNet的優(yōu)秀成績(jī)。
表1 目標(biāo)檢測(cè)算法性能對(duì)比
而特征提取網(wǎng)絡(luò)是VGG—16時(shí),其FPS值略低于SSD512。整體上,本文算法對(duì)于目標(biāo)檢測(cè)的準(zhǔn)確性優(yōu)于其他傳統(tǒng)檢測(cè)算法,雖然因?yàn)橐肓硕味ㄎ粚?dǎo)致網(wǎng)絡(luò)速度指標(biāo)比較差,但依然遠(yuǎn)優(yōu)于雙階段模型,滿足精確快速的檢測(cè)要求。
由于目標(biāo)檢測(cè)實(shí)驗(yàn)的誤差基本都是來(lái)自對(duì)于體積小,密度高和受遮擋目標(biāo)的忽略或錯(cuò)誤分類,為了進(jìn)一步驗(yàn)證本文提出的檢測(cè)網(wǎng)絡(luò)對(duì)遮擋目標(biāo)和小型目標(biāo)的突出檢測(cè)能力,改用遮擋和小型目標(biāo)較多的COCO數(shù)據(jù)集來(lái)檢測(cè)上述網(wǎng)絡(luò)的性能。通過表2可以看出各個(gè)目標(biāo)檢測(cè)網(wǎng)絡(luò)在COCO數(shù)據(jù)集上的評(píng)價(jià)指標(biāo)對(duì)比中,文中提出的檢測(cè)網(wǎng)絡(luò)不僅高于全部單框架檢測(cè)模型也超過了以Faster R-CNN為代表的雙框架模型。
表2 COCO數(shù)據(jù)集上各檢測(cè)算法性能指標(biāo)
本文基于RefineNet模型并聯(lián)了RNN和CNN多個(gè)網(wǎng)絡(luò),通過二次定位的策略在融合了不同層次的特征信息后,由細(xì)定位模塊在注意力機(jī)制的基礎(chǔ)下對(duì)遮擋目標(biāo)進(jìn)行精確檢測(cè),在滿足接近單階段模型快速時(shí)效性的標(biāo)準(zhǔn)下獲得了對(duì)遮擋物體更為精確的檢測(cè)效果。但是由于人工神經(jīng)網(wǎng)絡(luò)的注意力機(jī)制和人類的注意力機(jī)制還是有所區(qū)別,它需要額外用一個(gè)矩陣去存儲(chǔ)其權(quán)重,其實(shí)增加了開銷。因此如何優(yōu)化加速該神經(jīng)網(wǎng)絡(luò)是未來(lái)需要思考解決的主要問題。其次在CNN和RNN中皆可添加注意力機(jī)制,本文只是通過實(shí)驗(yàn)顯示細(xì)定位模塊中添加注意力機(jī)制的效果優(yōu)于RNN中添加注意力機(jī)制的效果,對(duì)于哪種方式最佳缺少理論分析,這也是接下來(lái)急需解決的問題。