單成之,張健
(1.武警警官學院訓練基地,廣州510440;2.武警海南總隊,海口 570203)
近些年來,隨著我國的交通運輸、水利工程、房地產等基礎設施建設的不斷發(fā)展,在各類建設施工開挖過程中,常常挖掘出一些戰(zhàn)爭時代殘留的各種不同型號、種類的廢舊手榴彈、炮彈、迫擊炮彈等未爆彈。為消除其對人民生命財產安全帶來的嚴重隱患,在對未爆彈銷毀前,需要經專業(yè)人員對其品種和危險程度逐個進行鑒別[1-3]。此外,依靠人工排除未爆彈效率較低,且危險性極大。利用排爆機器人代替人工完成這一危險性任務,成為當下的研究重點。排爆機器人通過攝像頭采集回來圖像數據進行處理,實時分析未爆彈類別及其所在位置。因此,基于人工智能算法實現(xiàn)對未爆彈的圖像檢測,使排爆機器人向自主排爆邁出關鍵一步。
未爆彈圖像目標識別主要任務是識別未爆彈的種類,同時在圖像中定位未爆彈的位置。由于應用場所和待識別目標的特殊性,在識別過程中待檢測物品外觀銹蝕嚴重和環(huán)境差異大,導致未爆彈圖像成像背景復雜,檢測物存在遮擋現(xiàn)象等問題,給識別帶來了諸多挑戰(zhàn)。文獻[4]利用哈特利變換對炮彈圖像進行特征提取后輸入到SVM分類器,實現(xiàn)炮彈圖像特征的快速分類。文獻[5]通過Xception深度網絡提取廢舊手榴彈圖像特征,使用L2-SVM的合頁損失對歸一化特征進行分類,取得較好的分類效果。文獻[6]通過Faster R-CNN目標檢測算法實現(xiàn)了對未爆彈目標識別與位置信息獲取,算法具有較好的魯棒性。文獻[7]將深度圖像量化為點云數據,圖像坐標數據轉化為世界坐標系數據,實現(xiàn)對現(xiàn)實物品的檢測和抓取。由此可見,基于深度學習的未爆彈圖像檢測算法能夠實現(xiàn)對目標物的自主識別和定位,提高了檢測效率和自主性。
本文受CenterNet算法啟發(fā)[8],提出了基于關鍵點的未爆彈圖像目標檢測算法。采用ResNet-50進行初步特征提取,利用特征增強網絡,提升對存在背景復雜和遮擋未爆彈目標的適應能力,最后輸入頭部預測模塊得到未爆彈類別和位置信息。在預訓練階段不需要提供anchor的大小,在檢測階段不需要非極大值抑制的后處理,算法流程清晰簡單。實驗結果表明,本文算法具有更高的檢測精度和較快的檢測速度。
目前,基于預選框(anchor-based)的目標檢測算法分為單階段(one-stage)和二階段(twostage)。二階段即為首先需要利用區(qū)域候選網絡(RPN)生成感興趣區(qū)域(ROI),然后再對該區(qū)域進行目標分類和位置回歸。常見的二階段目標檢測算法有R-CNN、SPP-Net、Fast R-CNN、Faster R-CNN和R-FCN等。單階段即為直接利用回歸的思想,使用單一網絡完成目標類別和位置的檢測,檢測速度大幅提升。常見的單階段目標檢測算法有SSD、YOLO系列、RetinaNet等。基于預選框(anchor-based)的目標檢測算法在檢測速度和精度上都取得了較大進步,但仍有以下缺陷:使用anchor時,需要在每個特征尺度上密集平鋪,導致僅有很少一部分是正樣本,造成正負樣本不均衡問題;anchor設計需要很細致,一般利用統(tǒng)計學從訓練集或者測試集中獲取,難以推廣到其他的數據集;每個像素網格點有多個錨點框,引入更多的超參數,加大訓練難度;二階段和單階段都存在非極大值抑制(non maximum suppression,NMS)后處理的問題。
從CornerNet開始[9],便開啟了基于無預選框(anchor-free)的目標檢測算法新篇章,其主要是拋棄了目前主流單階段和二階段目標檢測算法都用到的anchor boxes。CenterNet在CornerNet基礎上進一步優(yōu)化,得到了更高檢測精度和更快的檢測速度。CenterNet的檢測器將檢測目標看作一個點,即目標框的中心點,從而將目標檢測問題轉化為對關鍵點的估計問題。即為將圖像傳入到全卷積網絡中得到熱力圖,熱力圖峰值點(keypoint heatmap)是中心點,邊界框的尺寸大小和其他對象屬性根據中心點推斷出來。
針對未爆彈圖像特點,本文網絡模型包括主干網絡、特征增強網絡和頭部預測網絡,如圖1所示。主干網絡負責獲取輸入圖像的特征信息;特征加強模塊實現(xiàn)對主干網絡輸出的初步特征信息進行特征強化,增強有益特征信息并抑制無用特征信息;頭部預測模塊主要包含了三個分支,對特征加強的信息進行類別中心點熱力圖、中心點的偏置和目標bbox的高寬計算。

