廖永為,張桂鵬,楊振國(guó),劉文印,2
1.廣東工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,廣州 510006
2.鵬城實(shí)驗(yàn)室 網(wǎng)絡(luò)空間安全研究中心,廣東 深圳 518000
目標(biāo)檢測(cè)[1-3]的目的是在數(shù)字圖像中檢測(cè)出特定類別(如人、動(dòng)物或汽車等)的實(shí)例,這是計(jì)算機(jī)視覺中一項(xiàng)基本且具有挑戰(zhàn)性的任務(wù)。近年來(lái)基于深度學(xué)習(xí)方法在目標(biāo)檢測(cè)中變得非常流行,它可以分為兩類,即單階段(one-stage)目標(biāo)檢測(cè)[1],例如Yolo[1]、SSD[4]、Retina-Net[5]、FCOS[6]、RepPoints[7]等,以及兩階段(two-stage)目標(biāo)檢測(cè)[1-2],例如Faster R-CNN[8-9]、R-FCN[9-10]、Cascade RCNN[11]等。單階段目標(biāo)檢測(cè)方法通常被認(rèn)為在通過主干網(wǎng)絡(luò)提取特征信息之后輸出分類和回歸的結(jié)果(bounding box,邊界框),包括基于錨點(diǎn)(anchor-based)的方法,如SSD[1-3]、RetinaNet[5]、Cascade RetinaNet[2]等;以及基于無(wú)錨點(diǎn)(anchor-free)的方法,如DenseBox[1-2]、Yolo[1-2]、CornerNet[12]、FCOS[6]、RepPoints[7]等。在這些檢測(cè)器中,基于錨點(diǎn)的方法會(huì)生成密集錨點(diǎn)框來(lái)增加對(duì)象的召回率,這會(huì)產(chǎn)生冗余框,并且需要設(shè)置大量的超參數(shù),如檢測(cè)框的比例、檢測(cè)框的長(zhǎng)寬比和交并比(IoU)閾值。無(wú)錨點(diǎn)方法避免了使用大量錨點(diǎn)而導(dǎo)致的復(fù)雜計(jì)算,減少了超參數(shù)的設(shè)計(jì),進(jìn)一步實(shí)現(xiàn)了目標(biāo)檢測(cè)的實(shí)時(shí)性和高精度。在無(wú)錨點(diǎn)的單階段目標(biāo)檢測(cè)算法中,基于關(guān)鍵點(diǎn)(key point)的方法需要預(yù)測(cè)多個(gè)關(guān)鍵點(diǎn),如CornerNet[12]、CenterNet[2]等,這將導(dǎo)致復(fù)雜的計(jì)算。而像素級(jí)預(yù)測(cè)方法利用真值(ground-truth)邊界框中所有的點(diǎn)來(lái)預(yù)測(cè)邊界框,如FCOS[6]、RepPoints[6]等,并且可以與基于錨點(diǎn)的檢測(cè)器擁有相同的召回率。無(wú)論是基于關(guān)鍵點(diǎn)的方法還是像素級(jí)預(yù)測(cè)方法,本質(zhì)上都是密集預(yù)測(cè)的方法。龐大的解空間會(huì)產(chǎn)生過多的負(fù)樣本,將會(huì)導(dǎo)致高召回率而低準(zhǔn)確率。
隨著深度學(xué)習(xí)技術(shù)的發(fā)展,目標(biāo)檢測(cè)算法的實(shí)現(xiàn)可由三個(gè)部分組成,即主干網(wǎng)絡(luò)(backbone)、頸部網(wǎng)絡(luò)(neck)和檢測(cè)頭(head)。主干網(wǎng)絡(luò)通常使用卷積神經(jīng)網(wǎng)絡(luò)[13]用于提取特征信息,如VGG[13-14]、ResNet[14]、EfficientNet[15]等。頸部網(wǎng)絡(luò)用于收集主干網(wǎng)絡(luò)中不同階段的特征信息,如FPN[16]、ASFF[16]、RFB[16]、SPP[17]等。檢測(cè)頭用于輸出檢測(cè)目標(biāo)的位置和類別信息,可分為單次檢測(cè)頭如RPNHead[8]、RetinaHead[5]、DoubleHead[2]和級(jí)聯(lián)檢測(cè)頭(cascade detection)[11]等。就頸部網(wǎng)絡(luò)而言,特征金字塔網(wǎng)絡(luò)(FPN)結(jié)構(gòu)簡(jiǎn)單,能提取多尺度特征來(lái)更好地學(xué)習(xí)特征表示的有效框架。因此,F(xiàn)PN及其變體使用最為廣泛,如BFPN[16]、BiFPN[16]、AugFPN[16]、iFPN[17]等。然而,目前基于FPN的方法大多由于直接融合多尺度特征表示而丟失語(yǔ)義信息。檢測(cè)頭一般由檢測(cè)網(wǎng)絡(luò)、感興趣區(qū)域的定義(region of interests,RoI)和損失函數(shù)(loss function)組成。在單階段的目標(biāo)檢測(cè)方法中,基于錨點(diǎn)的方法使用Faster R-CNN[8-9]的檢測(cè)頭作為其檢測(cè)頭網(wǎng)絡(luò),而無(wú)錨點(diǎn)的方法是基于關(guān)鍵點(diǎn)或逐點(diǎn)預(yù)測(cè)設(shè)計(jì)的。特別是,F(xiàn)COS[5]的逐點(diǎn)預(yù)測(cè)引入了中心點(diǎn)分支來(lái)抑制低質(zhì)量的預(yù)測(cè)邊界框,從而提高了檢測(cè)器的性能。此外,Cascade R-CNN[11,18]中級(jí)聯(lián)檢測(cè)的方法可以通過細(xì)化(refine)邊界框而提高檢測(cè)性能。
因此,為了減少多尺度特征融合過程中語(yǔ)義信息的丟失,提出了增強(qiáng)的特征金字塔網(wǎng)絡(luò)(SFPN)來(lái)融合來(lái)自特征映射的局部和全局感受野中的空間和通道信息,以學(xué)習(xí)更好的特征表示。為了更好地利用分類和回歸的特征表示,設(shè)計(jì)了級(jí)聯(lián)檢測(cè)頭(CasHead)來(lái)提高邊界框回歸的置信度。此外,針對(duì)上述提出的模型ConFCOS,對(duì)損失函數(shù)進(jìn)行了優(yōu)化,用來(lái)加速模型訓(xùn)練和提高模型性能。
在頸部網(wǎng)絡(luò)中,特征金字塔(FPN[14])網(wǎng)絡(luò)通過將強(qiáng)語(yǔ)義的高層特征傳低層特征中,在由卷積網(wǎng)絡(luò)形成的主干網(wǎng)絡(luò)提取的特征層上構(gòu)建特征金字塔網(wǎng)絡(luò)。FPN 已成為目標(biāo)檢測(cè)器提取多尺度特征的有效而重要的結(jié)構(gòu)。具體來(lái)講,F(xiàn)PN 引入了一種自上而下的方法,將高分辨率的低級(jí)語(yǔ)義特征和低分辨率的高級(jí)語(yǔ)義特征相結(jié)合,用于檢測(cè)不同尺度的目標(biāo)。通過改進(jìn)具有強(qiáng)語(yǔ)義的多尺度特征,目標(biāo)檢測(cè)的性能得到了顯著提高,如BFPN[16]、BiFPN[16]、AugFPN[16]、CE-FPN[17]、iFPN[17]等。然而,目前基于FPN的方法大多因直接融合多尺度特征表示而丟失語(yǔ)義信息。此外,由于網(wǎng)絡(luò)結(jié)構(gòu)的限制,基于FPN 的方法不能充分利用不同大小的感受野。特別是FPN 中的自底向上路徑只是在不同層上堆疊特征信息以擴(kuò)大感受野,不鼓勵(lì)特征信息的傳遞,而對(duì)應(yīng)于不同感受野的特征映射只是通過自頂向下路徑中的元素相加進(jìn)行合并。然而,不同感受野所捕獲的語(yǔ)義信息在相互傳遞中特征表示能力不強(qiáng),限制了模型的性能。因此,提出了增強(qiáng)的特征金字塔網(wǎng)絡(luò)(SFPN)來(lái)融合空間和通道信息,使來(lái)自特征圖(feature map)的不同感受野能學(xué)習(xí)更好的特征表示。
關(guān)于檢測(cè)頭,在使用Hourglass[12]作為主干網(wǎng)絡(luò)的關(guān)鍵點(diǎn)檢測(cè)方法中,CornerNet[12]使用關(guān)鍵點(diǎn)的左上角和右下角來(lái)檢測(cè)邊界框。ExtremeNet[19]使用關(guān)鍵點(diǎn)估計(jì)網(wǎng)絡(luò)來(lái)檢測(cè)對(duì)象最上面、最左邊、最下面、最右邊和一個(gè)中心點(diǎn)的四個(gè)極值點(diǎn)。CenterNet[20]使用左上角、右下角和中心點(diǎn)的三個(gè)關(guān)鍵點(diǎn)來(lái)檢測(cè)邊界框,這豐富了左上角和右下角收集的信息,并在中心區(qū)域提供了更多可識(shí)別的信息。在使用ResNet[13]作為主干的無(wú)錨點(diǎn)檢測(cè)方法中,F(xiàn)SAF[21]提出的FSAF 模塊是在線特征選擇,應(yīng)用于多層無(wú)錨點(diǎn)檢測(cè)分支的訓(xùn)練,該分支連接到特征金字塔的每一層。通過修改損失函數(shù)來(lái)釋放錨點(diǎn),以避免手動(dòng)指定錨點(diǎn),這樣可以學(xué)習(xí)與對(duì)象匹配的錨點(diǎn)。在基于ReintaNet[5]的FoveaBox[22]方法中,不同尺度的目標(biāo)被分配到不同的特征層,直接對(duì)像素進(jìn)行分類和回歸。FCOS[6]引入中心點(diǎn)(center-ness)分支來(lái)抑制低質(zhì)量的預(yù)測(cè)邊界盒,從而提高檢測(cè)器的性能。FCOS v2[23]將中心度分支從分類分支移動(dòng)到回歸分支以進(jìn)行預(yù)測(cè)。而且FCOS改進(jìn)版,如NAS-FCOS[24]等,它們都使用單探測(cè)頭。此外,檢測(cè)頭的檢測(cè)網(wǎng)絡(luò)可分為:?jiǎn)未螜z測(cè),如Faster R-CNN[8]、SSD[2]、RetinaNet[5]、FCOS[6]等;級(jí)聯(lián)檢測(cè)利用特征共享形成多級(jí)輸出,如Cascade R-CNN[12]、ConRetina-Net[1]、Cascade RetinaNet[2]等。因此,為了提高回歸的可信度,提出了用于全卷積目標(biāo)檢測(cè)算法的級(jí)聯(lián)檢測(cè)頭(CasHead)。
關(guān)于損失函數(shù),RetinaNet[5]提出了FocalLoss[5]用于分類,L1 Loss[4]用于邊界框回歸,F(xiàn)oclaLoss解決了數(shù)據(jù)樣本不均衡問題。在Free-Anchor[2]算法中使用Smooth L1 Loss[3]替換了L1 Loss,可以使預(yù)測(cè)值和真值差別大的時(shí)候,梯度值較小,模型會(huì)較穩(wěn)定,不容易產(chǎn)生梯度爆炸。而在FCOS[6]中使用IoU Loss[2]考慮檢測(cè)框和目標(biāo)框重疊面積。在ATSS[2]中,使用GIoULoss[2]替換了IoU Loss[2],性能提高了0.4 個(gè)百分點(diǎn),解決邊界框不重合時(shí)的問題。因此在FCOS v2[23]也使用了GIoULoss[25]。另外,DIoULoss[25]考慮邊界框中心距離的信息,CIoULoss[25]考慮邊界框?qū)捀弑鹊某叨刃畔???紤]到邊界框中有效框的比例和會(huì)產(chǎn)生大量負(fù)樣本,在CIoULoss[25]增加了懲罰項(xiàng)加速收斂提高了回歸精度。
對(duì)于無(wú)錨點(diǎn)目標(biāo)檢測(cè)算法的改進(jìn),一方面,可以通過各種方式進(jìn)一步改進(jìn)檢測(cè)頭重復(fù)輸出。另一方面,可使用FPN來(lái)緩解高一致性的影響。因此,基于FCOS v2[23],提出了無(wú)錨點(diǎn)目標(biāo)檢測(cè)一致性優(yōu)化算法,稱為ConFCOS,如圖1 所示。對(duì)于目標(biāo)探測(cè)器的組成部分,使用了ResNet[13]作為主干網(wǎng)絡(luò),SFPN作為頸部網(wǎng)絡(luò),CasHead作為檢測(cè)頭。
圖1 ConFCOS目標(biāo)檢測(cè)框架Fig.1 Structure of ConFCOS
如圖1 所示,自下而上的組件是ResNet 體系結(jié)構(gòu),用于生成多比例尺特征地圖。SFPN采用自上向下的橫向連接結(jié)構(gòu)生成目標(biāo)識(shí)別的最終特征圖。檢測(cè)頭CasHead 通過兩個(gè)平行卷積層在特征圖的每個(gè)網(wǎng)格點(diǎn)上進(jìn)行分類和定位。另外,對(duì)于損失函數(shù),分別采用FocalLoss[5]和CrossEntropy[13]作為分類和中心點(diǎn)分支的損失函數(shù),對(duì)CIoULoss[25]進(jìn)行了優(yōu)化避免了大量的誤檢。
對(duì)于頸部網(wǎng)絡(luò),F(xiàn)PN已被證明是多尺度特征融合的有效方法,它引入了自頂向下的通道從多尺度圖像中提取特征,生成多尺度特征表示,并且各個(gè)層次的特征映射都具有很強(qiáng)的語(yǔ)義信息。然而,基于FPN的方法通常直接對(duì)各層語(yǔ)言進(jìn)行融合,導(dǎo)致融合過程中語(yǔ)義信息的丟失和信息的衰減。因此,提出了增強(qiáng)特征金字塔網(wǎng)絡(luò)(SFPN)來(lái)融合局部和全局感受野的空間和通道信息特征,以改進(jìn)特征表示,如圖2。
圖2 SFPN模型結(jié)構(gòu)Fig.2 Structure of SFPN
如圖2所示,按照FPN相同的設(shè)置,生成一個(gè)4級(jí)特征金字塔。將主干的輸出表示為{C2,C3,C4,C5},其輸入圖像的stride設(shè)為{8,16,32,64},通道數(shù)分別為{256、512、1 024、2 048}。{F2,F(xiàn)3,F(xiàn)4,F(xiàn)5}是在全局上下文塊之后具有相同通道數(shù)為256 的特征圖。特征金字塔{P2,P3,P4,P5}由具有擴(kuò)張卷積模塊的SFPN中的自上而下路徑生成。特別是,由于這些特征之間的語(yǔ)義差距很大,在不同的尺度下沒有考慮到,因此加入了注意力機(jī)制[26]。GCB[27]是一個(gè)上下文建模模塊,它將所有位置的特征聚合在一起,形成一個(gè)全局上下文特征,以便對(duì)長(zhǎng)距離依賴關(guān)系進(jìn)行有效建模。在BiFPN 的跳躍連接的基礎(chǔ)上,為了增強(qiáng)特征融合,使用擴(kuò)展卷積模塊DCM[28]。其中DCM 引入了空洞卷積(dilated convolution)[28],通過增加感受野來(lái)增強(qiáng)特征識(shí)別能力。
SFPN使用四個(gè)尺度從主干網(wǎng)絡(luò)提取的特征中采樣信息。在自頂向下的路徑中,SFPN 集成了后一層的上采樣特征和GCB 的全局特征,從主干網(wǎng)絡(luò)中提取。在自底向上的路徑中,SFPN 將當(dāng)前層的采樣特征與3×3卷積、前一層的下采樣特征和具有不同感受野的特征信息進(jìn)行融合。因此,SFPN的公式定義如下:
其中,表示第j層的輸出,表示第i層的輸入,表示最終輸出。conv表示一般3×3 卷積。dcm表示擴(kuò)展卷積模塊。uspl表示上采樣操作,dspl表示下采樣操作。
級(jí)聯(lián)檢測(cè)首次由Cascade R-CNN[11,18]提出,它采用級(jí)聯(lián)回歸作為重采樣機(jī)制,逐步增加IoU 值,使前一階段的重采樣方案能夠適應(yīng)下一階段的高閾值。對(duì)于單階段目標(biāo)檢測(cè),ConRetinaNet[2]在訓(xùn)練過程中利用改進(jìn)的錨點(diǎn),采用一致性優(yōu)化來(lái)預(yù)測(cè)邊界框來(lái)提高質(zhì)量。Cascade RedtinaNet采用級(jí)聯(lián)檢測(cè)的思想來(lái)減少分類和定位的偏差。受此啟發(fā),設(shè)計(jì)了一種用于無(wú)錨點(diǎn)目標(biāo)檢測(cè)的級(jí)聯(lián)檢測(cè)頭CasHead,它可以獲取高質(zhì)量的邊界框,并有效地學(xué)習(xí)到高質(zhì)量的邊界框分布。
如圖3所示,C表示分類,B表示回歸,CN表示中心度,D 表示可變形卷積。CasHead 采用級(jí)聯(lián)檢測(cè)的方法來(lái)提高檢測(cè)器的性能,通過細(xì)化邊界框可以得到高質(zhì)量的邊界框。與FCOS相同,CasHead包含兩個(gè)子網(wǎng),即分類子網(wǎng)絡(luò)和邊框回歸子網(wǎng)絡(luò),該子網(wǎng)絡(luò)使用逐點(diǎn)預(yù)測(cè)盒,并引入中心點(diǎn)分支以抑制低質(zhì)量預(yù)測(cè)邊界框。其中,分類子網(wǎng)絡(luò)用于輸出預(yù)測(cè)分類的置信度,邊框回歸子網(wǎng)絡(luò)用于預(yù)測(cè)中心點(diǎn)與四邊之間的距離,中心點(diǎn)分支(center-ness)用于過濾低質(zhì)量檢測(cè)點(diǎn)。
圖3 CasHead模型結(jié)構(gòu)Fig.3 Structure of CasHead
從SFPN 輸出特征xi的預(yù)測(cè)分類分?jǐn)?shù)和回歸偏置量,CasHead 采用相同的xi兩次。首先,使用3×3 卷積來(lái)回歸xi的偏置量。其次,將經(jīng)過1×1卷積變換的偏置量與經(jīng)過3×3可變形卷積的特征相結(jié)合,從而輸出最終的回歸偏置量。換句話說,基于xi的學(xué)習(xí)從原來(lái)的位置到細(xì)化的偏置量。CasHead 的最終回歸偏置量的公式如下:
其中,F(xiàn)表示具有不同核的卷積,Ri,j表示第i個(gè)輸出回歸偏移量,def表示3×3 可變形卷積。應(yīng)注意,細(xì)化的偏置量是為了改進(jìn)檢測(cè)點(diǎn)表示。
在FCOS[6]中使用IoU Loss[6]考慮檢測(cè)框和目標(biāo)框重疊面積。FCOS v2[23]使用了GIoULoss[25],它使用外接矩形的方法不僅可以反應(yīng)重疊區(qū)域的面積,還可以計(jì)算非重疊區(qū)域的比例,因此GIOU Loss損失函數(shù)能更好地反應(yīng)真實(shí)框(ground-truth)和預(yù)測(cè)框的重合程度和遠(yuǎn)近距離。DIoU Loss[25]增加了懲罰項(xiàng)是基于中心點(diǎn)的距離和對(duì)角線距離的比值,避免了像GIoULoss 在兩框距離較遠(yuǎn)時(shí),產(chǎn)生較大的邊界框,損失值較大難以優(yōu)化。為了使回歸在與目標(biāo)框有重疊甚至包含時(shí)更準(zhǔn)確、更快,CIoU Loss[25]同時(shí)考慮了重疊面積、中心點(diǎn)距離、長(zhǎng)寬比3 個(gè)因素。為了加快模型的收斂速度,在CIoU Loss 增加一個(gè)懲罰項(xiàng),它用于剔除掉得分過低的邊界框,減少訓(xùn)練模型時(shí)的計(jì)算量和時(shí)間,公式如下:
其中,IOU是產(chǎn)生的候選框與原標(biāo)記框的交疊率,b和bgt表示預(yù)測(cè)框與原標(biāo)記框的中心點(diǎn),ρ()表示歐式距離,c表示預(yù)測(cè)框與原標(biāo)記框的最小外接矩陣的對(duì)角線距離。α表示平衡(trade-off)參數(shù),v表示寬高比一致性參數(shù)。k表示懲罰項(xiàng)參數(shù),與CasHead級(jí)聯(lián)檢測(cè)中的IoU值相關(guān)。
對(duì)于目標(biāo)檢測(cè),將在主流的MS COCO 2017[1-2]基準(zhǔn)數(shù)據(jù)集上評(píng)估模型的性能,該數(shù)據(jù)集有80 個(gè)目標(biāo)分類,訓(xùn)練集中約118 000 張圖像,驗(yàn)證數(shù)據(jù)集中約5 000張圖像(通常稱為minival集)。所有模型都在訓(xùn)練集上進(jìn)行訓(xùn)練,并在驗(yàn)證集上進(jìn)行評(píng)估。使用標(biāo)準(zhǔn)的COCO評(píng)價(jià)指標(biāo)[1-2]來(lái)評(píng)估目標(biāo)檢測(cè)的性能,包括AP、AP50、AP75以及APS、APM、APL。
在訓(xùn)練時(shí),使用mmdetection[1-2,29]框架進(jìn)行實(shí)驗(yàn)。權(quán)重衰減為0.000 1,每次訓(xùn)練4幅圖像,所有模型均使用2個(gè)GPU進(jìn)行訓(xùn)練。ConFCOS的默認(rèn)訓(xùn)練為36個(gè)周期,初始學(xué)習(xí)率設(shè)置為2.5×10-5,在第27個(gè)周期和第33個(gè)周期時(shí)分別除以10。主干使用ImageNet[xx]上預(yù)先訓(xùn)練的權(quán)重進(jìn)行初始化。除非特別指定,否則輸入圖像的大小將調(diào)整為{800×1 333}。
推理過程遵循FCOSv2[23],除非特別指定,否則采用單尺度測(cè)試方法,圖像大小與單尺度訓(xùn)練中的圖像大小相同。根據(jù)FCOS v2[23],選擇Px,y>0.05 的位置作為正樣本,并獲得預(yù)測(cè)的邊界框。根據(jù)Cascade R-CNN[11,30]將級(jí)聯(lián)檢測(cè)IoU設(shè)置為0.5和0.6。
表1 總結(jié)了提出的ConFCOS 和最先進(jìn)的單階段目標(biāo)檢測(cè)方法之間的性能比較。從中可以看出:(1)Con-FCOS 的性能比基于錨點(diǎn)的檢測(cè)器M2Det提高了0.9 個(gè)百分點(diǎn),比最近的無(wú)錨點(diǎn)單階段檢測(cè)器FCOS v2 提高了1.6 個(gè)百分點(diǎn)。這是因?yàn)镾FPN 可以在特征地圖上融合空間和通道信息,并且CasHead通過細(xì)化邊界框提高分類和回歸的置信度。(2)對(duì)于多尺寸對(duì)象的檢測(cè),Con-FCOS 可以獲得最佳性能,原因在于ConFCOS 可SFPN中的全局上下文塊獲得豐富的特征信息,并在CasHead中實(shí)現(xiàn)細(xì)化的邊界框。
表1 ConFCOS與主流的單階段目標(biāo)檢測(cè)方法的比較Table 1 ConFCOS vs.state-of-the-art one-stage detectors%
基于RetinaNet和FCOS,比較了不同的基于FPN的方法,以驗(yàn)證SFPN的有效性。其中BiFPN表示BiFPNB0[15]。所有模型均使用ResNet-50作為主干網(wǎng)絡(luò)進(jìn)行訓(xùn)練。表2總結(jié)了這些目標(biāo)檢測(cè)方法的性能,從中可以觀察到:(1)SFPN 通常優(yōu)于現(xiàn)有的基于FPN 的方法,因?yàn)镾FPN可以融合具有不同感受域的空間和通道信息的特征,以提高特征表示能力。特別是在跳躍連接[15]中增加了DCM 模塊,它利用不同感受野的空洞卷積來(lái)捕獲到更加豐富的全局特征信息。而且在上采樣過程中使用了GCB模塊替代1×1卷積,它將所有位置的特征聚合在一起,形成一個(gè)全局上下文特征,以便對(duì)長(zhǎng)距離依賴關(guān)系進(jìn)行有效建模。(2)SFPN 在不同的對(duì)象檢測(cè)器(如RetinaNet 和FCOS)上優(yōu)于現(xiàn)有的基于FPN 的方法,這表明SFPN 具有泛化能力,能夠融合從主干網(wǎng)絡(luò)中提取的更豐富的語(yǔ)義信息。(3)對(duì)于小目標(biāo)的檢測(cè),SFPN 的性能有了明顯的提高。這是因?yàn)樵赟FPN中引入了全局上下文塊,可以增強(qiáng)特征表示,減少特征融合中信息的衰減。(4)對(duì)于大目標(biāo)的檢測(cè),SFPN 的性能優(yōu)于基于FPN的方法。因?yàn)橐肓丝斩淳矸e模塊DCM[28],它使用了不同的感受野空洞卷積核,其中采樣率rate={1,3,5}。當(dāng)以不同采樣率的3×3卷積核應(yīng)用在特征映射上時(shí),當(dāng)采樣率為1 時(shí)其實(shí)就是普通的3×3 卷積,當(dāng)采樣率為3和5 時(shí),使用了采樣率大的卷積核具有較大的感受野,可以捕獲到全局上文信息,這對(duì)提取圖片中的特征信息非常有效。(5)在AP50上的性能不如CE-FPN,可能是因?yàn)镃E-FPN在更好地利用高級(jí)語(yǔ)義特征。
表2 與主流的FPN方法的比較Table 2 Comparison with popular FPN-based methods %
在表3 中,比較了各種多個(gè)目標(biāo)檢測(cè)方法來(lái)驗(yàn)證CasHead 的有效性。所有模型均使用ResNet-101 和FPN進(jìn)行訓(xùn)練。從中可以看出CasHead優(yōu)于FCOS的單次檢測(cè)方法,原因在于CasHead可以獲得高質(zhì)量的邊界框,并能有效地學(xué)習(xí)合理的邊界框分布。FCOS 忽視了不同級(jí)聯(lián)階段中的特征一致性,因?yàn)樗峭ㄟ^全卷積的方式從原始位置上提取特征。CasHead 采用級(jí)聯(lián)檢測(cè)的方法來(lái)提高檢測(cè)器的性能,通過細(xì)化邊界框可以得到高質(zhì)量的邊界框。在訓(xùn)練過程中以級(jí)聯(lián)的方式,逐步提高后續(xù)階段IoU的閾值,有助于解決不一致的問題。
表3 CasHead性能評(píng)估Table 3 Evaluating performance of CasHead %
表4比較了COCO數(shù)據(jù)集上第二階段設(shè)置不同IoU閾值下的檢測(cè)性能。從表中可以看出,簡(jiǎn)單地添加一個(gè)具有相同IoU 設(shè)置的新階段不會(huì)提高檢測(cè)精度。對(duì)于IoU閾值為0.5的ConFCOS,AP保持不變。原因主要在于抽樣方法沒有變。當(dāng)閾值在第二階段增加到0.6 時(shí),觀察到AP從43.2%提升到44.6%。另外,在第二階段嘗試更高的IoU 閾值0.7,但AP 略有下降??赡苁荌oU 閾值越高,訓(xùn)練樣本的質(zhì)量越高,而數(shù)量越少。
表4 不同IoU的檢測(cè)性能Table 4 Detection performances of different IoU thresholds
通過表1和表4可以觀察到,使用SFPN可使FCOS的mAP 提升1.7 個(gè)百分點(diǎn),使用CasHead 使FCOS 的mAP提升1.4個(gè)百分點(diǎn),但同時(shí)使用SFPN和CasHead的ConFCOS比FCOS只提升了1.6個(gè)百分點(diǎn),這可能是因?yàn)镾FPN 的性能主要貢獻(xiàn)是能提取豐富的全局特征信息,而這對(duì)于CasHead中提高檢測(cè)的邊界框質(zhì)量作用有限。
評(píng)估了目標(biāo)檢測(cè)方法的召回率來(lái)驗(yàn)證損失函數(shù),對(duì)RetinaNet、FCOS 和ConFCOS 召回率曲線進(jìn)行比較,圖4 顯示了在IOU 閾值分別為0.50、0.75 和0.90 的召回率曲線,從中可以觀察到:(1)ConFCOS 的性能優(yōu)于基于錨點(diǎn)的RetinaNet 和無(wú)錨點(diǎn)FCOS,這是因?yàn)镃asHead 可以通過細(xì)化邊界框來(lái)實(shí)現(xiàn)高質(zhì)量的邊界框。(2)值得注意的是,通過更嚴(yán)格的IoU閾值,ConFCOS比RetinaNet和FCOS有更大的改進(jìn),這表明ConFCOS有更好的邊界框回歸,可以更加準(zhǔn)確地檢測(cè)對(duì)象。原因是ConFCOS利用新的損失函數(shù)來(lái)進(jìn)行訓(xùn)練。
圖4 RetinaNet、FCOS和ConFCOS召回率曲線Fig.4 Precision of recall curves on RetinaNet,F(xiàn)COS and ConFCOS
在表5 中,對(duì)ConFCOS 中的懲罰項(xiàng)k值進(jìn)行了評(píng)估,訓(xùn)練時(shí)間在RTX Ti 2080 GPU上采集,主干網(wǎng)絡(luò)采用ResNet-101。從表中可以觀察到:(1)隨著懲罰項(xiàng)值的降低,訓(xùn)練時(shí)使用的邊界框數(shù)量越少,訓(xùn)練速度會(huì)越來(lái)越快。(2)當(dāng)k=0.7 時(shí)性能最好,表明剔除一些冗余的邊界框后性能獲得提升,速度也有所提高。
表5 k 值性能評(píng)估Table 3 Evaluating performance of k
圖5展示了SFPN運(yùn)行過程中的C5~P5的可視化過程,從中可以看出,經(jīng)過SFPN后取得的特征信息更加豐富,因?yàn)樵谄渲芯哂胁煌惺芤暗臄U(kuò)展卷積模塊,而且它與當(dāng)前層的特征與3×3卷積特征、上一層的下采樣特征進(jìn)行了特征融合。
圖5 SFPN中圖例展示Fig.5 Visualization of SFPN
本文基于無(wú)錨點(diǎn)的單階段檢測(cè)算法FCOS 提出了一致性優(yōu)化的全卷積單階段目標(biāo)檢測(cè)算法(ConFCOS),單階段目標(biāo)檢測(cè)算法可以使用三個(gè)部分來(lái)實(shí)現(xiàn),即主干網(wǎng)絡(luò)、頸部網(wǎng)絡(luò)和檢測(cè)頭。針對(duì)頸部網(wǎng)絡(luò),設(shè)計(jì)了一個(gè)增強(qiáng)的特征金字塔網(wǎng)絡(luò)(SFPN),它在特征圖上融合不同感受野的空間和通道信息。針對(duì)檢測(cè)頭,構(gòu)造了一個(gè)級(jí)聯(lián)檢測(cè)頭(CasHead)來(lái)檢測(cè)目標(biāo),采用對(duì)檢測(cè)中的邊界框進(jìn)行細(xì)化來(lái)提高分類和回歸的置信度。此外,針對(duì)提出的模型ConFCOS 的損失函數(shù)進(jìn)行了優(yōu)化,能獲取到高召回率,加速模型訓(xùn)練和提高模型性能。在基準(zhǔn)模型和數(shù)據(jù)集上進(jìn)行的綜合實(shí)驗(yàn)結(jié)果表明,ConFCOS 優(yōu)于最先進(jìn)的方法。