陳鴻坤 羅會蘭
(江西理工大學(xué)信息工程學(xué)院 贛州 341000)
目標(biāo)檢測是計(jì)算機(jī)視覺領(lǐng)域的熱點(diǎn)研究課題,它的主要任務(wù)是對輸入圖像中的目標(biāo)物體進(jìn)行定位和分類。近年來,基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測算法相對于傳統(tǒng)算法取得了突破性的進(jìn)展,已經(jīng)得到廣泛應(yīng)用,但是由于檢測圖像中的小尺度目標(biāo)僅具有少量的像素點(diǎn),所包含的特征信息非常少,而且小尺度目標(biāo)的特征經(jīng)過多次下采樣后容易丟失,使得特征提取網(wǎng)絡(luò)很難提取到小尺度目標(biāo)的特征,這就造成小尺度目標(biāo)難以精確檢測。而在密集目標(biāo)檢測場景中,不但存在大量小尺度目標(biāo),而且目標(biāo)間有較嚴(yán)重的遮擋問題,使得密集目標(biāo)的特征提取變得更加困難,所以小尺度目標(biāo)和密集目標(biāo)的檢測仍然是目標(biāo)檢測領(lǐng)域中的難點(diǎn)和挑戰(zhàn)。
圖像中經(jīng)常存在著大量尺度變化劇烈的目標(biāo)物體,為了解決尺度變化問題,Liu等人[1]提出了單極多盒檢測器(Single Shot multibox Detector, SSD)算法,其采用了多尺度特征檢測思想,利用多個(gè)不同卷積層的不同尺度特征實(shí)現(xiàn)預(yù)測各種尺度的物體。但是,由于淺層特征缺乏語義信息,高層特征缺乏空間細(xì)節(jié)信息,SSD算法簡單提取多尺度特征,沒有考慮到不同尺度間的相關(guān)性,以至于不同層的語義信息[2]沒有得到充分利用,所以其對小目標(biāo)物體的檢測準(zhǔn)確度較低。為了更好地解決這個(gè)問題,文獻(xiàn)[3]提出了特征金字塔網(wǎng)絡(luò)(Feature Pyramid Network, FPN),通過最近鄰上采樣操作額外構(gòu)建了一個(gè)自頂向下的路徑,并通過橫向連接將高、低層中相同尺度的特征融合,有效減少了不同尺度特征間的語義信息差異,檢測精度得到提高。在此基礎(chǔ)上,基于SSD網(wǎng)絡(luò)模型的改進(jìn)研究DSSD[4],利用反卷積操作構(gòu)建FPN結(jié)構(gòu)提取多尺度特征,獲得了較高的檢測精度,但是它的性能提升依賴于龐大的ResNet101[5]模型,導(dǎo)致檢測效率大幅度下降。FSSD[6]算法和感受野模塊網(wǎng)絡(luò)(Receptive Field Block Network,RFB-Net)算法[7]在SSD算法的基礎(chǔ)上進(jìn)行改進(jìn),大幅度提高檢測精度的同時(shí)保持了實(shí)時(shí)的檢測速度。FSSD算法將淺層中3個(gè)不同尺度特征進(jìn)行簡單的拼接融合作為基準(zhǔn)特征,并在基準(zhǔn)特征的基礎(chǔ)上進(jìn)行一系列卷積下采樣提取不同尺度特征,通過淺層特征間的信息融合,有效提高了檢測器對小尺度目標(biāo)的檢測效果。RFB-Net則是利用3個(gè)不同擴(kuò)張率的卷積層以Inception結(jié)構(gòu)構(gòu)建了RFB模塊,增強(qiáng)網(wǎng)絡(luò)的感受野,對大尺度物體的檢測效果有很好的提升。上述方法都是在SSD算法的基礎(chǔ)上,采用了不同的特征融合方式改進(jìn)不同尺度特征的表征能力,從而提高模型對目標(biāo)尺度變換的魯棒性,雖然在一定程度上提升了模型對小物體的檢測效果,但是沒有著重關(guān)注淺層特征的作用,提取的淺層特征缺乏足夠的語義信息,導(dǎo)致沒有足夠的能力來檢測小目標(biāo),存在較為嚴(yán)重的小目標(biāo)漏檢和誤檢問題。
對于目標(biāo)檢測任務(wù)來說,卷積神經(jīng)網(wǎng)絡(luò)中的淺層特征保留了豐富的空間細(xì)節(jié)特征,對小尺度目標(biāo)和密集目標(biāo)的檢測至關(guān)重要,但語義信息的缺乏限制了淺層特征的作用。為了提高小目標(biāo)和密集目標(biāo)檢測性能,本文提出了一種新的融合多尺度語義信息以增強(qiáng)淺層特征的目標(biāo)檢測方法,旨在通過注意力機(jī)制強(qiáng)化有目標(biāo)區(qū)域的淺層特征,從而獲得更好的目標(biāo)檢測效果。本文的貢獻(xiàn)主要體現(xiàn)在以下幾個(gè)方面:
(1) 設(shè)計(jì)了多尺度語義信息融合模塊對基礎(chǔ)融合特征進(jìn)行語義信息增強(qiáng);
(2) 設(shè)計(jì)了特征重利用模塊,通過語義特征指導(dǎo)基礎(chǔ)融合特征進(jìn)行通道注意力加權(quán);
(3) 提出方法的檢測精度在PASCAL VOC2007[8]數(shù)據(jù)集上相對于SSD512算法提高了2.7%,在MS COCO2014[9]數(shù)據(jù)集上相對于SSD512算法提高了4.9%。提出的淺層增強(qiáng)特征網(wǎng)絡(luò)有效地提高了網(wǎng)絡(luò)模型對小尺度目標(biāo)和密集目標(biāo)的檢測效果,在MS COCO2014數(shù)據(jù)集上,對小目標(biāo)檢測精度相較于RFB512網(wǎng)絡(luò)提高了1.6%,小目標(biāo)召回率提高了1.8%。
本文提出了結(jié)合多尺度語義信息和特征重利用來獲取淺層增強(qiáng)特征的目標(biāo)檢測模型,簡稱為淺層特征增強(qiáng)網(wǎng)絡(luò)(Shallow Enhanced Feature Network,SEFN)算法。具體框架如圖1所示,主要設(shè)計(jì)了3個(gè)融合模塊對淺層特征進(jìn)行多尺度語義信息融合和特征重利用,從而獲取淺層增強(qiáng)特征,并在此基礎(chǔ)上提取多尺度特征進(jìn)行檢測,使模型在小目標(biāo)檢測上的性能獲得顯著提高。拼接融合模塊是將多層淺層特征進(jìn)行融合,獲得具有更多詳細(xì)空間細(xì)節(jié)信息的淺層特征,其通過將VGG16中Conv4_3層和Conv5_3層的特征進(jìn)行拼接融合,得到基礎(chǔ)融合特征。多尺度語義信息融合模塊借鑒了語義分割任務(wù)中文獻(xiàn)[10]的啟發(fā),采用特征金字塔結(jié)構(gòu)使得基礎(chǔ)融合特征引入了多尺度特征的語義信息,獲得具有豐富上下文語義信息的語義特征,增強(qiáng)模型對小目標(biāo)的分類能力。特征重利用融合模塊則考慮到語義特征經(jīng)過了一系列卷積和反卷積操作,會丟失部分細(xì)節(jié)紋理信息,所以重利用具有豐富空間細(xì)節(jié)信息的基礎(chǔ)融合特征,并且依據(jù)語義特征進(jìn)行通道注意力加權(quán)融合,更加關(guān)注包含目標(biāo)的區(qū)域,有效提高了模型對小目標(biāo)的檢測精度和召回率。
卷積神經(jīng)網(wǎng)絡(luò)的淺層特征包含豐富的紋理、邊緣等細(xì)節(jié)空間信息,有利于對物體進(jìn)行定位,但缺乏全局語義信息,不利于物體的分類。而高層特征具有豐富的語義信息,但丟失了許多空間細(xì)節(jié)信息,不利于小目標(biāo)的檢測。為了緩解這個(gè)問題,F(xiàn)SSD[6]算法通過簡單拼接融合Conv4_3層、FC7層和Conv7_2層的特征,并在融合特征[11]的基礎(chǔ)上進(jìn)行卷積提取多尺度特征,因?yàn)槿诤咸卣鹘⒘?個(gè)不同尺度特征間的聯(lián)系,在一定程度上增加了語義信息和豐富了細(xì)節(jié)信息,所以在小目標(biāo)檢測效果上有一定的提升,但不同尺度間的聯(lián)系過于單薄,增加的語義信息不足以很好地提高淺層特征的分類能力。本文在FSSD[6]算法思想的基礎(chǔ)上,更加關(guān)注淺層特征的作用,首先設(shè)計(jì)了淺層特征的拼接融合模塊,獲得基礎(chǔ)融合特征,如圖2所示(示例中的輸入圖像尺寸為300×300)。淺層特征拼接融合模塊的工作原理如式(1)所示
其中,X1, X2表示選取的是VGG16網(wǎng)絡(luò)中Conv4_3層和Conv5_3層卷積特征進(jìn)行融合;T1,T2表示選取的特征在融合前進(jìn)行的變換函數(shù),將特征圖變換到相同尺度以進(jìn)行拼接融合,如圖2所示,Conv4_3層提取的特征大小為38×38×512,而其變換函數(shù)是1×1的卷積層,目的是減少輸入通道數(shù),避免計(jì)算量過大,而Conv5_3層提取的特征大小為19×19×1024,其變換函數(shù)是具有雙線性插值上采樣的1×1卷積層,不僅降低輸入通道數(shù),而且統(tǒng)一了特征圖的大?。幌聵?biāo)f表示的是特征融合函數(shù),本文采用的是拼接(Concatenation)操作;Xf表示獲得的基礎(chǔ)融合特征。
通過簡單拼接融合獲取的基礎(chǔ)融合特征,僅僅加強(qiáng)了空間細(xì)節(jié)特征,缺乏不同尺度間的語義信息,為了給淺層特征添加有效的多尺度語義信息,受語義分割研究領(lǐng)域中文獻(xiàn)[10]提出的空間金字塔注意結(jié)構(gòu)實(shí)現(xiàn)精確的像素級語義分割任務(wù)的啟發(fā),本文設(shè)計(jì)了一個(gè)類似特征金字塔結(jié)構(gòu)的多尺度語義信息融合模塊,結(jié)構(gòu)如圖3所示。
圖3 多尺度語義信息融合模塊
多尺度語義信息融合模塊的輸入是基礎(chǔ)融合特征,由于輸入特征的尺度較大,為了減少網(wǎng)絡(luò)的計(jì)算負(fù)擔(dān),采用小型的1×1或3×3卷積核。該模塊由3個(gè)分支組成,分別如圖3中黃色、綠色和黑色的虛線框,分別命名為全局語義分支、局部信息補(bǔ)充分支、多尺度語義分支。全局語義分支采用了一個(gè)全局平均池化層和一個(gè)1×1的卷積層,目的是提取基礎(chǔ)融合特征的全局語義信息。局部信息補(bǔ)充分支只采用了一個(gè)1×1的卷積層,目的是為接下來的特征融合保留更多的空間細(xì)節(jié)信息。多尺度語義分支則構(gòu)建了小型的特征金字塔結(jié)構(gòu),用于提取其他3個(gè)尺度特征的語義信息。在圖3中黑色虛線框表示的多尺度語義分支中,藍(lán)色的連線表示卷積下采樣操作,紅色的連線表示反卷積上采樣操作,它們之間采用了卷積核大小為3×3,步長為2的卷積層進(jìn)行連接,能夠在不改變特征尺度的同時(shí)減少不同尺度間的語義相似性,隨后采用對應(yīng)元素相加操作逐步將3個(gè)不同尺度特征的語義信息進(jìn)行融合。對局部信息補(bǔ)充分支的輸出和多尺度語義分支的輸出,采用對應(yīng)元素相乘方式進(jìn)行融合,使得特征不僅具有充分的空間細(xì)節(jié)信息,而且融合了多個(gè)尺度的語義信息。隨后,為了更加關(guān)注圖像物體的定位信息,對全局語義分支的全局語義信息,進(jìn)行相加融合,最終得到了與輸入特征相同尺度的語義特征。通過融合3個(gè)分支的不同信息,有效地對淺層特征嵌入了多個(gè)不同尺度的語義信息,加強(qiáng)對小目標(biāo)檢測的能力。多尺度語義信息融合模塊的過程如式(2)所示
卷積神經(jīng)網(wǎng)絡(luò)中的高層特征具有豐富的類別語義信息,有利于指導(dǎo)低層特征進(jìn)行通道注意力加權(quán),使得具有較大空間分辨率的淺層更加關(guān)注存在目標(biāo)的區(qū)域。借鑒文獻(xiàn)[10]中全局注意力上采樣模塊的結(jié)構(gòu),本文設(shè)計(jì)了利用全局注意力信息的特征重利用模塊,以進(jìn)一步加強(qiáng)語義特征,結(jié)構(gòu)如圖4所示。首先對輸入的語義特征進(jìn)行全局平均池化操作,以獲得各個(gè)特征通道的注意力權(quán)重,通過包含批處理歸一化和ReLU操作的1×1卷積層后對基礎(chǔ)融合特征相乘進(jìn)行通道注意力加權(quán),實(shí)現(xiàn)全局語義信息的增強(qiáng)?;A(chǔ)融合特征先經(jīng)過了一個(gè)3×3卷積層處理,目的是保持與語義特征通道數(shù)一致,同時(shí)可以減少特征融合后的混疊效應(yīng),消除各級特征間特征分布的差異。最后將加權(quán)后的基礎(chǔ)融合特征與語義特征進(jìn)行對應(yīng)元素相加融合,形成淺層增強(qiáng)特征。隨后以淺層增強(qiáng)特征為基準(zhǔn),進(jìn)行一系列卷積下采樣操作,同時(shí)提取不同尺度的特征送入檢測分支中進(jìn)行檢測(圖1)。實(shí)驗(yàn)證明融合了不同尺度的語義信息,且具有豐富空間細(xì)節(jié)特征的淺層增強(qiáng)特征能夠更加關(guān)注小目標(biāo)的檢測,不僅對小目標(biāo)的檢測精度有顯著的提高,而且在密集目標(biāo)檢測中能取得好的效果。
圖4 特征重利用模塊
損失函數(shù)由定位損失函數(shù)和分類置信度損失函數(shù)兩部分組成,表達(dá)式如式(3)所示:
為了驗(yàn)證本文方法的有效性,在目標(biāo)檢測任務(wù)中常用的PASCAL VOC2007[8]和MS COCO2014[9]數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)分析。PASCAL VOC2007數(shù)據(jù)集包含20個(gè)常見類別,2501張訓(xùn)練圖片、2510張驗(yàn)證圖片和4952張測試圖片。MS COCO2014數(shù)據(jù)集包含了80個(gè)類別,82783張訓(xùn)練圖片、40504張驗(yàn)證圖片和81434張測試圖片,數(shù)據(jù)集中的目標(biāo)大部分來自自然場景,目標(biāo)間的尺度變化大,具有較多的小目標(biāo)物體,評估標(biāo)準(zhǔn)也更加嚴(yán)格,要求算法具有更精確的定位能力。
本文的模型是基于Pytorch1.0框架,Python版本為3.7,實(shí)驗(yàn)訓(xùn)練使用的是NVIDIA Tesla P100-PCIE-16 GB GPU, VGG16骨干網(wǎng)絡(luò)的權(quán)重在ImageNet進(jìn)行了預(yù)訓(xùn)練。采用隨機(jī)梯度下降(SGD)算法來優(yōu)化淺層特征增強(qiáng)網(wǎng)絡(luò)的權(quán)重,其動量設(shè)置為0.9,衰減為0.0005,初始學(xué)習(xí)率為0.001。輸入圖像尺度設(shè)置為300×300時(shí),訓(xùn)練PASCAL VOC數(shù)據(jù)集時(shí)設(shè)置每個(gè)GPU的batch size為32,訓(xùn)練MS COCO數(shù)據(jù)集時(shí)設(shè)置每個(gè)GPU的batch size為16。在輸入圖像尺度設(shè)置為512×512的情況下,訓(xùn)練PASCAL VOC數(shù)據(jù)集時(shí)設(shè)置每個(gè)GPU的batch size為16,訓(xùn)練MS COCO數(shù)據(jù)集時(shí)設(shè)置每個(gè)GPU的batch size為8。對于PSACAL VOC數(shù)據(jù)集,設(shè)置最大訓(xùn)練epoch為250代,在訓(xùn)練到150代和200代時(shí),分別將學(xué)習(xí)率減少為原來的1/10;對于MS COCO數(shù)據(jù)集設(shè)置最大訓(xùn)練epoch為160代,在訓(xùn)練到90代和120代時(shí),分別將學(xué)習(xí)率減少為原來的1/10。
本小節(jié)比較了本文提出的淺層特征增強(qiáng)網(wǎng)絡(luò)SEFN與近些年基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測算法的性能,展現(xiàn)了本文提出的目標(biāo)檢測網(wǎng)絡(luò)模型在小目標(biāo)和密集目標(biāo)檢測方面的良好性能。
3.3.1 PASCAL VOC2007數(shù)據(jù)集上的檢測性能對比
表1給出了近些年流行的目標(biāo)檢測算法與本文方法在PASCAL VOC2007數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果對比,這些方法都是聯(lián)合使用PASCAL VOC2007和PASCAL VOC2012數(shù)據(jù)集中的訓(xùn)練集和驗(yàn)證集作為訓(xùn)練數(shù)據(jù),在表1中“檢測精度mAP(%), IOU=0.5”指的是在區(qū)分正負(fù)樣本的區(qū)域交并比(Intersection Over Union, IOU)閾值選取在0.5的基礎(chǔ)上,檢測器獲取的各類別平均精度的平均值,即平均精度均值(mean Average Precision, mAP)?!皺z測速度fps”表示的是檢測器每秒能夠處理的圖片張數(shù),其不僅與網(wǎng)絡(luò)模型有關(guān),而且與運(yùn)行模型的硬件配置也相關(guān)。表1中算法簡稱后面的數(shù)字表示輸入圖像的尺度。
從表1的實(shí)驗(yàn)結(jié)果可以看出,本文提出的SEFN方法,在網(wǎng)絡(luò)輸入尺度為300×300時(shí),獲得了79.6%的檢測精度,在網(wǎng)絡(luò)輸入尺度為512×512時(shí),獲得了81.2%的檢測精度,能夠在保證實(shí)時(shí)檢測速度的同時(shí),取得不錯(cuò)的檢測效果。本文SEFN300方法與經(jīng)典的2階段目標(biāo)檢測算法R-FCN[12]取得了相當(dāng)?shù)臋z測精度,相較于經(jīng)典的SSD300[1]算法提高了2.4%,與基于SSD算法的改進(jìn)研究(如DSSD321[4],RSSD300[13], FSSD300[6])相比,分別提高了1%,1.1%, 0.8%。而且相對一階段流行的檢測算法YOLOv1[14], YOLOv2[15],在檢測精度上有顯著的提升,但相較于檢測性能非常好的RFB300[7]算法,略低0.9%。本文的SEFN512方法的檢測性能都明顯高于表1中2階段的目標(biāo)檢測算法,相較于經(jīng)典的SSD512[1]算法提高了2.7%,較于RSSD512[13],kFSSD512[6]分別有0.4%,0.3%的提升,本文方法相較于DSSD512[4]略低0.3%,相較于RFB512[7]低1%,因?yàn)镈SSD[4]采用了龐大的ResNet101[5]作為特征提取網(wǎng)絡(luò),其在512×512輸入尺度下能夠提取到表征能力更強(qiáng)的不同尺度特征進(jìn)行檢測,但在檢測速度上犧牲很大,而RFB方法[7]則通過擴(kuò)張卷積對多個(gè)不同尺度特征進(jìn)行感受野增強(qiáng),有效增強(qiáng)了大、中型尺度目標(biāo)的檢測能力,但本文方法在小目標(biāo)和密集目標(biāo)的檢測效果具有明顯的優(yōu)勢(如圖5所示)。
表1 在PASCAL VOC2007測試集本文方法與其他方法的結(jié)果對比
3.3.2 不同檢測方法定性檢測效果對比
如圖5所示為本文方法與SSD[1]算法、RFB[7]算法在PASCAL VOC2007數(shù)據(jù)集上的圖片檢測效果對比。從圖5的實(shí)驗(yàn)結(jié)果可以看出,SSD算法對小目標(biāo)和密集目標(biāo)的檢測效果較差,經(jīng)常出現(xiàn)嚴(yán)重的小物體誤檢和漏檢的情況。RFB算法雖然在檢測精度上高于本文的方法,但對小目標(biāo)和密集目標(biāo)的檢測也存在較大不足,容易漏檢小目標(biāo),并在密集目標(biāo)的場景產(chǎn)生了目標(biāo)誤檢問題,而本文采用多尺度語義信息增強(qiáng)淺層特征的方式,能夠有效地加強(qiáng)對小目標(biāo)和密集目標(biāo)的檢測性能,特別是模型在較大輸入尺度的情況下(如512×512)。
圖5 不同算法在PASCAL VOC2007數(shù)據(jù)集上的檢測結(jié)果
3.3.3 MS COCO數(shù)據(jù)集上的檢測性能對比
為了進(jìn)一步體現(xiàn)本文方法在小目標(biāo)和密集目標(biāo)檢測方面的優(yōu)勢,在MS COCO數(shù)據(jù)集的minival2014測試集上進(jìn)行了本文方法與其他文獻(xiàn)方法的實(shí)驗(yàn)結(jié)果對比,如表2所示,其中“IOU=0.5: 0.95”表示的是設(shè)定10個(gè)IOU閾值(0.5~0.95,以0.05為步長),對每個(gè)IOU閾值求取算法的平均精度均值,再對所有IOU閾值對應(yīng)的平均精度均值求平均。表中“S,M,L”分別表示小目標(biāo),中等目標(biāo),大目標(biāo)。從表2的實(shí)驗(yàn)結(jié)果可以看出,本文提出的SEFN512方法在檢測精度和召回率上相較于YOLOv2[15],SSD512[1], DSSD513[4], FSSD512[6]都有明顯的提升,相比RFB512[7],雖然總體檢測精度低了0.7%,但本文的方法在小目標(biāo)的檢測精度上提高了1.6%,在中等目標(biāo)上提高了1%,在小目標(biāo)的召回率上提高了1.8%,有效證明了本文方法在小目標(biāo)和密集目標(biāo)檢測上具有良好優(yōu)勢。本文方法主要關(guān)注淺層特征的作用,沒有加強(qiáng)高層特征的表征能力,而高層特征的感受野相對較大,有利于大尺度目標(biāo)的檢測,RFB方法[7]更是增強(qiáng)了多個(gè)不同尺度特征的感受野,所以本文方法在大尺度目標(biāo)檢測上弱于RFB方法[7],這是下一步改進(jìn)工作的研究方向。
表2 在MS COCO2014_minival測試集上本文方法與其他方法的結(jié)果對比
為了更好地檢測小目標(biāo)和密集目標(biāo),本文提出了一種新的融合多尺度語義信息以增強(qiáng)淺層特征的目標(biāo)檢測方法。通過以SSD網(wǎng)絡(luò)為基礎(chǔ)框架,設(shè)計(jì)了3個(gè)不同的特征融合模塊:拼接融合模塊、多尺度語義信息融合模塊和特征重利用模塊。通過豐富多尺度語義信息和空間細(xì)節(jié)信息,使得淺層特征中包含目標(biāo)的區(qū)域得到增強(qiáng)。最后在增強(qiáng)的特征上進(jìn)行一系列的卷積提取多個(gè)不同尺度特征用以檢測,有效地提高了對小目標(biāo)和密集目標(biāo)的檢測性能。與主流的目標(biāo)檢測算法在PASCAL VOC2007數(shù)據(jù)集和MS COCO2014數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)結(jié)果對比,表明了本文方法能有效提高小目標(biāo)和密集目標(biāo)的檢測效果。下一步工作將優(yōu)化融合模塊,從而更有效地利用淺層和高層特征之間的聯(lián)系,使其獲得更高的準(zhǔn)確率。