圖1 未爆彈圖像檢測網絡模型
將未爆彈圖像I∈RW×H×3輸入到ResNet-50主干網絡中進行特征提取,數據流至最后一個子網絡Conv5得到通道數為2048,特征圖尺寸為16×16的初步特征層;接著初步特征依次完成三次深度卷積、反卷積上采樣、深度卷積特征增強處理,從而獲得高分辨率特征圖輸出,生成語義信息和空間信息更豐富的特征預測圖;最后將該特征預測圖作為頭部預測網絡的輸入,完成目標熱力圖、中心點和寬高預測,輸出得到違禁品的類別和位置。
為使主干網絡輸出的初步特征層進一步適用于未爆彈圖像檢測,通過引入ResNeSt模塊[10],進一步加強圖像特征粒度信息,如圖2所示。
圖2展示了ResNeSt模塊,其中包含特征圖組(feature-map group)和拆分注意力(split attention)操作。輸入特征圖可以沿通道維度分為幾組,特征圖組中特征圖被分為多個組,每個組內又進行分組。超參數K和R分別表示特征圖組的數量和基數組內的分組數,總的特征圖分組數可以表示為G=K×R。對每個單獨的組應用一系列變換{F1,F2,…,FG},每個組的中間表示為Ui=F1(X),其中i∈{1,2,…,G}。在基數組內的每個分組中進行1×1和3×3的卷積,得到R個特征圖后進行拆分注意力操作。

圖2 ResNeSt模塊
主干網絡只進行了4倍下采樣,特征圖比一般網絡的分辨率高很多,所以不需要進行多尺度預測和特征金字塔也可以較好地檢測目標大小。通過特征增強網絡后得到一個更有效的圖像語義信息和位置信息,將這些信息輸入到頭部預測網絡,對熱力圖、中心點和寬高進行預測,如圖3所示。

