王志達(dá) 丁勝奪 韓 亮
(中國(guó)石油集團(tuán)安全環(huán)保技術(shù)研究院有限公司HSE信息中心 北京 102206)
在計(jì)算機(jī)視覺(jué)領(lǐng)域,自然圖像中存在著多目標(biāo)、姿態(tài)和位置等問(wèn)題[1],因此目標(biāo)檢測(cè)是一項(xiàng)富有挑戰(zhàn)性的任務(wù)。在過(guò)去的二十年中,基于卷積神經(jīng)網(wǎng)絡(luò)(CNNs)[2~5]的檢測(cè)器占據(jù)主導(dǎo)地位且取得巨大成就,在精度和速度上都有顯著的提高[6]。但這些檢測(cè)大多依賴于錨框來(lái)實(shí)現(xiàn)檢測(cè)任務(wù),錨的設(shè)定具有高度的類不平衡問(wèn)題,使得分類性能下降。模型的檢測(cè)性能對(duì)人工設(shè)定的錨框較為敏感,模型魯棒性差。尤其是對(duì)于小目標(biāo)的檢測(cè),需要設(shè)置較小尺寸的錨框,導(dǎo)致錨涉及的相關(guān)參數(shù)多、計(jì)算復(fù)雜、占用內(nèi)存大等問(wèn)題。
近年來(lái),無(wú)錨檢測(cè)器因其克服了錨框的問(wèn)題而迅速發(fā)展起來(lái)。目前有兩種主流的方法來(lái)構(gòu)建無(wú)錨檢測(cè)器:基于中心的檢測(cè)器[7~10]和基于關(guān)鍵點(diǎn)的檢測(cè)器[11~15]。無(wú)錨的方法通過(guò)直接獲取目標(biāo)的中心點(diǎn)或關(guān)鍵點(diǎn)來(lái)構(gòu)成目標(biāo)的邊界框,它們比基于錨的檢測(cè)器在速度和計(jì)算量上都更高效。但大部分無(wú)錨檢測(cè)器[7,11,13]在檢測(cè)精度方面仍有劣勢(shì),尤其是小目標(biāo)。主要的原因有三個(gè):1)無(wú)錨的檢測(cè)方法難以建立關(guān)鍵點(diǎn)之間密切的關(guān)系,對(duì)于目標(biāo),往往會(huì)產(chǎn)生大量的誤報(bào),導(dǎo)致檢測(cè)精度低;2)無(wú)錨的檢測(cè)方法可能會(huì)錯(cuò)誤地將不相關(guān)的關(guān)鍵點(diǎn)分組到一個(gè)對(duì)象中。3)無(wú)錨的檢測(cè)方法有利于分類任務(wù),但缺乏先驗(yàn)邊界框,導(dǎo)致回歸效果未能達(dá)到最優(yōu)。
近年來(lái),有研究發(fā)現(xiàn)Transformer的核心思self-Attention可以建立目標(biāo)之間的長(zhǎng)距離依賴,能夠獲取全局的上下文信息,從而具有很強(qiáng)的表達(dá)能力[16],基于Transformer的方法得到進(jìn)一步的研究。將Transformer應(yīng)用到計(jì)算機(jī)視覺(jué)中的各種特定任務(wù)中,如分類[17~19]、目標(biāo)檢測(cè)[20~24]等,通過(guò)自注意力獲取全局信息來(lái)建立特征之間的聯(lián)系,同樣可以獲得更好的性能,但仍未能很好地解決小目標(biāo)問(wèn)題。
基于錨的檢測(cè)方法不僅需要設(shè)定不同尺度和寬高比的錨框,如RetinaNet[25]在每個(gè)位置包含了45個(gè)錨框,且需要對(duì)這些錨框進(jìn)行回歸,這些過(guò)程涉及到的參數(shù)較多且計(jì)算量大。錨框需要人工設(shè)定,模型的性能對(duì)錨框較為敏感,從而魯棒性較差。
在本文中,使用一種關(guān)鍵點(diǎn)集的表示法[13],如圖1所示。
通過(guò)學(xué)習(xí)限制對(duì)象的空間范圍和指示語(yǔ)義上重要的局部區(qū)域的方式,自適應(yīng)地將具有代表性意義的點(diǎn)定位在目標(biāo)上。這些點(diǎn)的訓(xùn)練是由識(shí)別目標(biāo)和目標(biāo)定位共同驅(qū)動(dòng)的,計(jì)算它們的相似性,忽略無(wú)關(guān)緊要的點(diǎn),這樣就可以被真值緊緊包圍,引導(dǎo)檢測(cè)器進(jìn)行正確的目標(biāo)分類和更細(xì)粒度的定位。該方法不需要使用錨來(lái)在邊界框的空間上采樣,是以自上而下的方式從輸入圖像或?qū)ο筇卣髦袑W(xué)習(xí)的,有利于端到端的訓(xùn)練。
本文提出一種基于交互關(guān)鍵點(diǎn)的無(wú)錨檢測(cè)模型,該模型主要包含:1)主干網(wǎng)用以生成多尺度特征{F1,F(xiàn)2,F(xiàn)3};2)交互的特征金字塔{Ft1,F(xiàn)t2,F(xiàn)t3}(如圖2所示);3)自適應(yīng)采樣方法生成具有代表意義的關(guān)鍵點(diǎn)以構(gòu)建預(yù)測(cè)邊界框;4)頭部網(wǎng)絡(luò)對(duì)關(guān)鍵點(diǎn)進(jìn)行精煉來(lái)實(shí)現(xiàn)分類和回歸(如圖3所示)。
為了更清楚地闡述檢測(cè)基線,只構(gòu)建了特征金塔單個(gè)尺度F2的檢測(cè)流程。首先對(duì)特征F2進(jìn)行卷積操作以進(jìn)行自適應(yīng)采樣式(1)得到一些具有代表意義的關(guān)鍵點(diǎn):
其中,n為總的采樣點(diǎn)個(gè)數(shù),本文中的n設(shè)為9。然后計(jì)算這些采樣點(diǎn)的重心作為將要預(yù)測(cè)對(duì)象的中心點(diǎn)(x,y),假設(shè)采樣點(diǎn)分別為{x1,x2,…,xn},并計(jì)算偏移(offset)式(2)對(duì)這些關(guān)鍵點(diǎn)進(jìn)行精煉:
其中,T1為在這些采樣點(diǎn)的兩個(gè)坐標(biāo)軸方向的Min-max操作來(lái)確定Bp,即連接所有采樣點(diǎn)的邊框。T2為子采樣點(diǎn)的空間Min-max操作來(lái)決定矩形邊框Bp。T3為采用采樣點(diǎn)的均值和標(biāo)準(zhǔn)差來(lái)計(jì)算矩形邊框Bp的中心點(diǎn)和尺寸。本文采用T3作為變換函數(shù),同時(shí)利用自注意力機(jī)制計(jì)算這些關(guān)鍵點(diǎn)之間的相似性,在訓(xùn)練和預(yù)測(cè)過(guò)程中關(guān)注與重要關(guān)鍵點(diǎn)相似的點(diǎn),忽略不相似的點(diǎn),以此實(shí)現(xiàn)更精確的關(guān)鍵點(diǎn)之間的匹配,同時(shí)在對(duì)關(guān)鍵點(diǎn)回歸時(shí)計(jì)算關(guān)鍵點(diǎn)之間的相似性并評(píng)分,得到與每個(gè)真值框上的關(guān)鍵點(diǎn)相似性最高的哪些點(diǎn),然后根據(jù)每個(gè)真值關(guān)鍵點(diǎn)進(jìn)行回歸,實(shí)現(xiàn)更細(xì)粒度的定位。如果特征圖中的每個(gè)關(guān)鍵點(diǎn)都作為一個(gè)隨機(jī)變量,任意兩個(gè)關(guān)鍵點(diǎn)a(xi,yi),b(xj,yj)之間的相似性計(jì)算公式如下。
然后根據(jù)真值框和pseudo box的差別計(jì)算關(guān)鍵點(diǎn)的損失用以訓(xùn)練。與此同時(shí),對(duì)上述方法獲得的offsets進(jìn)行可變卷積得到類別分?jǐn)?shù)映射和偏移域(offsets field),分別用以分類和定位。對(duì)offsets field進(jìn)行上述同樣的操作并根據(jù)真值框?qū)﹃P(guān)鍵點(diǎn)進(jìn)行回歸形成最終的檢測(cè)邊框。
2.2.1 交互的特征金字塔
為了獲取特征圖的全局信息,本文在主干網(wǎng)生成多尺度特征后,將自注意力層代替卷積層以生成具有局部和全局信息的特征金字塔。對(duì)于self-attention層,本文采用scaled-dot-product[26]的形式,給定query矩陣Q,key矩陣K以及value矩陣V,首先將Q和K相乘計(jì)算相關(guān)性,然后除以縮放因子再進(jìn)行soft max運(yùn)算,得到的結(jié)果與value向量的加權(quán)和就是最終輸出。
其中:
Wq,Wk,Wν分別為Transformer矩陣。
如圖3所示,以特征F2的轉(zhuǎn)變?yōu)槔紫冉o定一個(gè)像素點(diǎn)xi,j,特征的其他像素位置為a,b∈Nk(i,j),Nk(i,j)為像素個(gè)數(shù)。經(jīng)過(guò)單個(gè)頭部注意力層可以得到該像素的變換輸出為
其中,qi,j=Wqxi,j,ka,b=Wkxa,b和νa,b=Wνxa,b為位置i,j像素和其他像素的線性轉(zhuǎn)變,soft maxa,b表示將一個(gè)soft max應(yīng)用到除了位置i,j的其他數(shù)字,然后對(duì)它們求和。分別對(duì)特征{F1,F(xiàn)2,F(xiàn)3}的每個(gè)像素進(jìn)行變換得到特征{a,b,c},然后將他們進(jìn)行聯(lián)結(jié)(concatenate),并添加了殘差連接將特征F2和上述特征進(jìn)行聯(lián)結(jié)得到轉(zhuǎn)變后的特征Ft2。分別對(duì)特征{F1,F(xiàn)2,F(xiàn)3}進(jìn)行上述操作并加上自上而下的連接得到最終的{Ft1,F(xiàn)t2,F(xiàn)t3}。
2.2.2 頭部網(wǎng)絡(luò)結(jié)構(gòu)
本文的頭部網(wǎng)絡(luò)結(jié)構(gòu)(如圖3所示)主要包含兩個(gè)子網(wǎng)絡(luò):分類和定位子網(wǎng)絡(luò)。
圖3 頭部網(wǎng)絡(luò)
分類子網(wǎng)絡(luò)主要由四個(gè)3×3、通道數(shù)為256的卷積層組成,然后經(jīng)過(guò)一個(gè)1×1、通道數(shù)為81(數(shù)據(jù)集類別加背景)的卷積并進(jìn)行softmax操作得到最終的類別。定位子網(wǎng)絡(luò)在經(jīng)過(guò)同樣的四個(gè)3×3卷積操作后分為兩部分,一主干部分通過(guò)Offsets 1將采樣點(diǎn)轉(zhuǎn)變?yōu)闃?gòu)成邊界框的關(guān)鍵點(diǎn)Keypoints 1,分支通過(guò)一個(gè)3×3卷積和1×1的卷積得到Offsets 2,將兩個(gè)分支進(jìn)行融合對(duì)關(guān)鍵點(diǎn)進(jìn)行refine和回歸得到關(guān)鍵點(diǎn)Keypoints 2用以形成最終的檢測(cè)邊框。
本文以MS COCO 2017[27]為數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),COCO包含80個(gè)類別,118K張圖像作為訓(xùn)練集,5K圖像作為消融研究的驗(yàn)證集(minival)和20K張圖像作為驗(yàn)證(test-dev)。本文采用標(biāo)準(zhǔn)的Average Precision(AP),APS,APM和APL來(lái)評(píng)估模型性能。
實(shí)驗(yàn)配置:CPU為Intel i7-9700k;內(nèi)存為32G;GPU為NVIDIA GeForce GTX TITAN X;深度學(xué)習(xí)框架為Pytorch 1.7.1;CUDA版本為10.1。
為了和SOTA進(jìn)行比較,本文還采用ResNeXt[4]作為主干網(wǎng)。上述主干網(wǎng)在ImageNet[28]上經(jīng)過(guò)預(yù)訓(xùn)練,然后整個(gè)網(wǎng)絡(luò)在訓(xùn)練集上凍結(jié)主干網(wǎng)參數(shù)并進(jìn)行微調(diào)。
我們使用文獻(xiàn)[19]的參數(shù)設(shè)定,采用了SGD進(jìn)行訓(xùn)練,mini-bacth為2。學(xué)習(xí)率、權(quán)重衰減和動(dòng)量分別設(shè)置為0.01、0.0001和0.9。當(dāng)訓(xùn)練至80K個(gè)interaction時(shí),學(xué)習(xí)率減少至原來(lái)的1/10。本文在訓(xùn)練中采用圖像的隨機(jī)水平翻轉(zhuǎn)。在推理中,NMS(σ=0.5)被作為后處理方法。
本文采用的損失為
本文在MS-COCO[27]基準(zhǔn)test-dev 2017的測(cè)試中將ITKP與最先進(jìn)的檢測(cè)器進(jìn)行了比較。在這些實(shí)驗(yàn)中,本文在訓(xùn)練過(guò)程中將圖像從640關(guān)鍵點(diǎn)到800關(guān)鍵點(diǎn)隨機(jī)縮放,并將迭代次數(shù)增加至200K(學(xué)習(xí)率按比例縮放進(jìn)行變化)。表1列出了實(shí)驗(yàn)結(jié)果的比較,在相同的主干網(wǎng)上,本文的網(wǎng)絡(luò)在COCO上的檢測(cè)精度和基于錨的兩階段檢測(cè)器Faster R-CNN[28]和一階段檢測(cè)器RetinaNet[25]與基于關(guān)鍵點(diǎn)的方法RepPoints[13]相比,雖然有的AP稍低,但整體的檢測(cè)精度和在小目標(biāo)上的AP較高且具有較少的計(jì)算量。使用ResNeXt-101作為主干網(wǎng),ITKP的AP達(dá)到41.9%。
表1 與SOTAs的比較(%)
本文的消融研究在MS-COCO 2017 val set[27]上實(shí)施,主干網(wǎng)為ResNet-50和ResNet-101。消融研究旨在如下。
1)比較邊界框和關(guān)鍵點(diǎn)不同表示方法的效果,網(wǎng)絡(luò)配置都一樣,處理方法不同。由表2可以看出,采用關(guān)鍵點(diǎn)為表示方法要比使用邊界框?yàn)楸硎痉椒ǖ木雀呒s2.1%~2.3%。
表2 邊界框(BB)VS關(guān)鍵點(diǎn)(KP)
2)比較單個(gè)錨和單個(gè)中心點(diǎn)作為初始表示方法。由表3可以看出,中心點(diǎn)作為初始表示方法比錨作為初始表示方法的AP高1.3%~1.6%。
表3 單個(gè)錨(SA)VS單個(gè)中心點(diǎn)(SC)
3)比較基于錨和無(wú)錨的檢測(cè)方法,RetinaNet和FPN為基于錨方法,其余的為無(wú)錨方法。由表4所示,在相同的主干網(wǎng)上,相比基于錨的檢測(cè)器,無(wú)錨檢測(cè)器不僅避免了錨的設(shè)定,還較大幅度地提升了AP。
表4 基于錨和無(wú)錨方法的比較
4)比較使用(w)和不使用(w.t)交互的特征金字塔(TFP)的結(jié)果。由表5可以看出,使用交互的特征金字塔不僅可以提升整體的AP,還提升了小目標(biāo)APs為2.3%。
表5 w TFP VS w.t TFP
另外,由圖4所示,我們將采用卷積操作得到的特征金字塔(b)和通過(guò)自注意力層得到的特征金字塔(c)的特征進(jìn)行可視化,可以看出,相比(b),(c)的特征更加豐富,特征之間也存在一定的關(guān)聯(lián),對(duì)小目標(biāo)特征更加敏感。
圖4 特征可視化
通過(guò)上述實(shí)驗(yàn)結(jié)果表明,本文提出的模型可以有效地提升目標(biāo)檢測(cè)的精度且具有較少的計(jì)算量。本文在COCO中的測(cè)試集中挑選了一部分難以檢測(cè)的圖像進(jìn)行檢測(cè),檢測(cè)結(jié)果如圖5所示。
圖5 檢測(cè)結(jié)果可視化
針對(duì)小目標(biāo)檢測(cè)精度低,錨框設(shè)定涉及的參數(shù)量大、計(jì)算復(fù)雜和導(dǎo)致模型魯棒性弱的問(wèn)題,本文提出一種基于交互關(guān)鍵點(diǎn)的無(wú)錨檢測(cè)模型。該模型避免了錨的設(shè)定,通過(guò)學(xué)習(xí)限制目標(biāo)的空間范圍和語(yǔ)義重要的局部區(qū)域的方式,自適應(yīng)地將具有代表意義的點(diǎn)定位在目標(biāo)上。另外,使用自注意力機(jī)制建立關(guān)鍵點(diǎn)之間的聯(lián)系。設(shè)計(jì)了一個(gè)交互的特征金字塔,結(jié)合CNN提取的局部信息和自注意力層來(lái)獲取的全局信息。通過(guò)上述方法,提升了基于關(guān)鍵點(diǎn)的檢測(cè)器的小目標(biāo)的檢測(cè)精度。本文提出的檢測(cè)模型的性能得到較大的提升且具有較少的計(jì)算量。但是,本文提出的模型在精度方面仍有很大的優(yōu)化空間。