劉子威,鄧春華,劉 靜*
(1.武漢科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,武漢 430065;2.武漢科技大學(xué)大數(shù)據(jù)科學(xué)與工程研究院,武漢 430065;3.智能信息處理與實(shí)時(shí)工業(yè)系統(tǒng)湖北省重點(diǎn)實(shí)驗(yàn)室(武漢科技大學(xué)),武漢 430065)
(?通信作者電子郵箱luijing_cs@wust.edu.cn)
計(jì)算機(jī)視覺(jué)領(lǐng)域有很多不同的圖像研究任務(wù),包括圖像分類[1]、目標(biāo)檢測(cè)[2]、姿態(tài)估計(jì)[3]、語(yǔ)義分割[4]等。目標(biāo)檢測(cè)任務(wù)需要為圖像中每一個(gè)實(shí)例預(yù)測(cè)出一個(gè)帶有類別標(biāo)簽的邊界框,是一項(xiàng)具有挑戰(zhàn)性的任務(wù)。經(jīng)過(guò)幾年的長(zhǎng)足發(fā)展,深度學(xué)習(xí)模型逐漸取代傳統(tǒng)機(jī)器視覺(jué)方法成為目標(biāo)檢測(cè)領(lǐng)域的主流算法?,F(xiàn)代目標(biāo)檢測(cè)任務(wù)按照檢測(cè)框架的不同可以分為兩個(gè)分支:?jiǎn)坞A段檢測(cè)器[5]與雙階段檢測(cè)器[6-7]。單階段檢測(cè)器一般通過(guò)卷積網(wǎng)絡(luò)直接生成特征圖從而計(jì)算出框的坐標(biāo)與類別[8-9];雙階段檢測(cè)器首先通過(guò)區(qū)域候選網(wǎng)絡(luò)(Region Proposal Network,RPN)[10]得到區(qū)域推薦框,再對(duì)推薦框進(jìn)行更進(jìn)一步精細(xì)的分類與回歸操作[11-12]。絕大多數(shù)檢測(cè)器的檢測(cè)方法都是以多個(gè)寬高比例的錨框(Anchor)作為目標(biāo)定位的參考點(diǎn),再計(jì)算錨框與真實(shí)框的交并比(Intersection Over Union,IOU)來(lái)選擇其中最準(zhǔn)確的錨框。這些檢測(cè)器的效果一定程度上依賴于手工預(yù)選取錨框的好壞程度,同時(shí)繁雜的錨框也為計(jì)算帶來(lái)了一些不便之處。為了解決上述問(wèn)題,2019 年以來(lái)基于無(wú)錨框(anchor-free)的方法[13-19]開(kāi)始流行。它憑借其簡(jiǎn)單直觀的設(shè)計(jì)與良好的檢測(cè)性能受到了工業(yè)界的青睞,同時(shí)也是目標(biāo)檢測(cè)近年的重要方向之一。
無(wú)錨框檢測(cè)作為目標(biāo)檢測(cè)最新方向的同時(shí)也面臨著一些問(wèn)題。首先,它在實(shí)際應(yīng)用中速度與精度的平衡方面做得不夠理想。速度快的網(wǎng)絡(luò)精度一般,而精度高的網(wǎng)絡(luò)又無(wú)法達(dá)到實(shí)時(shí)。其次,無(wú)錨框檢測(cè)廣泛存在不同尺度目標(biāo)間相互干擾的問(wèn)題。這種問(wèn)題在使用沙漏網(wǎng)絡(luò)作為主干網(wǎng)絡(luò)的無(wú)錨框檢測(cè)中尤其突出,是單一的特征提取方式與一段式網(wǎng)絡(luò)設(shè)計(jì)所造成的。最后,由于無(wú)錨框的檢測(cè)方法均生成單一尺度的特征圖,這樣會(huì)將尺度差距巨大的目標(biāo)雜糅到一張?zhí)卣鲌D上,難免使兩者間相互產(chǎn)生影響,所以模型在目標(biāo)尺度差距過(guò)大的情況下效果不佳。
本文針對(duì)上述不足之處提出了一種在無(wú)錨框方法中使用的非對(duì)稱沙漏網(wǎng)絡(luò)結(jié)構(gòu)。該結(jié)構(gòu)能夠快速、高效抽象網(wǎng)絡(luò)的語(yǔ)義信息,在保持準(zhǔn)確率的同時(shí)提高了檢測(cè)速度。本文的主要工作有:
1)提出了在無(wú)錨框檢測(cè)中使用的非對(duì)稱沙漏網(wǎng)絡(luò)結(jié)構(gòu)。
2)設(shè)計(jì)了針對(duì)無(wú)錨框檢測(cè)的多尺度通路用來(lái)解決不同尺度目標(biāo)間特征互相干擾的問(wèn)題,并精細(xì)化網(wǎng)絡(luò)的預(yù)測(cè)結(jié)果。
3)在無(wú)錨框檢測(cè)中使用改進(jìn)后的非極大值抑制(Non-Maximum Suppression,NMS)算法來(lái)保證多尺度輸出的健壯性。
本章主要介紹近年來(lái)該領(lǐng)域相關(guān)研究的進(jìn)展情況,分別闡述了錨框檢測(cè)器與無(wú)錨框檢測(cè)器之間的區(qū)別以及無(wú)錨框中的代表網(wǎng)絡(luò)CenterNet。
圖1 基于錨框檢測(cè)器的檢測(cè)流程Fig.1 Detection process of detector based on anchor
基于錨框的檢測(cè)器均繼承了傳統(tǒng)的滑窗與區(qū)域建議的思想,其中最有名的是Girshick 等[20]在2014 年提出的區(qū)域卷積網(wǎng)絡(luò)(Region-Convolutional Neural Network,RCNN)系列網(wǎng)絡(luò)。它首先選擇性搜索出感興趣區(qū)域,然后將其送入后續(xù)的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)進(jìn)行分類。后來(lái)的Fast-RCNN 通過(guò)裁剪不同尺度的圖像特征以節(jié)省計(jì)算量,再將特征送入分類與回歸層計(jì)算出最后結(jié)果。但是以上兩種方法都存在依賴手工特征提取方法來(lái)獲得感興趣區(qū)域的缺點(diǎn)。Faster-RCNN 提出了重要的RPN 結(jié)構(gòu),并將其用來(lái)替換傳統(tǒng)感興趣區(qū)域生成的部分。RPN 是一個(gè)全卷積網(wǎng)絡(luò),使用不同長(zhǎng)寬比例的Anchor 在特征圖上滑動(dòng)并生成對(duì)應(yīng)位置的特征。得益于這種高效的特征提取方式,F(xiàn)aster-RCNN在當(dāng)時(shí)取得了良好的效果,是一項(xiàng)里程碑式的研究。YOLO(You Only Look Once)[21]與SSD(Single Shot MultiBox Detector)等著名的一階段檢測(cè)器將圖像劃分為一個(gè)個(gè)網(wǎng)格,并在每個(gè)網(wǎng)格上設(shè)置多個(gè)Anchor 用來(lái)回歸目標(biāo)的形狀和類別。經(jīng)過(guò)過(guò)去幾年大量檢測(cè)器的廣泛使用,Anchor的設(shè)計(jì)逐漸得到了普及,并且已經(jīng)成為現(xiàn)代目標(biāo)檢測(cè)的標(biāo)準(zhǔn)配置。但是,為了產(chǎn)生各種形狀的Anchor,模型需要預(yù)先定義各種不同的長(zhǎng)寬比值,同時(shí)還要額外定義IOU 閾值來(lái)確定Anchor 是正樣本還是負(fù)樣本。這會(huì)給模型帶來(lái)更多額外的參數(shù),這些參數(shù)也需要進(jìn)行啟發(fā)式的搜索并且會(huì)對(duì)最終模型的精度產(chǎn)生較大影響。
在拋棄錨框的檢測(cè)方法中,基于關(guān)鍵點(diǎn)的檢測(cè)是目前的主流方法。CornerNet 角點(diǎn)網(wǎng)絡(luò)通過(guò)回歸目標(biāo)框左上角和右下角的兩個(gè)點(diǎn)來(lái)得到對(duì)象框;Triplets 三元點(diǎn)網(wǎng)絡(luò)通過(guò)融合雙角點(diǎn)與中心點(diǎn)的優(yōu)點(diǎn)進(jìn)一步提高檢測(cè)精度;無(wú)錨框特征選擇(Feature Selective Anchor-Free,F(xiàn)SAF)網(wǎng)絡(luò)可以很方便地嵌入到具有特征金字塔網(wǎng)絡(luò)(Feature Pyramid Network,F(xiàn)PN)的檢測(cè)器中,它使用非啟發(fā)式的在線選擇方法來(lái)匹配大小合適的錨框;全卷積單步檢測(cè)(Fully Convolutional One-Stage object detection,F(xiàn)COS)網(wǎng)絡(luò)致力于消除那些高度重合的邊界框所產(chǎn)生的不良影響。
CenterNet 是一種基于中心點(diǎn)的檢測(cè)框架,它由CornerNet角點(diǎn)檢測(cè)的思想發(fā)展而來(lái)。它是一個(gè)標(biāo)準(zhǔn)的無(wú)錨框單階段目標(biāo)檢測(cè)網(wǎng)絡(luò),分為主干網(wǎng)絡(luò)部分(特征提取)和檢測(cè)頭(后處理與生成結(jié)果)兩部分。主干網(wǎng)絡(luò)部分可以使用殘差、深層聚合或者沙漏網(wǎng)絡(luò)等不同結(jié)構(gòu)。其中沙漏網(wǎng)絡(luò)的精度最高,但它的速度卻是最慢的。主干網(wǎng)絡(luò)將得到的特征圖送入檢測(cè)頭部,特征圖上的每個(gè)位置都會(huì)密集地回歸出類別、長(zhǎng)寬和偏移量。其中,類別得分值以熱力圖的形式產(chǎn)生,峰值即為物體的中心點(diǎn),如圖2 所示。通過(guò)表1 可以看出:雖然使用沙漏網(wǎng)絡(luò)的CenterNet 達(dá)到42%的平均準(zhǔn)確率(mean Average Precision,mAP)值,但是6 frame/s 的幀率對(duì)于單階段檢測(cè)器來(lái)說(shuō)還是過(guò)于緩慢。而改用深層聚合(Deep Layer Aggregation,DLA)主干網(wǎng)絡(luò)后,速度達(dá)到28 frame/s的同時(shí)mAP也大幅降低。
值得一提的是在CenterNet-DLA 中AP50(IOU 為50%以上的平均準(zhǔn)確率)指標(biāo)相較于YOLOv3[22]并沒(méi)有提升,反而降低了一些。這說(shuō)明其精度的提升并不是通過(guò)檢測(cè)出難檢目標(biāo)所得來(lái)的,而是通過(guò)精修已經(jīng)較準(zhǔn)確的檢測(cè)框所得。在實(shí)際的檢測(cè)場(chǎng)景中AP50 某種程度上扮演著比mAP 更重要的角色,主要原因是實(shí)際檢測(cè)任務(wù)中沒(méi)有必要去追求AP75 或者AP90 這種高精度指標(biāo),反而更傾向于將性能在AP50 這種中等指標(biāo)上提升。本文所提出的新結(jié)構(gòu)使CenterNet 在保持檢測(cè)速度基本不變的情況下同時(shí)提升mAP 與AP50 的值,使得CenterNet 成為相同速度下效果最好檢測(cè)器之一,可以方便地遷移到各種不同場(chǎng)景。
圖2 最終的熱力圖形式Fig.2 Final heatmap format
表1 不同方法在各個(gè)指標(biāo)上的對(duì)比Tab.1 Comparison of different methods on various indexes
本章主要介紹本文方法的原理與實(shí)現(xiàn)細(xì)節(jié),包括非對(duì)稱沙漏主干網(wǎng)絡(luò)、多尺度特征模塊、后處理過(guò)程三個(gè)部分。
圖3為無(wú)錨框目標(biāo)檢測(cè)器中常用的3種主干網(wǎng)絡(luò)模塊:殘差模塊[23]、深層聚合模塊[24]與沙漏模塊[25]。沙漏網(wǎng)絡(luò)通過(guò)捕捉多尺度特征信息與多個(gè)中間監(jiān)督的結(jié)構(gòu)來(lái)提高特征的精細(xì)度。沙漏塊是其主要組成部分,可以進(jìn)行堆疊串聯(lián)。每一個(gè)沙漏塊中包含數(shù)個(gè)連接通路,這些通路負(fù)責(zé)將沙漏兩端的特征融合。特征融合的方式是在沙漏塊兩端取出大小與通道完全相同的特征圖,再將它們按位對(duì)應(yīng)相加。這些連接通路所連接的是相對(duì)稱的特征圖,所以傳統(tǒng)沙漏網(wǎng)絡(luò)在本文也叫作對(duì)稱沙漏網(wǎng)絡(luò)。這種常規(guī)的對(duì)稱融合方式實(shí)現(xiàn)簡(jiǎn)單且順應(yīng)直覺(jué),但是卻需要使用大量的計(jì)算資源,并且會(huì)產(chǎn)生不同尺度特征互相干擾的問(wèn)題,這使沙漏網(wǎng)絡(luò)成為強(qiáng)力但臃腫的主干網(wǎng)絡(luò)。本文所提出的非對(duì)稱沙漏網(wǎng)絡(luò)使用了殘差網(wǎng)絡(luò)中的殘差跳級(jí)結(jié)構(gòu),解除了對(duì)稱沙漏網(wǎng)絡(luò)對(duì)應(yīng)連接的限制并減小了整個(gè)網(wǎng)絡(luò)的體量,加快網(wǎng)絡(luò)速度的同時(shí)保證了網(wǎng)絡(luò)的精度。
圖3 三種不同的主干網(wǎng)絡(luò)Fig.3 Three different backbone networks
2.1.1 非對(duì)稱沙漏結(jié)構(gòu)
在深度學(xué)習(xí)的領(lǐng)域中,各種不同結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)實(shí)際上都在做特征抽取的工作,而決定網(wǎng)絡(luò)性能的主要因素就是特征的好壞。一般來(lái)說(shuō),網(wǎng)絡(luò)越深,其抽取的特征就越抽象,而抽象特征的表達(dá)能力更強(qiáng),對(duì)于分類和檢測(cè)任務(wù)更有幫助。根據(jù)前文的介紹,對(duì)稱沙漏網(wǎng)絡(luò)受制于自身融合方式的限制,一般使用維度相同的特征進(jìn)行融合。
如圖4 所示,本文的非對(duì)稱沙漏結(jié)構(gòu)沿用了沙漏網(wǎng)絡(luò)的基本結(jié)構(gòu)形式,即先將特征圖抽象縮小以增強(qiáng)表達(dá)能力,再融合放大以得到物體更精確的坐標(biāo)信息。通過(guò)分析沙漏網(wǎng)絡(luò)的結(jié)構(gòu),本文研究發(fā)現(xiàn)它的大部分計(jì)算資源消耗來(lái)自于疊加定義的沙漏塊與對(duì)稱結(jié)構(gòu)設(shè)計(jì)。為了設(shè)計(jì)非對(duì)稱沙漏結(jié)構(gòu),本文做了如下工作:首先,相較于原始沙漏網(wǎng)絡(luò)多個(gè)沙漏塊疊加的設(shè)計(jì),本文只使用了一個(gè)沙漏塊作為主干網(wǎng)絡(luò),如圖4 所示。其次,為了提高網(wǎng)絡(luò)的運(yùn)行速度,本文方法在網(wǎng)絡(luò)前半部分(特征抽象部分)使用了更加輕量化的主干網(wǎng)絡(luò),同時(shí)縮小了網(wǎng)絡(luò)后半部分(融合放大部分)的尺寸,并且在兩部分之間也相應(yīng)地減少了連接通路。為了彌補(bǔ)大量減少參數(shù)的代價(jià),本文算法選擇融合語(yǔ)義性更強(qiáng)的后層特征來(lái)接入上采樣步驟,防止淺層的細(xì)節(jié)信息破壞后層的抽象特征。這是非對(duì)稱結(jié)構(gòu)的第一個(gè)特點(diǎn),特征圖在融合時(shí)分辨率是不相同的。
圖4 不同主干網(wǎng)絡(luò)對(duì)比Fig.4 Comparison of different backbone networks
原始沙漏網(wǎng)絡(luò)的融合通過(guò)式(1)來(lái)實(shí)現(xiàn),m與n分別是融合前的特征層,n+1 為融合后生成的特征圖。式(2)是非對(duì)稱沙漏網(wǎng)絡(luò)的融合方式。
其中:“up”代表上采樣操作;“+”代表對(duì)應(yīng)位直接相加;“⊕”為通道拼接(concatenate)操作??梢钥闯觯既诤戏绞街苯釉谂cm相對(duì)稱的n層上操作,而本文算法選擇后續(xù)的n+1層,即更抽象特征進(jìn)行融合。
在神經(jīng)網(wǎng)絡(luò)所提取的特征中,不同的通道一般代表不同的信息,比如:有些通道對(duì)橫向線條敏感,有些通道對(duì)縱向線條敏感,還有些通道對(duì)環(huán)形比較敏感。沙漏網(wǎng)絡(luò)中融合操作是式(1)中的按位相加操作,而相加操作要求對(duì)應(yīng)特征的通道嚴(yán)格相同,并且會(huì)破壞通道原本的信息。相比之下,式(2)中的拼接無(wú)疑是更加科學(xué)的融合方法,它不僅沒(méi)有通道的限制,也不是簡(jiǎn)單的算術(shù)操作,每個(gè)通道權(quán)重大小的取舍均交給卷積核自身學(xué)習(xí)。這是非對(duì)稱結(jié)構(gòu)的第二個(gè)特點(diǎn),不同層的特征在融合時(shí)通道數(shù)是不相同的。
2.1.2 整體網(wǎng)絡(luò)結(jié)構(gòu)細(xì)節(jié)
本文算法受Darknet53 網(wǎng)絡(luò)結(jié)構(gòu)的啟發(fā)搭建了非對(duì)稱沙漏網(wǎng)絡(luò)的主干部分(Backbone)。該主干網(wǎng)絡(luò)的基本單元為卷積層、批量歸一化層[26]與leaky relu 函數(shù)激活層,其具體流程如下:首先輸入長(zhǎng)寬為h×w大小的圖片,經(jīng)過(guò)多個(gè)殘差塊結(jié)構(gòu)提取特征,并且穿插步長(zhǎng)為2 的卷積進(jìn)行下采樣操作,同時(shí)將通道數(shù)加倍,最終得到原圖1/32 大小的特征圖。本文沒(méi)有使用常見(jiàn)的池化,轉(zhuǎn)而使用步長(zhǎng)為2 的卷積來(lái)進(jìn)行下采樣操作,這是因?yàn)楹?jiǎn)單的池化會(huì)丟失大量特征信息,而這些信息對(duì)于非對(duì)稱沙漏結(jié)構(gòu)來(lái)說(shuō)是有用的。在考慮了參數(shù)量與特征抽象程度之后,本文最終選取主干網(wǎng)絡(luò)中下采樣倍率分別為1/8、1/16 時(shí)的特征圖(即圖中C1、C2 的特征圖),并將其輸入到非對(duì)稱沙漏網(wǎng)絡(luò)的后半部分(特征強(qiáng)化結(jié)構(gòu))進(jìn)行上采樣與融合操作。最后,得到輸出熱力圖并將其解碼為最終類別與框坐標(biāo)等結(jié)果。
特征強(qiáng)化模塊(Feature Boost)包括兩部分:非對(duì)稱融合與檢測(cè)頭部。如圖5 所示,非對(duì)稱融合部分使用非對(duì)稱結(jié)構(gòu)將C1 特征圖與C2 按照2.1.1 節(jié)中介紹的方法拼接到一起。實(shí)驗(yàn)結(jié)果顯示,雖然本文算法使用非對(duì)稱結(jié)構(gòu)提取到了更加抽象的特征,但是這些特征對(duì)于檢測(cè)極小物體來(lái)說(shuō)分辨率依然較低,直接在該特征上進(jìn)行目標(biāo)預(yù)測(cè)并不能得到充分的效果。為了更好地適配這些特征,本文算法在檢測(cè)頭部將特征圖又進(jìn)行了一次上采樣操作,即使用步長(zhǎng)為2 的轉(zhuǎn)置卷積與可形變卷積(Deformable Convolutional Network,DCN)[27-28],提高特征圖分辨率的同時(shí)加強(qiáng)網(wǎng)絡(luò)對(duì)不同形狀物體的表達(dá)能力。最后,在原圖1/4大小的特征圖上得到最終檢測(cè)結(jié)果。具體細(xì)節(jié)如圖6所示(以輸入圖片512×512計(jì)算)。
圖5 特征強(qiáng)化模塊的非對(duì)稱融合部分Fig.5 Asymmetric fusion part of feature boost module
目標(biāo)尺度間互相干擾的問(wèn)題是基于深度學(xué)習(xí)目標(biāo)檢測(cè)領(lǐng)域的一大挑戰(zhàn)。對(duì)于同一張圖片中的同一類別物體來(lái)說(shuō),大尺寸與小尺寸的目標(biāo)所呈現(xiàn)的特征在神經(jīng)網(wǎng)絡(luò)看來(lái)可能完全不同。檢測(cè)圖片不同尺度特征的思想最初是由He 等[29]在空間金字塔池化網(wǎng)絡(luò)(Spatial Pyramid Pooling Net,SPPNet)中所提出,通過(guò)池化金字塔將特征的每一層都做一次池化操作,這種方法變相地起到了多尺度訓(xùn)練的作用。將多尺度特征發(fā)揚(yáng)光大的是Lin等[30]提出的FPN網(wǎng)絡(luò)。FPN通過(guò)其自底向上、自頂向下以及橫向鏈接將不同尺度的特征圖高效地結(jié)合起來(lái)。它在沒(méi)有大量增加網(wǎng)絡(luò)參數(shù)的情況下大幅提高檢測(cè)精度,已經(jīng)成為大部分現(xiàn)代目標(biāo)檢測(cè)器的常用配置。
圖6 檢測(cè)頭部結(jié)構(gòu)Fig.6 Structure of detection head
大多數(shù)無(wú)錨框目標(biāo)檢測(cè)框架因?yàn)槠渲鞲删W(wǎng)絡(luò)選擇的局限并沒(méi)有加入多尺度設(shè)計(jì),它們只在單一尺度上進(jìn)行結(jié)果的預(yù)測(cè)。這種做法存在下面兩個(gè)問(wèn)題:首先,單一通路會(huì)使網(wǎng)絡(luò)中不同尺度的目標(biāo)互相干擾。其次,由于缺少了Anchor 的限制,每個(gè)中心點(diǎn)以及長(zhǎng)寬值都要靠一組任意大小的數(shù)字來(lái)進(jìn)行回歸。過(guò)大的回歸范圍會(huì)使模型產(chǎn)生的預(yù)測(cè)框?qū)τ跇O端目標(biāo)來(lái)說(shuō)不太準(zhǔn)確。本文新建多尺度通路的方法相當(dāng)于提前分離了大目標(biāo)的特征,既防止它影響后續(xù)的小目標(biāo)識(shí)別,也使其不被小目標(biāo)特征所影響。這種方法還隱式地限制了預(yù)測(cè)框的大小,讓不同通路負(fù)責(zé)預(yù)測(cè)不同尺度的目標(biāo),使極端目標(biāo)的預(yù)測(cè)更加準(zhǔn)確。
如圖7所示,本文算法從2.1.2節(jié)中介紹的特征強(qiáng)化模塊中引出兩個(gè)分支。這兩個(gè)分支位于主干網(wǎng)絡(luò)上融合之后的C1 和C2 通路,再將它們分別送入檢測(cè)頭部得到最終熱力圖。當(dāng)運(yùn)行到C1、C2 處時(shí),網(wǎng)絡(luò)會(huì)將當(dāng)前已經(jīng)識(shí)別出的大中目標(biāo)送入其對(duì)應(yīng)的檢測(cè)頭部,使后續(xù)的識(shí)別不會(huì)受到干擾。相較以前的單分支輸出來(lái)說(shuō),網(wǎng)絡(luò)的每個(gè)分支預(yù)測(cè)與自身相適應(yīng)大小的目標(biāo),讓同一個(gè)分支中物體長(zhǎng)寬分布在相近范圍內(nèi),這種操作使長(zhǎng)寬值的回歸更加合理。目標(biāo)的分配如圖7 所示,最大的特征圖被分配小目標(biāo),最小的特征圖被分配大目標(biāo)。
對(duì)于三個(gè)不同尺度通路來(lái)說(shuō),不同的真實(shí)框分配也需要合理分配,具體細(xì)節(jié)在實(shí)驗(yàn)結(jié)果分析中討論。
圖7 多尺度結(jié)構(gòu)與目標(biāo)框的分配Fig.7 Multi-scale structure and object box allocation
非極大值抑制(NMS)[31]是一種去除非極大值的算法,常用于計(jì)算機(jī)視覺(jué)中的邊緣檢測(cè)、目標(biāo)檢測(cè)等任務(wù)。無(wú)錨框目標(biāo)檢測(cè)雖然沒(méi)有顯式地使用這一通用后處理方法,但它在生成熱力圖時(shí)也有隱式的類NMS 方法:在最終熱力圖上的每類通道取有效點(diǎn)時(shí)只取當(dāng)前點(diǎn)比周圍8 個(gè)點(diǎn)的置信度都高的點(diǎn),這種操作相當(dāng)于在生成候選框之前就已經(jīng)去除了冗余的目標(biāo)。在2.2 節(jié)中多尺度通路預(yù)測(cè)的基礎(chǔ)上,本文方法為了解決同一個(gè)目標(biāo)有可能同時(shí)出現(xiàn)在相鄰尺度的預(yù)測(cè)圖上的問(wèn)題,在不同尺度生成的結(jié)果框之間使用了改進(jìn)的非極大值抑制算法。原始的非極大值抑制算法存在將相距非常近的兩個(gè)同類別目標(biāo)框中的一個(gè)強(qiáng)行刪除的不足,而改進(jìn)后的算法不會(huì)將其強(qiáng)行刪除,僅僅只會(huì)降低它的置信度。偽代碼如算法1所示。
算法1 改進(jìn)后的非極大值抑制算法。
其中函數(shù)f采用高斯加權(quán)方法,如下所示:
總的來(lái)說(shuō),多尺度通路在訓(xùn)練時(shí)真實(shí)框的分配互有少量重疊。所以為了將相鄰尺度上的相同框抑制,三個(gè)尺度上的預(yù)測(cè)框需要合并后一起執(zhí)行NMS 操作。這可以進(jìn)一步提高檢測(cè)的精度,具體數(shù)值將在實(shí)驗(yàn)結(jié)果分析中討論。
本文使用的數(shù)據(jù)集為VOC 與COCO(Common Objects in COntext)兩種,默認(rèn)使用翻轉(zhuǎn)、裁剪、對(duì)比度變換等通用的數(shù)據(jù)增強(qiáng)方法。訓(xùn)練平臺(tái)為Pytorch,在Ubuntu 系統(tǒng)上使用1~2塊GTX-2080TI 顯卡進(jìn)行訓(xùn)練。長(zhǎng)寬與偏移采用L1 損失函數(shù),類別使用均方差損失函數(shù),采用Adam 優(yōu)化器,其他超參數(shù)的設(shè)置與CenterNet中相同。
PASCAL VOC[32]是圖像識(shí)別和分類方向的一整套標(biāo)準(zhǔn)化優(yōu)秀的數(shù)據(jù)集,從2005年到2012年每年都會(huì)舉行一場(chǎng)圖像識(shí)別競(jìng)賽。該競(jìng)賽主要包括三類任務(wù):分類(classification)、檢測(cè)(detection)和分割(segmentation)。在檢測(cè)挑戰(zhàn)中,這是一個(gè)監(jiān)督學(xué)習(xí)的問(wèn)題,訓(xùn)練集以帶標(biāo)簽的圖片的形式給出。PASCAL VOC 2007 和2012 數(shù)據(jù)集一共有20 類,本文使用07+12 訓(xùn)練方法:在VOC2007 與VOC2012 的train 和val 集(共16 551張)上訓(xùn)練100個(gè)epoch,學(xué)習(xí)率初始為0.012 5,分別在第60 個(gè)和第90 個(gè)epoch 將學(xué)習(xí)率下降為原來(lái)的1/10。使用VOC 2007的test(4 952張)進(jìn)行測(cè)試。
MS COCO(Microsoft COCO)起源于微軟于2014 年出資標(biāo)注的Microsoft COCO 數(shù)據(jù)集[33],與ImageNet 競(jìng)賽一樣,被視為計(jì)算機(jī)視覺(jué)領(lǐng)域最受關(guān)注和最權(quán)威的比賽之一。COCO 數(shù)據(jù)集是一個(gè)大型的、豐富的物體檢測(cè)、分割和字幕數(shù)據(jù)集。這個(gè)數(shù)據(jù)集中的檢測(cè)任務(wù)包括80 類目標(biāo),328 000 張圖片和2 500 000 個(gè)label,其中物體的數(shù)目超過(guò)150 萬(wàn)個(gè)。在ImageNet 競(jìng)賽停辦后,COCO 競(jìng)賽也就成為當(dāng)前目標(biāo)識(shí)別、檢測(cè)等領(lǐng)域的一個(gè)最權(quán)威、最重要的標(biāo)桿,也是目前該領(lǐng)域在國(guó)際上唯一能匯集Google、微軟、Facebook,以及國(guó)內(nèi)外眾多頂尖院校和優(yōu)秀創(chuàng)新企業(yè)共同參與的大賽。本文方法在COCO 2017 的train(110×103)上進(jìn)行訓(xùn)練,在minival(5×103)上進(jìn)行測(cè)試。初始學(xué)習(xí)率設(shè)置為0.012 5,訓(xùn)練120 個(gè)epoch,學(xué)習(xí)率在第60和110個(gè)epoch分別下降為原來(lái)的1/10。
在本文的無(wú)錨框檢測(cè)方案中,標(biāo)簽不是傳統(tǒng)目標(biāo)檢測(cè)中bbox 的四個(gè)值與類別這五元組的形式,而是將目標(biāo)的中心點(diǎn)使用高斯分布繪制在與輸出熱力圖同樣大小的矩陣中。以本文的方法為例,設(shè)真實(shí)框左上角點(diǎn)為(x1,y1)、下角點(diǎn)為(x2,y2)。對(duì)于某一類C,它的中心點(diǎn)為:
然后利用k∈[0,1]來(lái)填入新特征圖中的類別C的通道上,所用方法為一個(gè)高斯核的分布的形式:
注意每個(gè)類別C單獨(dú)使用一個(gè)通道,如果同類別中的高斯分布產(chǎn)生了重疊,則取最大值。其中px與py分別是中心p的橫縱坐標(biāo),σp是一個(gè)與物體長(zhǎng)寬相關(guān)的標(biāo)準(zhǔn)差。
對(duì)于2.2 節(jié)中的多尺度特征預(yù)測(cè)來(lái)說(shuō),不同尺度的特征圖需要與不同大小的真實(shí)框?qū)?yīng),其大小對(duì)應(yīng)如下:
其中:wo、ho分別為輸出特征圖的寬和高;wi、hi為輸入特征圖的寬和高;d為不同層的下采樣倍率,需要設(shè)定后調(diào)整。對(duì)于具體數(shù)據(jù)來(lái)說(shuō),具體的操作可能不同。在小尺度中,本文僅僅添加小尺度的真實(shí)目標(biāo),即(0,1002)像素;在中尺度中,采用(502,2002)適應(yīng)的目標(biāo);最后的大尺度負(fù)責(zé)最大的部分真實(shí)目標(biāo)(1502,+∞)。
中心點(diǎn)類別預(yù)測(cè)損失函數(shù)使用的是式(7)所示Focal Loss[34]的改版:
其中,α和β都是損失函數(shù)Focal Loss 的超參數(shù),均用來(lái)平衡正負(fù)樣本的重要性,在實(shí)驗(yàn)中本文方法與基準(zhǔn)線(Baseline)設(shè)置為相同值,分別是2和4。
所有類C的中心點(diǎn)共享一個(gè)偏置的預(yù)測(cè),中心點(diǎn)的偏置損失如下,采用L1 loss形式:
其中:p和分別為真實(shí)中心點(diǎn)與預(yù)測(cè)中心點(diǎn);R為原圖下采樣倍數(shù),在本文中分別為4、8和16;為預(yù)測(cè)中心偏置值。
目標(biāo)長(zhǎng)寬損失與偏置損失一樣,采用L1 loss 直接對(duì)長(zhǎng)寬的原始像素值進(jìn)行回歸。
長(zhǎng)寬損失所得的損失值相較類別與偏置過(guò)大,最后將3類損失值相加時(shí)給予其較低的權(quán)重以平衡最后的總損失值。
本文在各表中給出VOC 數(shù)據(jù)集平均準(zhǔn)確度(mean Average Precision,mAP)結(jié)果,COCO 數(shù)據(jù)集mAP,AP50(IOU在50%以上的AP 值),AP75(IOU 在75%以上的AP 值),還有APs(Average Precision small)、APm(Average Precision medium)、APl(Average Precision large),分別為小目標(biāo)、中目標(biāo)、大目標(biāo)的AP值,以及運(yùn)行速度(幀率)等實(shí)驗(yàn)結(jié)果。
本文在VOC 數(shù)據(jù)集中嘗試了多尺度檢測(cè)下不同的真實(shí)框分配方案,分別是:1)三個(gè)尺度均訓(xùn)練所有真實(shí)框;2)按照COCO 對(duì)大中小物體標(biāo)準(zhǔn)劃分;3)向下兼容式劃分;4)按照不同數(shù)據(jù)集自身比例重疊劃分。如表2 所示,本文對(duì)比了這幾種劃分方式下的準(zhǔn)確率,其中達(dá)到最好效果的是4)重疊劃分尺度范圍的方法,其原因是各分支不能單獨(dú)只學(xué)習(xí)當(dāng)前大小范圍的目標(biāo),其他目標(biāo)也有一般性的抽象特征,但是也不能完全學(xué)習(xí)所有大小的目標(biāo)特征,這會(huì)使網(wǎng)絡(luò)區(qū)分不出其中的區(qū)別,所以折中的方案具有較好的效果。
表2 不同目標(biāo)尺度方案的對(duì)比Tab.2 Comparison of different object scale schemes
本文還在測(cè)試集上統(tǒng)計(jì)了各個(gè)尺度分別負(fù)責(zé)的目標(biāo)數(shù)量,結(jié)果如圖8 所示。可以看到,小尺度分支主要檢測(cè)的是小目標(biāo),中尺度和大尺度也與所檢測(cè)目標(biāo)基本相符,這與本文不同分支負(fù)責(zé)各自尺度目標(biāo)的想法相一致。
圖8 各個(gè)尺度檢測(cè)出的目標(biāo)分布Fig.8 Object distribution detected at different scales
為了驗(yàn)證本文方法在相同條件下仍然具有優(yōu)勢(shì),表3 給出了采用與YOLOv3同輸出尺度情況下的實(shí)驗(yàn)結(jié)果,即3個(gè)輸出分別為8、16、32 倍下采樣時(shí)在VOC 數(shù)據(jù)集上的詳細(xì)結(jié)果。本文方法的最終輸出為4、8、16倍下采樣的結(jié)果。表3結(jié)果表明本文方法增大了最終特征圖大小并保持最大特征圖與中心點(diǎn)網(wǎng)絡(luò)相同的操作是有作用的。
表3 所提方法與YOLOv3對(duì)比Tab.3 Comparison of proposed method with YOLOv3
表4 給出了所提方法與原始沙漏網(wǎng)絡(luò)的結(jié)果對(duì)比。表4結(jié)果表明了本文的非對(duì)稱沙漏網(wǎng)絡(luò)的性能優(yōu)于原始的沙漏網(wǎng)絡(luò)。本文實(shí)驗(yàn)將CenterNet 原文中的沙漏網(wǎng)絡(luò)改為與本文方法相似的單階形態(tài),在VOC 數(shù)據(jù)集上驗(yàn)證其結(jié)果。這表明即使沙漏網(wǎng)絡(luò)在速度較快的單階設(shè)置下,依然與本文方法存在差距,驗(yàn)證了本文方法在速度與精度平衡上的效果。
表4 所提方法與原始沙漏網(wǎng)絡(luò)對(duì)比Tab.4 Comparison of proposed method with original hourglass network
表5 詳細(xì)列出了無(wú)錨框檢測(cè)Baseline 與本文方法在PASCAL VOC 數(shù)據(jù)集上的性能與速度對(duì)比。幀率值取在當(dāng)前平臺(tái)(Xeno-E5+GTX-2080Ti)上的數(shù)據(jù)??梢钥吹?,在保持速度基本不變的情況下,本文所提出的非對(duì)稱沙漏模塊(FB)、更精細(xì)后處理(PP)、多尺度感知(MS)三個(gè)部分均是有效的,其中非對(duì)稱沙漏部分為主要貢獻(xiàn)。各結(jié)果均不同程度超越原始方法。
表5 VOC數(shù)據(jù)集上各部分貢獻(xiàn)度對(duì)比Tab.5 Comparison of contribution of different parts on VOC dataset
表6 為VOC 數(shù)據(jù)集上不同方法的性能,本文方法不僅在速度方面大幅提升,而且總體精確度相較CenterNet-DLA提高了1.7個(gè)百分點(diǎn)。
表6 VOC數(shù)據(jù)集上不同方法的性能Tab.6 Performance of different methods on VOC dataset
表7給出了在COCO數(shù)據(jù)集中各詳細(xì)的實(shí)驗(yàn)數(shù)據(jù)。其中,mAP 是關(guān)注的主要指標(biāo),代表從AP50 到AP95 每隔5 所取的AP 值的平均數(shù)。AP50 與AP75 代表預(yù)測(cè)框與真實(shí)框的IOU在50%與75%以上的AP 值。APs、APm、APl分別代表物體尺寸比322小、在322與962之間、比962大這三種不同區(qū)間的AP值。可以看到,本文方法在幾乎沒(méi)有犧牲大量速度的情況下將mAP 提高了1.5 個(gè)百分點(diǎn),同時(shí)將AP50 提高了4.2 個(gè)百分點(diǎn),使實(shí)時(shí)的單階段檢測(cè)器AP50 值邁入60%大關(guān),這對(duì)于實(shí)際工程應(yīng)用來(lái)說(shuō)無(wú)疑是一個(gè)好消息。
表8 給出了與當(dāng)前主流方法對(duì)比的結(jié)果,其中幀率已經(jīng)等比例歸一化到相同硬件環(huán)境。值得注意的是,在與RetinaNet 的對(duì)比中,本文研究對(duì)準(zhǔn)確率的主要貢獻(xiàn)集中在大中目標(biāo)上。這也與本文將大中目標(biāo)解耦到其他分支使其不被干擾的思想相符合,這種分離操作大大提高了對(duì)應(yīng)目標(biāo)的準(zhǔn)確率??偟膩?lái)說(shuō),可以看出本文的方法在相似速度的單階段檢測(cè)器中達(dá)到了較優(yōu)的結(jié)果。
表7 COCO數(shù)據(jù)集上各部分貢獻(xiàn)度對(duì)比Tab.7 Comparison of contribution of different parts on COCO dataset
表8 COCO數(shù)據(jù)集上所提方法與當(dāng)前主流方法的對(duì)比Tab.8 Comparison of proposed method with existing mainstream methods
本文在常規(guī)無(wú)錨框單階段目標(biāo)檢測(cè)器的基礎(chǔ)上,提出了非對(duì)稱沙漏模塊以增強(qiáng)主干網(wǎng)絡(luò)所提取特征的表達(dá)能力,使用尺度感知的多尺度訓(xùn)練方式將不同大小的目標(biāo)解耦在不同的特征層,最后使用改進(jìn)的非極大值抑制融合三個(gè)尺度的檢測(cè)結(jié)果。在目標(biāo)檢測(cè)最常用的兩個(gè)數(shù)據(jù)集VOC與COCO上的實(shí)驗(yàn)結(jié)果顯示,相較無(wú)錨框檢測(cè)Baseline,本文方法將mAP 提高了1.5 個(gè)百分點(diǎn),特別是在對(duì)工業(yè)實(shí)時(shí)檢測(cè)最看重的AP50結(jié)果上提高了4.2 個(gè)百分點(diǎn),驗(yàn)證了本文方法的有效性。但是由于不同大小目標(biāo)分布的多樣性以及融合方法的限制,本文方法的結(jié)果仍有提高的空間,可以考慮在尺度感知模塊中針對(duì)不同尺度專門設(shè)計(jì)與尺度相適應(yīng)的卷積核等網(wǎng)絡(luò)結(jié)構(gòu),以及在特征強(qiáng)化過(guò)程中選用更加適合的特征融合方式等方法。未來(lái)將會(huì)在以上兩個(gè)方面進(jìn)行更深入的探索。