圖3 頭部預測模塊
熱力圖預測分支中,對高分辨率特征圖先進行常規(guī)的卷積操作,歸一化處理和使用RuLU作為激活函數,然后進行多尺度池化(multi scale pooling,MSP)操作,通過融合不同大小的最大池化層來獲得魯棒的特征表示,最大池化的 池 化 核k={1×1,3×3,5×5,7×7},將 來自不同內核大小的特征圖連接(concat)一起作為輸出,接著進行1×1卷積降維操作,通道數為num_classes,最終結果為(128,128,num_classes),代表每一個熱力點是否有物體存在,以及物體的種類。
中心點預測分支中,對熱力圖的輸出進行精煉,提高定位準確度。對高分辨率特征圖先進行常規(guī)的卷積操作,歸一化處理和使用RuLU作為激活函數,再進行1×1卷積降維操作,此時卷積的通道數為2,最終結果為(128,128,2),代表每一個物體中心距離熱力點偏移的情況。
寬高預測分支中,預測以關鍵點為中心的檢測框的寬高。對高分辨率特征圖先進行常規(guī)的卷積操作,歸一化處理和使用RuLU作為激活函數,再進行1×1卷積降維操作,此時卷積的通道數為2,最終結果為(128,128,2),代表每一個物體寬高的預測情況。
本實驗使用的硬件環(huán)境為:Intel(R)Core(TM)i7-8750H CPU@2.20GHz處理器,Nvidia GeForce GTX 1070 8 GB顯卡,16 GB內存。軟件環(huán)境為:深度學習框架Pytorch,加速環(huán)境CUDA10.1,編程語言Python3。
在模型訓練過程中,輸入圖像尺寸:512 pixel×512 pixel,輸出分辨率:128 pixel×128 pixe(l即4倍stride),針對每個樣本采用簡單的數據增強方式:隨機翻轉;隨機放縮,其中比例在0.6到1.3;裁剪;色域變換,采用小批量樣本集的梯度下降法,Adam優(yōu)化器,初始學習率設定為1.0×10-4。
本文實驗圖像數據全部采自公開網絡。由于未爆彈圖像數據庫較匱乏,采用預設的數據變換規(guī)則,在已有數據的基礎上進行有監(jiān)督的數據增強,對原始圖像進行數據擴充。數據集含有5類共1200張未爆彈圖像,利用LabelImg開源圖像標注工具對數據進行標定[11],最終形成本次實驗的未爆彈數據集。
為了更好驗證檢測算法的有效性,本文采用平均精度(average precision,AP)、均值平均精度(mean average precision,mAP)和每秒幀率(frames per second,F(xiàn)PS)三項指標對算法模型評估。AP由精確率(precision,P)和召回率(recall,R)曲線和坐標圍起來的面積組成,用于計算平均的檢測精度和衡量檢測器在每個類別上的性能好壞。mAP用于評價多目標的檢測器性能,衡量檢測器在所有類別上的性能好壞,即得到每個類別的AP值后再取所有類別的平均值。精確率(P)、召回率(R)、平均精度(AP)和均值平均精度(mAP)的數學定義如下所示[12]。各標準的具體公式如下:
式中:TP表示被預測為正樣本、實際為正樣本的數量;FP表示被預測為負樣本、實際為負樣本的數量;FN表示被預測為正樣本、實際為負樣本的數量;Psmooth(r)表示平滑的P-R曲線,K表示類別數。
此外,F(xiàn)PS也是未爆彈圖像目標檢測的一個重要評價指標,指一秒內識別的圖像數。FPS值越大,檢測速度越快,實時性越高。
為了驗證本文算法的性能,在未爆彈圖像測試集上進行了實驗,結果如表1所示。

表1 檢測算法的檢測精度
由表1可見,本文算法在mAP和FPS性能結果分別為94.16%和34 frame/s,驗證了本文算法的有效性。為了進一步驗證本文算法的有效性,分別將SSD[13]、YOLOv3[14]、CenterNet等經典模型與本文算法在未爆彈圖像測試集上進行檢測可視化,部分檢測可視化結果如圖4所示。

圖4 未爆彈圖像檢測算法結果對比
圖4可視化了不同算法未爆彈圖像檢測結果,其中數字為目標的置信度。由圖4可以看出,相比SSD、YOLOv3、CenterNet等經典模型,本文算法在識別準確率和定位精度上取得了更好的檢測效果。在圖4中多個未爆彈目標相互遮擋,背景復雜混亂且與未爆彈目標顏色相似,SSD算法對違禁品目標檢測的漏檢率比較高,YOLOv3和CenterNet算法的檢測效果有較好的提升,但也仍然存在漏檢問題,本文算法對多個遮擋未爆彈檢測具有較好的效果和較大的提升。
為進一步提高未爆彈的檢測速度和精度,本文提出了一種基于關鍵點的未爆彈圖像檢測算法。以目標中心為關鍵點的檢測算法,保證在較快的檢測速度前提下,能夠準確地檢測出背景復雜、遮擋的未爆彈目標。實驗結果表明,在未爆彈測試數據集上與三種先進的目標檢測方法進行實驗驗證,本文算法能夠得到更高的準確率和速度。下一階段研究中,將進一步擴展未爆彈圖像目標數據,同時在確保檢測速度不降低的前提下,提升算法在密集復雜物品背景下的未爆彈檢測能力,為實現(xiàn)智能化排爆機器人精準抓取未爆彈打下基礎。