張寶,李小霞,張婧,卓亮,彭帆*
(1.四川中煙工業(yè)有限責(zé)任公司綿陽卷煙廠,綿陽 621000;2.西南科技大學(xué) 信息工程學(xué)院,綿陽 621000)
目標(biāo)檢測(cè)作為機(jī)器視覺領(lǐng)域十分重要的一個(gè)分支,一直是研究者關(guān)注的熱點(diǎn)問題。其中小目標(biāo)檢測(cè)更是由于其目標(biāo)像素少和噪點(diǎn)多等問題長期困擾著研究者[1]。對(duì)于小目標(biāo)來說,利用淺層特征的傳統(tǒng)方法已經(jīng)滿足不了檢測(cè)需求,因此多層次的卷積神經(jīng)網(wǎng)絡(luò)是目前小目標(biāo)檢測(cè)技術(shù)的常用手段。
使用卷積神經(jīng)網(wǎng)絡(luò)檢測(cè)小目標(biāo)的主要難點(diǎn)在于獲得高層次語義信息的同時(shí)會(huì)丟失低層的細(xì)節(jié)信息,因此容易造成小目標(biāo)漏檢。煙草甲是一種典型的小目標(biāo)[2],并且具有與煙絲顏色相仿的保護(hù)色,而煙絲和粉塵也會(huì)造成檢測(cè)背景復(fù)雜,因此更容易出現(xiàn)誤檢和漏檢。自2017年Kaiming He等首次提出特征金字塔網(wǎng)絡(luò)(Feature Pyramid Network,F(xiàn)PN)后[3],F(xiàn)PN被廣泛的應(yīng)用到了機(jī)器視覺領(lǐng)域,在目標(biāo)檢測(cè)方面也發(fā)揮了巨大的優(yōu)勢(shì),F(xiàn)PN可融合高層特征信息與低層特征信息,既獲得了高層的語義信息,也保留了低層的細(xì)節(jié)信息,在小目標(biāo)檢測(cè)上發(fā)揮了巨大的優(yōu)勢(shì)。自FPN提出后,其改進(jìn)算法層出不窮,目標(biāo)均是獲得高層語義信息與低層細(xì)節(jié)信息之間更好的的融合方式。Ross等人提出RetinaNet[4],與FPN不同的是其特征融合從倒數(shù)第三層開始。Liu S等人提出PANet[5],提出了自頂向下的二次融合,對(duì)自底向上的FPN路徑進(jìn)行增強(qiáng),縮短了信息傳播路徑,同時(shí)更好地利用了低層特征的精準(zhǔn)定位信息。Liu S等人還提出了ASFF,將每一層的特征信息都與其他層次的特征信息相融合,在融合時(shí)采用了注意力機(jī)制,控制不同層次特征的貢獻(xiàn)度。谷歌大腦團(tuán)隊(duì)提出NAS-FPN[6],旨在使用神經(jīng)架構(gòu)搜索,學(xué)習(xí)到更好的目標(biāo)檢測(cè)特征金字塔網(wǎng)絡(luò)架構(gòu),在此基礎(chǔ)上進(jìn)一步提出BiFPN[7],在神經(jīng)架構(gòu)搜索的基礎(chǔ)上進(jìn)行人為設(shè)計(jì),獲得更好的特征金字塔網(wǎng)絡(luò)。除了直接對(duì)FPN網(wǎng)絡(luò)進(jìn)行修改以外,還有些研究設(shè)計(jì)了可與FPN融合的模塊提高檢測(cè)效果,例如:Kai Chen等人提出的CARAFE[8]為一種全新的上采樣方式,可以替換傳統(tǒng)的上采樣方式融入特征金字塔中,與傳統(tǒng)的的上采樣方式不同,CARAFE分為兩個(gè)主要模塊,分別是上采樣核預(yù)測(cè)模塊和特征重組模塊,CARAFE首先利用上采樣核預(yù)測(cè)模塊預(yù)測(cè)上采樣核,然后利用特征重組模塊完成上采樣,得到輸出特征圖,使之更加輕量級(jí),可以獲得更大的感受野,并隨意嵌入分割或檢測(cè)網(wǎng)絡(luò)中。Liang-Chieh 等人提出的空洞空間金字塔池化(Astrous Spatial Pyramid Pooling,ASPP)[9]將具有不同空洞率的空洞卷積并行地應(yīng)用到輸入特征圖上,以多個(gè)尺度捕捉圖像的上下文信息。除此之外,其他基于FPN網(wǎng)絡(luò)[10~14]的改進(jìn)均一定程度的獲得了檢測(cè)效果的提升。
以上網(wǎng)絡(luò)的改進(jìn)大部分是在獲得高低層次融合信息后繼續(xù)增加路徑,在增加網(wǎng)絡(luò)復(fù)雜度的代價(jià)下提升了網(wǎng)絡(luò)的性能,但在本質(zhì)上并沒有擴(kuò)大網(wǎng)絡(luò)高層的感受野,高層特征圖語義信息不足,同時(shí)卷積網(wǎng)絡(luò)重復(fù)下采樣導(dǎo)致小目標(biāo)信息丟失,網(wǎng)絡(luò)難以有效提取煙草甲特征進(jìn)行精確的預(yù)測(cè)。針對(duì)上述問題,本文提出一種多路感受野引導(dǎo)的特征金字塔的小目標(biāo)檢測(cè)方法,在傳統(tǒng)特征金字塔的基礎(chǔ)上融入多路擴(kuò)大感受野模塊,在不增加網(wǎng)絡(luò)深度的情況下獲取更大的感受野,提供更多的語義信息,提升網(wǎng)絡(luò)模型的檢測(cè)性能。最后將本文提出的算法與當(dāng)前主流算法在自建數(shù)據(jù)集上進(jìn)行性能對(duì)比和分析。
在卷積神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)中,質(zhì)量優(yōu)異的數(shù)據(jù)樣本是網(wǎng)絡(luò)訓(xùn)練的一個(gè)重要前提,因此制作一個(gè)優(yōu)質(zhì)的數(shù)據(jù)集是訓(xùn)練神經(jīng)網(wǎng)絡(luò)的首要條件。本文以煙草甲這種典型的小目標(biāo)為例,驗(yàn)證本文提出算法的有效性。目前常用目標(biāo)檢測(cè)數(shù)據(jù)集內(nèi)無公開的大規(guī)模煙草甲圖片數(shù)據(jù),為了獲得質(zhì)量優(yōu)良的煙草甲數(shù)據(jù)集,本文采用自建數(shù)據(jù)集的方式,實(shí)地采集大量煙草甲的圖片并且進(jìn)行標(biāo)注,使用自行設(shè)計(jì)的圖像采集終端對(duì)煙草甲圖片進(jìn)行采集,選用的圖片分辨率為1920×1080像素,標(biāo)注工具使用的是LabelImg軟件,圖片標(biāo)注格式為VOC數(shù)據(jù)集標(biāo)注格式。自建數(shù)據(jù)集中煙草甲圖片一共12861張,每張圖片上煙草甲的數(shù)量不一,圖片采集考慮到多種實(shí)際情況,具體各種情況數(shù)據(jù)分布如表1所示。
表1 煙草甲圖片情況分布
為了更好地構(gòu)建算法框架,本文對(duì)自建數(shù)據(jù)集內(nèi)圖片標(biāo)注的實(shí)際目標(biāo)框進(jìn)行數(shù)據(jù)分析,統(tǒng)計(jì)了實(shí)際目標(biāo)框的寬高以及實(shí)際目標(biāo)框占整幅圖片的寬高占比,采用熱力圖的形式展示,實(shí)際目標(biāo)框的寬高熱力圖以及寬高占比熱力圖如圖1所示。
圖1 實(shí)際目標(biāo)框?qū)捀?寬高占比熱力圖
圖1的熱力圖中,中間淺色部分代表目標(biāo)數(shù)量多,外圍深色部分代表目標(biāo)數(shù)量少,根據(jù)熱力圖可看出實(shí)際目標(biāo)框集中在40×40的像素大小,當(dāng)下采樣到32倍時(shí),絕大部分目標(biāo)只剩下一個(gè)像素,繼續(xù)進(jìn)行下采樣會(huì)丟失絕大部分目標(biāo)。
因此,根據(jù)以上數(shù)據(jù)統(tǒng)計(jì),本文設(shè)定骨干網(wǎng)絡(luò)2倍下采樣次數(shù)不超過五次,保持下采樣倍數(shù)不超過32倍,由此保證大部分目標(biāo)信息不丟失。
從以上分析可知,在小目標(biāo)檢測(cè)時(shí)有必要對(duì)實(shí)際目標(biāo)框?qū)捀咭约皩捀哒急冗M(jìn)行統(tǒng)計(jì),針對(duì)不同的小目標(biāo)數(shù)據(jù)集,設(shè)定不同的下采樣層數(shù),保留大部分目標(biāo)信息,可以保證骨干網(wǎng)絡(luò)提取有效的目標(biāo)特征。
特征金字塔網(wǎng)絡(luò)(FPN)是由Kaiming He等人在文獻(xiàn)[3]中提出的,F(xiàn)PN的提出解決了目標(biāo)檢測(cè)在處理多尺度變化問題時(shí)的不足,也降低了使用圖像金字塔處理該問題時(shí)產(chǎn)生的高額計(jì)算量。FPN在圖像金字塔各層特征圖之間添加連接結(jié)構(gòu)使特征圖進(jìn)行融合,再對(duì)融合后的特征圖進(jìn)行輸出預(yù)測(cè),連接結(jié)構(gòu)如圖2所示。
圖2 FPN連接結(jié)構(gòu)圖
FPN通過骨干網(wǎng)絡(luò)自底向上的方法提取各層特征圖,再通過自頂向下進(jìn)行上采樣的方式將頂層的小特征圖方法至與下一層特征圖相同的大小。FPN中上采樣的方式為最近鄰插值法,最近鄰插值法算法原理如圖3所示。
圖3 最近鄰插值法算法原理
最近鄰插值法的計(jì)算公式如式(1)、式(2)所示:
其中,s r c 表示舊圖、d s t 表示新圖,新圖坐標(biāo)(dstX,dstY)對(duì)應(yīng)舊圖坐標(biāo)(srcX,srcY),srcWidth/dstWidth與srcHeight/dstHeight分別表示寬高縮放比。最近零插值法在計(jì)算坐標(biāo)時(shí),會(huì)將小數(shù)四舍五入至整數(shù)進(jìn)行計(jì)算。
為了在不增加網(wǎng)絡(luò)復(fù)雜度的同時(shí)獲得更大感受野的特征圖,本文提出多路感受野引導(dǎo)的特征金字塔(Multiple Receptive Fields guided Feature Pyramid Network,MRFgFPN)小目標(biāo)檢測(cè)網(wǎng)絡(luò),如圖4所示。
圖4 整體網(wǎng)絡(luò)框架圖
該網(wǎng)絡(luò)包括獲取目標(biāo)圖片特征的骨干網(wǎng)絡(luò)、融合多路擴(kuò)大感受野模塊的特征金字塔網(wǎng)絡(luò)以及具有兩個(gè)分支的檢測(cè)頭網(wǎng)絡(luò)這三個(gè)模塊。本文選取可以更好地表征特征差異性以及擁有良好的特征提取性能的Resnet50網(wǎng)絡(luò)[15]作為骨干網(wǎng)絡(luò);融合多路擴(kuò)大感受野模塊的特征金字塔網(wǎng)絡(luò)將獲得的特征信息經(jīng)過多路擴(kuò)大感受野模塊后再進(jìn)行特征融合,以引導(dǎo)網(wǎng)絡(luò)獲得不同層次感受野下的上下文信息,同時(shí)獲取足夠的語義信息和豐富的細(xì)節(jié)信息;最后通過兩個(gè)分支網(wǎng)絡(luò)得到目標(biāo)的預(yù)測(cè)框以及分類置信度。
感受野是深度學(xué)習(xí)中的一個(gè)基本概念,表示輸出的特征圖中某個(gè)節(jié)點(diǎn)的響應(yīng)對(duì)應(yīng)的輸入圖像的區(qū)域。原始的卷積神經(jīng)網(wǎng)絡(luò)主要以增加網(wǎng)絡(luò)深度的方式增加感受野。記rn為第n層的感受野大小,kn為第n層的卷積核大小,si為第i層的卷積步長,卷積神經(jīng)網(wǎng)絡(luò)中感受野大小的計(jì)算公式為:
然而卷積神經(jīng)網(wǎng)絡(luò)中感受野的增大也伴隨著圖片分辨率降低和細(xì)節(jié)損失等問題。我們希望在獲取更大感受野的同時(shí)不降低圖片分辨率,由此空洞卷積[16]應(yīng)運(yùn)而生,當(dāng)設(shè)置步長為1時(shí),通過設(shè)置不同的空洞率可以在增大感受野的同時(shí)不降低圖片的分辨率,從而解決在獲取更大感受野的同時(shí)丟失細(xì)節(jié)信息的問題,空洞卷積感受野的計(jì)算公式為:
其中,rn-1為n-1層特征圖的感受野大小,dn為空洞卷積的空洞率,(2?dn+1)為空洞卷積的卷積核大小。
在小目標(biāo)的檢測(cè)任務(wù)中,為了保證大多數(shù)目標(biāo)信息不丟失,在骨干網(wǎng)絡(luò)中限定下采樣的次數(shù),但是有限次的下采樣并不能獲得足夠的語義信息,因此為了在不增加下采樣層數(shù)的同時(shí)獲得更大的感受野以及更多的上下文信息,本文在特征金字塔網(wǎng)絡(luò)融合多路擴(kuò)大感受野模塊,可以使本文設(shè)計(jì)的網(wǎng)絡(luò)在保留細(xì)節(jié)信息的情況下獲得更大的感受野以及更多的上下文信息,由此獲得足夠的語義信息,提高檢測(cè)精度。
圖5為多路擴(kuò)大感受野模塊示意圖,該模塊有四條并行支路,設(shè)置空洞率為1、3、5的三條并行支路對(duì)輸入特征圖進(jìn)行空洞卷積,得到三個(gè)不同大小感受野的特征圖并進(jìn)行融合,然后使用1×1的卷積降低通道數(shù),再與輸入特征圖融合,最后獲得的輸出特征圖既保留了原有感受野下的細(xì)節(jié)信息,又獲得了更大感受野下的語義信息。多路擴(kuò)大感受野模塊的計(jì)算公式如式(5)所示:
圖5 多路擴(kuò)大感受野模塊
式(5)中,O為最終的輸出特征圖,I為輸入特征圖,M為對(duì)I進(jìn)行空洞卷積后的三張?zhí)卣鲌D的連接特征圖,Add表示特征圖相加,M的計(jì)算公式如式(4)所示。
式(6)中,y1、y2、y3為對(duì)輸入特征圖進(jìn)行空洞率為1、3、5的空洞卷積后的特征圖,Concat表示將y1、y2、y3通道連接起來,y1、y2、y3的計(jì)算公式如公(7)所示:
式(7)中,DConv表示對(duì)I進(jìn)行空洞卷積,括號(hào)內(nèi)的第二列表示空洞率,第三列表示卷積核大小。
由于小目標(biāo)的目標(biāo)像素過小,不能采取傳統(tǒng)的多次下采樣的方式獲得足夠大的感受野,本文提出在傳統(tǒng)的特征金字塔網(wǎng)絡(luò)中融合多路擴(kuò)大感受野模塊,在不繼續(xù)減小特征圖尺寸的條件下,獲取更大的感受野,提高小目標(biāo)的檢測(cè)率。本文提出的多路擴(kuò)大感受野模塊可以融入骨干網(wǎng)絡(luò)與特征金字塔網(wǎng)絡(luò)連接的任何一層,如圖6(d)所示,其中深色方塊為擴(kuò)大感受野模塊,通過后續(xù)消融實(shí)驗(yàn)發(fā)現(xiàn)在第四層特征圖添加擴(kuò)大感受野模塊效果最好,因此本文對(duì)比試驗(yàn)僅在第四層特征圖添加擴(kuò)大感受野模塊。
圖6 特征金字塔網(wǎng)絡(luò)設(shè)計(jì)
與其他特征金字塔網(wǎng)絡(luò)相比,融合多路擴(kuò)大感受野模塊的特征金字塔網(wǎng)絡(luò)并未在傳統(tǒng)的預(yù)測(cè)輸出后增加更多的融合路徑,而是在骨干網(wǎng)絡(luò)提取的特征信息的基礎(chǔ)上增加并行的特征信息進(jìn)行融合,在不增加網(wǎng)絡(luò)復(fù)雜度的基礎(chǔ)上可獲得更大的感受野即更多的語義信息。
本文的實(shí)驗(yàn)平臺(tái):CPU型號(hào)為Inter(R)Core(TM)i7-7700K、GPU型號(hào)為GeForce GTX 1080Ti、顯存為11G、內(nèi)存為32G的臺(tái)式電腦;本文實(shí)驗(yàn)使用的深度學(xué)習(xí)框架為Pytorch1.2.0、Cuda10.1以及CuDNN7.6.4。在訓(xùn)練階段,輸入圖片大小為1920×1080,然后經(jīng)過縮放、裁剪補(bǔ)零操作后變換為1344×768,本文使用了隨機(jī)水平翻轉(zhuǎn)的數(shù)據(jù)增強(qiáng)方式,選用SGD優(yōu)化器,初始學(xué)習(xí)率設(shè)定為0.01,訓(xùn)練批次大小為4,共訓(xùn)練70輪,為了微調(diào)模型,本文設(shè)定在訓(xùn)練了16輪之后將學(xué)習(xí)率降低為原來的1/3,在訓(xùn)練了30輪后,再次降低為上一次學(xué)習(xí)率的1/3。
為了客觀地評(píng)估小目標(biāo)的檢測(cè)結(jié)果,使用平均精度(mean Average Precision,mAP)作為評(píng)價(jià)指標(biāo)。mAP是度量模型預(yù)測(cè)框類別和位置是否準(zhǔn)確的指標(biāo),由于本文的檢測(cè)只涉及到煙草甲蟲這一種類別,因此精度與平均精度含義相同,是精度-召回率(Precision-Recall)曲線P(R)下的面積,mAP的計(jì)算公式為:
本文在進(jìn)行測(cè)試時(shí)設(shè)置了三種不同大小的交并比(Intersection-over-Union,IoU)進(jìn)行測(cè)試,IoU為預(yù)測(cè)框與真實(shí)框的交集與并集的比值。mAP0.5、mAP0.6、mAP0.7分別對(duì)應(yīng)IoU=0.5、0.6、0.7時(shí)的平均精度。
在煙草甲蟲的檢測(cè)實(shí)驗(yàn)中,采用自建數(shù)據(jù)集中的2074張圖片以及對(duì)應(yīng)的標(biāo)簽作為實(shí)驗(yàn)數(shù)據(jù),將圖片按6:2:2隨機(jī)分成訓(xùn)練集、驗(yàn)證集以及測(cè)試集。本文選用兩種算法框架進(jìn)行實(shí)驗(yàn),分別是Faster R-CNN[17]和Cascade R-CNN[18],使用的骨干網(wǎng)絡(luò)均為Resnet50。首先,對(duì)Faster R-CNN進(jìn)行消融實(shí)驗(yàn),即對(duì)特征金字塔的每一層分別添加多路擴(kuò)大感受野模塊進(jìn)行結(jié)果對(duì)比。然后,在Faster R-CNN以及Cascade R-CNN的算法框架下將本文算法與目前主流的特征金字塔網(wǎng)絡(luò)進(jìn)行對(duì)比,對(duì)比的特征金字塔網(wǎng)絡(luò)包括經(jīng)典的FPN,二次融合的PANet,使用神經(jīng)架構(gòu)搜索的NasFPN,融合ASPP的特征金字塔網(wǎng)絡(luò)形成Aspp_FPN,除此之外,還包括將上采樣的CARAFE方法嵌入傳統(tǒng)FPN中形成的CARAFE_FPN,由此驗(yàn)證本文提出算法的有效性。
表2為本文設(shè)計(jì)的多路擴(kuò)大感受野模塊添加在特征金字塔網(wǎng)絡(luò)不同層的消融實(shí)驗(yàn),算法框架為Faster R-CNN。本文將Resnet50的第二個(gè)到第五個(gè)卷積塊的輸出表示為{C2,C3,C4,C5},將{C2,C3,C4,C5}經(jīng)過特征金字塔后的輸出表示為{P2,P3,P4,P5}。由表2可知,多路擴(kuò)大感受野模塊添加在特征金字塔的C5~P5層時(shí)平均精度mAP0.5、mAP0.6、mAP0.7分別為90.3%、87.4%、59.5%,在將IoU閾值設(shè)定為0.5以及0.6時(shí)實(shí)驗(yàn)結(jié)果最好,這是因?yàn)橄噍^于低層特征圖,高層特征圖的噪聲信息減小了,避免了煙絲等干擾對(duì)煙草甲檢測(cè)的影響,因此在高層添加多路擴(kuò)大感受野模塊可以更加有效地提高檢測(cè)率,本文選擇在C5~P5層即第四層特征圖添加多路擴(kuò)大感受野模塊。
表2 消融實(shí)驗(yàn)結(jié)果
表3、表4為各種特征金字塔網(wǎng)絡(luò)與本文提出的融合多路擴(kuò)大感受野模塊的特征金字塔網(wǎng)絡(luò)在Faster R-CNN以及Cascade R-CNN兩種算法框架下的對(duì)比試驗(yàn),表明本文提出算法的有效性和普適性。在Faster R-CNN框架下本文提出算法的平均精度分別為:90.3%(IoU=0.5)、87.4%(IoU=0.6)、59.5%(IoU=0.7),在Cascade R-CNN框架下本文提出算法的平均精度分別為:90.1%(IoU=0.5)、87.4%(IoU=0.6)、61.7%(IoU=0.7),在不同的IoU閾值下本文設(shè)計(jì)算法的平均精度均達(dá)到最高,兩種算法框架下的對(duì)比實(shí)驗(yàn)表明本文提出的算法優(yōu)于目前主流的算法。
表3 Faster R-CNN框架下不同方法實(shí)驗(yàn)結(jié)果
表4 Cascade R-CNN框架下不同方法實(shí)驗(yàn)結(jié)果
本文針對(duì)小目標(biāo)檢測(cè)時(shí)下采樣次數(shù)有限而又需要足夠的語義信息的問題,提出了多路感受野引導(dǎo)的特征金字塔(MRFgFPN)小目標(biāo)檢測(cè)方法。本文設(shè)計(jì)了一種多路擴(kuò)大感受野模塊,使用不同空洞率的空洞卷積使輸出特征圖具有更大的感受野,融合四種感受野大小的特征圖可獲得多層次的語義信息,在骨干網(wǎng)絡(luò)和特征金字塔之間加入多路擴(kuò)大感受野模塊,可在不改變網(wǎng)絡(luò)層數(shù)以及融合路徑的基礎(chǔ)上獲得多種感受野下的上下文信息,同時(shí)獲取足夠的語義信息和豐富的細(xì)節(jié)信息,從而提高小目標(biāo)檢測(cè)精度。本文進(jìn)行了大量的對(duì)比實(shí)驗(yàn),在不同的算法框架下,本文方法的平均精度均優(yōu)于目前主流的檢測(cè)算法,表明本文方法對(duì)于煙草甲這樣具有與煙絲顏色相仿的保護(hù)色且背景復(fù)雜的小目標(biāo)檢測(cè)具有更高的檢測(cè)精度和實(shí)用性。