林弟忠 鄒書蓉 符 穎
(成都信息工程大學(xué)計(jì)算機(jī)學(xué)院,四川 成都 610225)
現(xiàn)有的高性能目標(biāo)檢測模型進(jìn)行訓(xùn)練需要大規(guī)模帶標(biāo)簽信息的數(shù)據(jù)集,而大多數(shù)實(shí)際檢測場景中標(biāo)注數(shù)據(jù)只占很小一部分。沒有足夠的標(biāo)注數(shù)據(jù)用于訓(xùn)練,導(dǎo)致現(xiàn)有模型檢測效果不佳,這阻礙了目標(biāo)檢測的研究及應(yīng)用于更多的場景中。近幾年,小規(guī)模標(biāo)注數(shù)據(jù)集下的檢測任務(wù)引起了重視,從而小樣本目標(biāo)檢測相關(guān)工作得到了迅速發(fā)展。當(dāng)前大多數(shù)的研究模型基于傳統(tǒng)的 Faster-RCNN[1]、YOLO[2]、SSD[3]等有錨的目標(biāo)檢測框架搭建,并借鑒了小樣本學(xué)習(xí)的元訓(xùn)練策略[4]。但這些基于有錨的小樣本目標(biāo)檢測框架依賴于大量的基類數(shù)據(jù)進(jìn)行長時(shí)間訓(xùn)練,并且為了適應(yīng)新類樣本的檢測需要構(gòu)建基類和新類的平衡小樣本集[5]并微調(diào)參數(shù)。如果還需要額外引入新類,就必須進(jìn)行二次訓(xùn)練,訓(xùn)練方法十分復(fù)雜。為克服這種煩瑣的訓(xùn)練方法,讓檢測器高效地檢測新類樣本,基于無錨的小樣本檢測器得到了發(fā)展。如ONCE[6]小樣本目標(biāo)檢測器,參考了基于無錨的CenterNet[7]檢測網(wǎng)絡(luò)并額外引入基于ResNet的類編碼器對(duì)新類進(jìn)行編碼。該網(wǎng)絡(luò)可以直接注入新類進(jìn)行檢測無需微調(diào)及進(jìn)行二次訓(xùn)練,其中類代碼能構(gòu)建起每個(gè)類獨(dú)有的權(quán)重參數(shù)用于檢測網(wǎng)絡(luò)進(jìn)行有效檢測。而ONCE僅用了單一的ResNet[8]作為類代碼生成器提取類特征,編碼性能不佳導(dǎo)致對(duì)于困難樣本會(huì)產(chǎn)生大量錯(cuò)檢和漏檢。
以上研究表明,提升小樣本目標(biāo)檢測器對(duì)新類檢測的泛化性能是十分關(guān)鍵的。近年來,將注意力機(jī)制[9-10]融合到特征提取網(wǎng)絡(luò)有益于讓網(wǎng)絡(luò)專注于學(xué)習(xí)每個(gè)目標(biāo)最重要的特征信息,提升網(wǎng)絡(luò)的編碼性能。
借鑒注意力機(jī)制的思想并參考無錨的CenterNet網(wǎng)絡(luò)框架,本文設(shè)計(jì)了全新的小樣本目標(biāo)檢測器。引入融合注意力模塊的類編碼器高效地提取新類圖像的表征信息,讓類編碼器專注于學(xué)習(xí)每個(gè)類獨(dú)有的特征信息,提取類特定的代碼用于檢測網(wǎng)絡(luò),有益于檢測新類中的困難樣本。實(shí)驗(yàn)結(jié)果表明,本文的小樣本目標(biāo)檢測模型使新類樣本的泛化性能得到了有效增強(qiáng)。
2018年,Kang等[11]參考YOLOv2框架搭建小樣本檢測模型并額外引入了權(quán)重調(diào)整模塊生成每個(gè)類別的特有的權(quán)重向量用于適應(yīng)對(duì)新類別的檢測,從而實(shí)現(xiàn)在基類和新類混合訓(xùn)練場景下對(duì)新類的有效檢測。2019年,Zhang等[12]提出對(duì)比網(wǎng)絡(luò),第一階段利用常規(guī)的Faster-RCNN進(jìn)行訓(xùn)練,第二階段先采用一個(gè)孿生網(wǎng)絡(luò)提取查詢圖像和目標(biāo)圖像特征并做相似度計(jì)算,而注入新類樣本到模型中需要重新進(jìn)行微調(diào)和訓(xùn)練,才能進(jìn)行有效檢測。2019年,Fan等[13]在候選框區(qū)域提取網(wǎng)絡(luò)中引入attention-RPN模塊用于融合查詢圖像與支持集圖像的特征,采用雙向?qū)Ρ扔?xùn)練策略用于檢測新類。多次關(guān)聯(lián)和對(duì)比的訓(xùn)練方式充分對(duì)目標(biāo)的相似性特征進(jìn)行分析,但模型訓(xùn)練方式非常復(fù)雜。2020年,Wang等[5]提出了以Faster-RCNN為框架,分兩階段訓(xùn)練,在第二階段只微調(diào)分類和回歸子網(wǎng)絡(luò),通過重新調(diào)整特征的組合權(quán)重以適應(yīng)新類。這種框架也需要在第二階段進(jìn)行微調(diào),因此不能輕易地將新類注入模型中。Juan-Manuel等[6]借鑒CenterNet[7]框架提出了ONCE網(wǎng)絡(luò),引入提取圖像特征的元網(wǎng)絡(luò)和用于定位目標(biāo)的目標(biāo)定位網(wǎng)絡(luò)。另外,采用殘差網(wǎng)絡(luò)作為類代碼生成器提取與類相關(guān)的類代碼用于檢測網(wǎng)絡(luò)。這樣的網(wǎng)絡(luò)框架能輕易地引入新類,但單一的殘差網(wǎng)絡(luò)對(duì)新類的特征提取性能不足,導(dǎo)致模型的泛化性能不佳。
注意力機(jī)制能讓網(wǎng)絡(luò)顯著地關(guān)注圖像比較重要的部分,有效減少周圍信息的干擾。近年來,注意力機(jī)制[14-16]有效地引入到圖像領(lǐng)域CNN網(wǎng)絡(luò)中,取得了不錯(cuò)的效果。Wang等[17]提出了由多層注意力模塊堆疊而成的殘差注意力網(wǎng)絡(luò),可以進(jìn)一步提取特征圖中的重要信息,對(duì)噪聲輸入也具有一定的魯棒性,但網(wǎng)絡(luò)參數(shù)量太大,增加了模型訓(xùn)練負(fù)擔(dān)。Hu等[9]提出由若干個(gè)通道注意力模塊組合而成的SeNet(squeezeand-excitation networks),該注意力模塊旨在通過對(duì)特征進(jìn)行全局平均池化學(xué)習(xí)通道之間的相關(guān)性,讓網(wǎng)絡(luò)能夠使用動(dòng)態(tài)通道級(jí)特征重新進(jìn)行校準(zhǔn)從而提高網(wǎng)絡(luò)的特征表達(dá)能力。Sanghyun Woo等[10]借鑒了 Shen等[9]的工作并驗(yàn)證了在注意力模塊中只使用平均池化關(guān)注單一的通道特征關(guān)系并非最優(yōu)方案,提出對(duì)輸入注意力模塊的特征額外引入最大池化計(jì)算。設(shè)計(jì)出了融合空間特征和通道特征的注意力模塊CBAM(convolutional block attention module),提升了網(wǎng)絡(luò)對(duì)圖像重要特征的表達(dá)性能。實(shí)驗(yàn)證明兩種注意力模塊的融合優(yōu)于僅僅只關(guān)注通道特征的方式。
針對(duì)增量式元訓(xùn)練場景,本文選擇無錨目標(biāo)檢測算法CenterNet網(wǎng)絡(luò)作為框架,對(duì)比YOLO、SSD等網(wǎng)絡(luò),CenterNet網(wǎng)絡(luò)結(jié)構(gòu)見圖1。該網(wǎng)絡(luò)針對(duì)每個(gè)類獨(dú)立進(jìn)行檢測,減少了基類和新類的特征交叉,從而有效減小基類特征對(duì)新類的干擾。網(wǎng)絡(luò)獨(dú)立學(xué)習(xí)新類的能力更強(qiáng),適合用于構(gòu)建小樣本目標(biāo)檢測的框架。首先,利用裁剪、顏色抖動(dòng)、隨機(jī)縮放以及隨機(jī)翻轉(zhuǎn)等操作作為數(shù)據(jù)增強(qiáng)T1得到增強(qiáng)后的數(shù)據(jù)。然后,CenterNet將訓(xùn)練圖像傳入特征提取器中得到網(wǎng)絡(luò)的熱圖,最終根據(jù)熱圖預(yù)測目標(biāo)的中心點(diǎn)并回歸得到最終的檢測框。
本文設(shè)計(jì)了一種新的小樣本目標(biāo)檢測模型,其網(wǎng)絡(luò)結(jié)構(gòu)見圖2。將CenterNet網(wǎng)絡(luò)分解為特征提取器和目標(biāo)定位器,其中特征提取器為編碼解碼結(jié)構(gòu),編碼部分為殘差網(wǎng)絡(luò),解碼部分為反卷積網(wǎng)絡(luò)。并且所有新類和基類共享權(quán)重。而目標(biāo)定位器包含類相關(guān)的權(quán)重信息,能對(duì)特征圖進(jìn)一步做卷積操作生成熱圖。
另外,引入了注意力類編碼器生成具有注意力感知的類代碼用于目標(biāo)定位器,這取代了CenterNet利用迭代更新類相關(guān)權(quán)重參數(shù)的操作。注意力類編碼器通過全局平均池化輸出與類相關(guān)的權(quán)重信息進(jìn)一步參數(shù)化目標(biāo)定位器的參數(shù)。在該類編碼器中融合了空間注意力模塊和通道注意力模塊,使編碼器專注于學(xué)習(xí)類特定代碼。
受注意力機(jī)制[15-17]相關(guān)工作的啟發(fā),在注意力類編碼器的結(jié)構(gòu)中,為保持最佳特征編碼性能,不改變整個(gè)殘差網(wǎng)絡(luò)的結(jié)構(gòu),在整個(gè)殘差網(wǎng)絡(luò)的前面和后面分別融合注意力模塊,見圖2。與CBAM[17]保持一致,該注意力模塊的結(jié)構(gòu)見圖3。圖像經(jīng)過卷積及歸一化等操作得到的淺層特征,先通過一個(gè)通道注意力模塊,得到加權(quán)特征之后,再經(jīng)過一個(gè)空間注意力模塊,從而得到同時(shí)具有通道和空間注意力感知的特征信息。并利用殘差網(wǎng)絡(luò)進(jìn)一步提取圖像深層的特征信息,最終以平均池化的方式輸出類特定代碼。
借鑒元學(xué)習(xí)的訓(xùn)練策略[4],為充分利用基礎(chǔ)類別,將元訓(xùn)練分為兩個(gè)串行階段。第一階段,利用標(biāo)注信息豐富的基類數(shù)據(jù)在標(biāo)準(zhǔn)的CenterNet網(wǎng)絡(luò)上訓(xùn)練出特征提取器的權(quán)重參數(shù)用于下一個(gè)訓(xùn)練階段。第二階段的訓(xùn)練分為多個(gè)episode,見圖4。每個(gè)episode執(zhí)行多個(gè)元任務(wù),每個(gè)元任務(wù)根據(jù)標(biāo)簽信息隨機(jī)抽取多個(gè)樣本構(gòu)成一個(gè)支持集用于訓(xùn)練和一個(gè)查詢集用于測試。這種學(xué)習(xí)機(jī)制有益于網(wǎng)絡(luò)在不同元任務(wù)中學(xué)習(xí)提取每個(gè)類別最重要的特征[4],增強(qiáng)模型的特征提取性能,同時(shí)也更有利于學(xué)習(xí)每個(gè)類獨(dú)有的類代碼。
2.4.1 第二階段訓(xùn)練:注意力類編碼器的學(xué)習(xí)
元訓(xùn)練第一階段采用標(biāo)準(zhǔn)的CenterNet網(wǎng)絡(luò)進(jìn)行訓(xùn)練,只是為了學(xué)習(xí)特征提取器的權(quán)重用于下一階段。在第二階段固定特征提取器的參數(shù),主要訓(xùn)練一個(gè)融合通道注意力模塊和空間注意力模塊的注意力類編碼器,從而具有生成注意力感知的類代碼的能力。為了對(duì)注意力類編碼器進(jìn)行有效訓(xùn)練,本文采用增量式元訓(xùn)練策略[6]。
具體做法:整個(gè)訓(xùn)練由多個(gè)episode構(gòu)成,每個(gè)episode執(zhí)行一定數(shù)量的元任務(wù),并且每個(gè)元任務(wù)從所有類別中采樣一個(gè)類標(biāo)簽集L。比如,L={香蕉,傘,…}。每個(gè)元任務(wù)會(huì)根據(jù)標(biāo)簽集L隨機(jī)抽取一個(gè)支持集S和一個(gè)查詢集Q。每個(gè)支持集中的圖像x(x∈S)做數(shù)據(jù)增強(qiáng)T2輸入類編碼器提取特征。類編碼器中的殘差網(wǎng)絡(luò)部分用上一階段訓(xùn)練得到的特征提取器中編碼器部分的權(quán)重進(jìn)行初始化。在前向傳播過程中,每一個(gè)元任務(wù)中的查詢集圖像做數(shù)據(jù)增強(qiáng)T1,并利用一階段訓(xùn)練好的特征提取器提取查詢集特征,見式(1),得到多通道的特征圖。同時(shí),注意力類編碼器提取支持集圖像特征生成類特定代碼cIk:
其中,mQ為查詢集圖像I的特征,SIk為采樣得到的支持集樣本。最終,通過全局平均池化輸出768維的類特征cIk,并以同種類別的類特征cIk做平均池化,得到每個(gè)類的類特定代碼{ck}。將查詢集圖像特征mQ和類特定代碼{ck}輸入目標(biāo)定位器中做卷積運(yùn)算h生成每個(gè)類對(duì)應(yīng)的熱圖Y:
熱圖的損失采用L1損失函數(shù)進(jìn)行計(jì)算,如式(4)所示。通過更新目標(biāo)定位器和注意力類編碼器的參數(shù)使得熱圖預(yù)測偏差最小。
其中,n為查詢集圖像的總數(shù),Z為真實(shí)熱圖。
該訓(xùn)練階段總損失Lmeta_det由查詢集熱圖heatmap、回歸框尺寸預(yù)測size、中心點(diǎn)偏移量offset 3部分組成:
2.4.2 元測試:注入新類
經(jīng)過元訓(xùn)練得到健壯的小樣本目標(biāo)檢測器,其中包含注意力特征提取器、注意力類編碼以及目標(biāo)定位器。采用元測試向檢測器注入新類進(jìn)行測試。首先,根據(jù)標(biāo)簽集對(duì)模型輸入隨機(jī)抽取得到的一組新類支持集樣本,注意力類編碼器提取新類的類特定代碼。同時(shí),特征提取器對(duì)輸入的測試圖像進(jìn)行特征提取。然后,網(wǎng)絡(luò)將得到的類特定代碼和特征圖輸入目標(biāo)定位器中做卷積運(yùn)算生成熱圖,并通過回歸得到測試樣本的檢測結(jié)果。
實(shí)驗(yàn)部署在8張英偉達(dá)GT 710 12G顯卡的Linux服務(wù)器上,配置了符合要求的加速平臺(tái)和加速庫。采用目標(biāo)檢測常用的COCO[18]基準(zhǔn)數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),其中訓(xùn)練集118287張,驗(yàn)證集5000張,涵蓋80個(gè)目標(biāo)類別,其中20個(gè)類別作為新類。該20個(gè)類別與PASCAL VOC[19]數(shù)據(jù)集所涵蓋的類別相同,COCO數(shù)據(jù)集中剩余的60個(gè)類別作為基類。因此,實(shí)驗(yàn)可分為兩種:第一種為元訓(xùn)練和元測試均在COCO上進(jìn)行的COCO同數(shù)據(jù)集評(píng)估;第二種是將COCO數(shù)據(jù)集用于元訓(xùn)練兩階段,在PASCAL VOC數(shù)據(jù)集上進(jìn)行元測試的跨數(shù)據(jù)集評(píng)估。
首先,調(diào)整COCO基類訓(xùn)練圖像的尺寸到512×512,以標(biāo)準(zhǔn)的CenterNet訓(xùn)練方式進(jìn)行元訓(xùn)練第一階段。然后,在第二階段中,與ONCE[6]保持一致,將基類視為偽新類樣本進(jìn)行訓(xùn)練。設(shè)置每一個(gè)episode隨機(jī)抽取32個(gè)元任務(wù),每個(gè)元任務(wù)包含對(duì)3個(gè)類別的檢測,并且每個(gè)類別含有5個(gè)標(biāo)注框,增大元任務(wù)的學(xué)習(xí)量有益于性能的提升。
采用元測試對(duì)模型性能進(jìn)行評(píng)估時(shí),網(wǎng)絡(luò)會(huì)從COCO訓(xùn)練集中采樣多組新類支持集,并且對(duì)每組支持集會(huì)隨機(jī)抽取每種新類{shot=1,5,10}個(gè)數(shù)據(jù)樣本用于提取類特定代碼。同時(shí),使用COCO驗(yàn)證集上的新類樣本作為測試圖像評(píng)估本文小樣本目標(biāo)檢測器的性能。
本文的模型與主流的小樣本目標(biāo)檢測算法進(jìn)行了性能對(duì)比:標(biāo)準(zhǔn)Fine-Tuning檢測模型[6];Few-shot object detection via feature reweighting[11];增量式小樣本目標(biāo)檢測網(wǎng)絡(luò)ONCE[6]。實(shí)驗(yàn)結(jié)果如表1所示。從實(shí)驗(yàn)結(jié)果可知,對(duì)每種新類采樣{shot=1,5,10}個(gè)樣本用于提取類代碼進(jìn)行檢測,本文的方法均最優(yōu)。證明設(shè)計(jì)的檢測器泛化性能得到了有效增強(qiáng),能根據(jù)少量的新類樣本實(shí)現(xiàn)有效檢測。同時(shí),在{shot=10}情況下,ONCE和本文方法檢測對(duì)比結(jié)果見圖5??梢钥闯?本文的方法有效地減少了對(duì)檢測目標(biāo)的錯(cuò)檢和漏檢情況。
表1 COCO同數(shù)據(jù)集檢測對(duì)比結(jié)果
對(duì)于從COCO到PASCAL VOC的跨數(shù)據(jù)集評(píng)估,同樣采用COCO數(shù)據(jù)集的基類數(shù)據(jù)進(jìn)行兩個(gè)階段的元訓(xùn)練,而元測試采用PASCAL VOC測試集作為測試圖像評(píng)估本文的小樣本目標(biāo)檢測器的性能,實(shí)驗(yàn)對(duì)比結(jié)果如表2所示。從實(shí)驗(yàn)結(jié)果可知,對(duì)新類采樣{shot=5,10}個(gè)標(biāo)注樣本提取類特定代碼進(jìn)行元訓(xùn)練,并對(duì)PASCAL VOC測試集進(jìn)行元測試,在得到的測試結(jié)果中,AP和AR值均優(yōu)于其他主流算法。說明本文的檢測器可以有效地遷移到新數(shù)據(jù)集上進(jìn)行檢測,這對(duì)于實(shí)際檢測場景具有重要意義。
表2 PASCAL VOC跨數(shù)據(jù)集檢測對(duì)比結(jié)果
本文方法的消融實(shí)驗(yàn)結(jié)果如表3所示。實(shí)驗(yàn)結(jié)果表明,本文的檢測框架采用融合了通道注意力和空間注意力的類編碼器,在性能上能夠達(dá)到最優(yōu)。
表3 消融實(shí)驗(yàn)結(jié)果
引入的注意力類編碼器能對(duì)輸入的少量新類樣本高效編碼出類特定代碼用于目標(biāo)定位器,從而提高目標(biāo)檢測的準(zhǔn)確性,減少了錯(cuò)檢和漏檢。同時(shí),采用的增量式元訓(xùn)練策略并沒有在元訓(xùn)練中構(gòu)建基類和新類的平衡小樣本集,而在元測試階段直接注入新類樣本進(jìn)行檢測。采取這種增量式元訓(xùn)練策略,在實(shí)際應(yīng)用場景當(dāng)中更易于引入新類。而這也是極具挑戰(zhàn)性的工作,因?yàn)樽⑷氲男骂悩颖竞苋菀妆荒P驼`判為經(jīng)過訓(xùn)練的基類。在實(shí)驗(yàn)部分通過目標(biāo)檢測主要評(píng)價(jià)指標(biāo)AP和AR對(duì)本文的方法進(jìn)行了評(píng)估并取得了不錯(cuò)的檢測效果。此外,檢測結(jié)果受益于更大的元任務(wù)學(xué)習(xí)量,如果有更多的GPU內(nèi)存,方法可以在每一個(gè)元任務(wù)增大訓(xùn)練樣本量,模型檢測性能還能夠得到進(jìn)一步提升。