侯志強 郭 浩* 馬素剛 程環(huán)環(huán) 白 玉 范九倫
①(西安郵電大學(xué)計算機學(xué)院 西安 710121)
②(陜西省網(wǎng)絡(luò)數(shù)據(jù)分析與智能處理重點實驗室 西安 710121)
目標(biāo)檢測作為計算機視覺領(lǐng)域中的重要研究方向,一直以來都是人們關(guān)注的熱點,在安防監(jiān)控、車輛駕駛、軍事領(lǐng)域等都有重要的應(yīng)用[1]。
根據(jù)是否使用深度學(xué)習(xí)網(wǎng)絡(luò),可以將目標(biāo)檢測分為傳統(tǒng)的目標(biāo)檢測算法和基于深度學(xué)習(xí)的目標(biāo)檢測算法。傳統(tǒng)的目標(biāo)檢測算法通常利用方向梯度直方圖特征(Histogram of Oriented Gradient,HOG)或尺度不變特征變換(Scale Invariant Feature Transform, SIFT)來識別目標(biāo),但均存在著處理數(shù)據(jù)量大、實時性不高等缺點。在基于深度學(xué)習(xí)的目標(biāo)檢測算法中,雙階段算法Faster R-CNN(Regions with Convolution Neural Network features)[2]引入Anchor概念,即以待檢測位置為中心,指定的大小和高寬比所構(gòu)成的錨框,從而生成大量區(qū)域建議框來進行訓(xùn)練。單階段算法YOLOv3(You Only Look Once version 3), SSD(Single Shot multibox Detector)[3]均采用了錨點框來確保與目標(biāo)有更大的重疊率,提高檢測精度。但是大量的錨點框中只有少部分能和真實的標(biāo)簽框重疊,造成正負(fù)樣本不均衡,從而減緩了訓(xùn)練過程。其次,訓(xùn)練過程中存在復(fù)雜的超參數(shù)設(shè)計,如框的數(shù)量、大小和寬高比。
為了解決上述問題,Anchor-free的無錨框目標(biāo)檢測算法逐漸興起。CornerNet[4]算法去除了錨點框的使用,將目標(biāo)檢測轉(zhuǎn)化為2個關(guān)鍵點匹配的問題,ExtremeNet[5]算法利用了上下左右4個極值點和1個中心點來確定目標(biāo),F(xiàn)COS(Fully Convolutional One Stage)[6]算法引入圖像分割的思想,針對每個像素都進行預(yù)測,得到該像素到檢測框的4個邊框的距離,最終輸出整體目標(biāo)的檢測框,但以上算法的運行速度均不夠理想。
在無錨框檢測方法中,CenterNet[7]算法將每個目標(biāo)視為1個中心點,通過網(wǎng)絡(luò)預(yù)測每個中心點的位置,然后直接回歸出目標(biāo)的寬高和具體類別。算法的思想簡潔明了,結(jié)構(gòu)清晰,無需非極大值抑制操作,在速度上有了保證。但該算法在使用Res-Net作為主干網(wǎng)絡(luò)時,只利用其最后1層特征進行處理,而特征在32倍下采樣后,許多原圖中本來占有較小空間的目標(biāo)將會在特征圖上消失,從而造成目標(biāo)的漏檢。
針對此問題,本文基于CenterNet,提出一種雙分支特征融合的無錨框目標(biāo)檢測算法 (Center-Net with Double Branch feature fusion, DB-CenterNet),算法對編碼網(wǎng)絡(luò)和解碼網(wǎng)絡(luò)均有不同的設(shè)計。首先,對編碼網(wǎng)絡(luò)中的主干網(wǎng)絡(luò)添加基于DCT頻率域的通道注意力機制來增強特征提取能力;其次,對解碼網(wǎng)絡(luò)的整體結(jié)構(gòu)進行重構(gòu),利用特征金字塔增強模塊和特征融合模塊搭建新的網(wǎng)絡(luò)分支,將主干網(wǎng)絡(luò)中的4層特征進行多次上采樣和下采樣處理,更好地利用淺層特征的空間信息和深層特征的語義信息,從而達到更優(yōu)的檢測效果。實驗表明,本文算法在PASCAL VOC和KITTI數(shù)據(jù)集上的檢測精度較原算法分別提升3.6%和6%,同時檢測速度滿足實時性要求。
如圖1所示,基于ResNet的CenterNet算法由編碼網(wǎng)絡(luò)、解碼網(wǎng)絡(luò)和檢測頭3個部分構(gòu)成。編碼網(wǎng)絡(luò)提取圖像特征,而解碼網(wǎng)絡(luò)對提取到的特征進行多次上采樣處理,再將其輸入檢測頭預(yù)測中心關(guān)鍵點的熱力圖、目標(biāo)框的寬和高以及中心點的偏移量。
圖1 CenterNet算法結(jié)構(gòu)圖
定義圖像I∈RW×H×3,W表示圖像的寬,H表示圖像的高。算法利用真實標(biāo)簽框的中心點來表示目標(biāo)信息,并將此中心關(guān)鍵點用于網(wǎng)絡(luò)訓(xùn)練。真實的中心關(guān)鍵點p先進行下采樣并取整,下采樣后的坐標(biāo)為p?=p/R,再將所有下采樣后的中心關(guān)鍵點利用高斯核的形式分布到特征圖上,其中R表示下采樣倍數(shù)并取為4,C表示關(guān)鍵點的類型數(shù),在本文中當(dāng)作目標(biāo)的類別數(shù),高斯核為
特征金字塔融合系列模塊如PANet(Path Aggregation Network), ASFF(Adaptively Spatial Feature Fusion)和BiFPN(Bidirectional Feature Pyramid Network)等,由于過多的融合次數(shù)和計算方式會產(chǎn)生大量的參數(shù),從而明顯地降低算法的速度。受文本檢測領(lǐng)域中像素聚合網(wǎng)絡(luò)[8]的啟發(fā),引入特征金字塔增強模塊(Feature Pyramid Enhancement Module, FPEM)和特征融合模塊(Feature Fusion Module,FFM)來構(gòu)建輕量級的特征處理分支,具體如圖2、圖3所示。
圖2 特征金字塔增強模塊FPEM
圖3 特征融合模塊FFM
深度可分離卷積[9]所產(chǎn)生的參數(shù)總量與普通卷積之比為
FFM的輸入為兩組特征,第1種是由主干網(wǎng)絡(luò)的4層特征經(jīng)過1次FPEM后構(gòu)成的特征組,第2種是將增強后的特征組再經(jīng)過若干個FPEM的特征組。FFM將這特征組中大小相同的子特征圖對應(yīng)元素相加,再將相加后的特征上采樣到同樣大小,最后進行通道拼接。
在眾多的通道注意力模塊中,如C B A M(Convolutional Block Attention Module), SENet(Squeeze and Excitation Network),通常使用全局平均池化(Global Average Pooling, GAP)來獲得每一個通道的全局信息。然而通道總體的平均值信息不足以代表每個單獨通道的個體性,會損失豐富的局部信息,導(dǎo)致特征缺乏多樣性。
針對上述問題,本文在ResNet中引入頻率通道注意力網(wǎng)絡(luò)FcaNet[10]來提取通道中不同的局部信息。FcaNet從頻率角度出發(fā),證明出GAP僅等價于離散余弦變換(Discrete Cosine Transform,DCT)的最低頻率分量,而僅僅使用此分量表達的特征信息明顯不足。因此,F(xiàn)caNet采用2維的DCT來融合多個頻率分量,對重要信息進行加權(quán)并抑制背景信息。
首先,把圖像的特征分為n等份,通道數(shù)為C′,每份特征經(jīng)過2維DCT變換輸出頻率特征,f2d ∈RH×W表示2維DCT頻率的頻譜,x2d ∈RH×W表示特征圖輸入,H為特征圖的高,W為特征圖的寬,2維DCT變換和逆2維DCT變換公式為
圖4 基于DCT頻率域的通道注意力機制
本文算法結(jié)構(gòu)分為主干編碼網(wǎng)絡(luò)、解碼網(wǎng)絡(luò)和檢測頭共3個部分。編碼網(wǎng)絡(luò)采用ResNet-101作為主干,利用基于DCT頻率域的通道注意力機制FcaNet引入更多頻率分量,從而引入更多的特征信息,以增加網(wǎng)絡(luò)提取到特征的豐富性,解碼網(wǎng)絡(luò)由多特征融合分支和上采樣分支構(gòu)成。
圖5 通道削減模塊RCM結(jié)構(gòu)圖
圖6 DB-CenterNet算法結(jié)構(gòu)圖
實驗環(huán)境:操作系統(tǒng)為Ubuntu 16.04,CPU為i5-8400,GPU為單張NVIDIA TITAN Xp,深度學(xué)習(xí)框架為PyTorch 1.1.0,CUDA 版本為10.0。
數(shù)據(jù)集:本文采用了兩種數(shù)據(jù)集,第1種為公開基準(zhǔn)數(shù)據(jù)集PASCAL VOC 2007和PASCAL VOC 2012的組合,包含訓(xùn)練圖像16551張,測試圖像4952張,目標(biāo)類別數(shù)為20。第2種為目前國際上最大的自動駕駛場景下的計算機視覺算法評測數(shù)據(jù)集KITTI,其擁有7481張圖片,本文將其分為訓(xùn)練集5984張,測試集1497張,目標(biāo)類別數(shù)為3。
訓(xùn)練細節(jié):初始學(xué)習(xí)率取0.000125,采用SGD優(yōu)化器,利用FcaNet在ImageNet上預(yù)訓(xùn)練模型初始化主干網(wǎng)絡(luò)參數(shù)。在前2個Epoch中采用線性學(xué)習(xí)率預(yù)熱,在第90 Epoch和120 Epoch時分別下降為當(dāng)前學(xué)習(xí)率的1/10,訓(xùn)練150個Epoch,Batch Size設(shè)置為8。
評價指標(biāo):實驗使用的算法評價指標(biāo)是類別平均精度(mean Average Precision, mAP)和每秒幀數(shù)(frames per second, fps)。交并比IoU的閾值為0.5,當(dāng)IoU>0.5時表示檢測成功,其中mAP指的是所有單體類別精度之和的平均值,fps代表了每秒檢測圖片的數(shù)量,能夠有效反映出算法的檢測速度。
為測試不同注意力模塊對檢測性能的影響,本文做了如下實驗,具體如圖7所示。實驗結(jié)果表明,在采用FcaNet時,檢測效果較好。針對FPEM增強次數(shù)的不同,本文做了如表1所示的實驗,由于計算開銷的限制,只測試到第7次。實驗結(jié)果表明,采用特征增強5次的多特征融合分支具有較好的魯棒性,算法綜合檢測結(jié)果如表2所示,其中加粗?jǐn)?shù)據(jù)表示當(dāng)前情況下最好的結(jié)果。
表1 不同特征增強次數(shù)的消融實驗結(jié)果(%)
表2 PASCAL VOC2007和KITTI數(shù)據(jù)集的消融實驗結(jié)果(%)
圖7 不同編碼網(wǎng)絡(luò)的檢測性能
3.3.1 PASCAL VOC數(shù)據(jù)集
如圖8所示,為說明本文算法的檢測性能,將原始CenterNet檢測算法的檢測結(jié)果與本文算法進行對比,選取部分具有明顯代表性的圖片進行說明。在第1行圖中,CenterNet算法和本文算法都能檢測到目標(biāo)物體,但本文算法的目標(biāo)框位置更準(zhǔn)確,置信度分?jǐn)?shù)更高。在第2行圖中,CenterNet算法漏檢了瓶子,本文算法能夠給出較好的檢測結(jié)果。在第3行圖中,CenterNet算法將卡車誤檢為“公交車”,而且漏檢1輛車,本文算法在此給出了較好的判斷,未誤檢為“公交車”,同時檢測出小車的位置。在第3、4行圖中,本文算法都能很好地檢測出較小的目標(biāo),尤其在第4行組圖中,真實標(biāo)簽只標(biāo)記了1個大人和1個小孩,并未標(biāo)記汽車左下角位置較小的小孩,本文算法也能檢測到此目標(biāo)并給出一定的置信度分?jǐn)?shù),且總體的置信度分?jǐn)?shù)和目標(biāo)框的準(zhǔn)確度均高于原算法。
圖8 PASCAL VOC上的實驗對比結(jié)果
實驗表明本文算法在復(fù)雜場景中的漏檢率和誤檢率更低,對于小目標(biāo)有較好的檢測效果,并且在檢測同一類物體時,可以給出更高的置信度分?jǐn)?shù)。
3.3.2 KITTI數(shù)據(jù)集
檢測效果如圖9所示。在第1行圖中,本文算法均檢測到了真實標(biāo)簽中的目標(biāo)并給出了更高的置信度分?jǐn)?shù),而CenterNet算法存在漏檢情況。在第2行圖中,CenterNet算法也存在著誤檢和漏檢現(xiàn)象,將左下角的目標(biāo)檢測為“car”,而在圖片右角的車輛,本文算法給出了較好的檢測,原算法漏檢了此目標(biāo)。
圖9 KITTI上的實驗對比結(jié)果
3.4.1 PASCAL VOC數(shù)據(jù)集
(1)本文算法和主流算法在整體性能上的比較
本文算法在目前主流的目標(biāo)檢測算法中,優(yōu)勢表現(xiàn)明顯,具體結(jié)果如表3所示。在整體性能方面,本算法做到了精度和速度的較好平衡,對比于原算法,損失了較少的幀數(shù)卻得到了3.6%的精度提升,整體檢測精度達到82.3%,檢測速度達到27.6 fps,而對比于其他算法,一部分存在速度快而精度低的問題,較為典型的算法有SSD, CenterNet-ResNet-18等;一部分存在精度高而速度過慢的問題,較為明顯的算法有R-FCN, DSSD, ExtremeNet,CenterNet-Hourglass-104等。對于原算法在采用同樣層數(shù)的主干網(wǎng)絡(luò)ResNet時,mAP提高了3.6%,較原算法其他兩種主干網(wǎng)絡(luò)深度聚合網(wǎng)絡(luò)DLA-34和沙漏網(wǎng)絡(luò)Hourglass-104在精度方面分別提高了1.6%和1.4%,相比于R-FCN, SSD, YOLOv3,FCOS, ExtremeNet, CenterNet-DHRNet[11]分別提高了1.8%, 5.5%, 3%, 2.1%, 2.8%, 0.4%。
表3 PASCAL VOC2007數(shù)據(jù)集測試結(jié)果
(2)本文算法和其他算法在單類上的比較
各類具體的mAP如表4所示,結(jié)果表明本文算法在10類上能夠達到最優(yōu)水平。其中在飛機、鳥、瓶子、羊、火車、電視等多種單體類別的目標(biāo)檢測精度較其他算法都具有2%以上的優(yōu)勢,在尺度較小的“bottle”和數(shù)據(jù)量少的“plant”上,本文算法也達到了最優(yōu)。
表4 本文算法和其他算法在PASCAL VOC2007數(shù)據(jù)集上各類的檢測結(jié)果(%)
3.4.2 KITTI數(shù)據(jù)集
由表5得知,本文算法在每一類上的檢測精度均高于CenterNet算法,在車和騎自行車的人這兩類上的提升較大,分別提升7.6%和9%。本文算法的mAP較原算法提升6%,比SSD, RFBNet[12],Yolov3檢測平均精度分別高15.3%, 3.1%和0.7%,速度和精度領(lǐng)先于SqueezeDet[13], FCOS, Yolov3等算法;針對不同的主干網(wǎng)絡(luò),也體現(xiàn)出較明顯的精度優(yōu)勢。
表5 KITTI數(shù)據(jù)集上綜合的檢測結(jié)果
本文提出了一種基于雙分支特征融合的無錨框目標(biāo)檢測算法DB-CenterNet,最終在PASCAL VOC數(shù)據(jù)集和KITTI數(shù)據(jù)集上效果顯著。算法主要對于特征的融合方式以及利用方式進行改進,達到了較好的檢測效果,在實驗過程中,本文算法對于尺度更小的目標(biāo)或具有被嚴(yán)重遮擋的目標(biāo)檢測性能并不高,并且存在一定的誤檢問題,在后續(xù)的研究過程中會考慮使用更好的融合策略或目標(biāo)框回歸策略來進一步提高算法的性能。