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