張 奔,徐 鋒,李曉婷,趙彥東
(北方自動控制技術研究所,太原 030006)
巡飛彈是一種能夠執行智能組網、編隊飛行、偵察及打擊任務的無人作戰飛行器[1]。在其實際的作戰應用中,敵方的軍事目標在很多情況下會出現集群作戰,密集集結的場景[2]。因此,對目標數量及狀態的快速精準統計,可以為后續巡飛彈編隊進行任務規劃、展開攻擊提供重要的數據支撐。
在機器學習應用于目標識別前,軍事目標的檢測依賴于領域內專家根據對不同目標的紋理、形狀、顏色等特征的處理,設計多種類型的特征描述子[3-5],進行全局特征目標檢測。隨著近些年計算機處理數據的能力呈爆發式增長,以及深度學習相關領域算法的長足進步,基于深度卷積神經網絡(Convolution Neural Network,CNN)[6]的檢測模型,在特征提取方面相比傳統方式有巨大的優勢?,F有的基于深度卷積神經網絡的目標檢測模型,一類是基于建議框的方法,這類方法的典型代表就是于2014 年提出的R-CNN[7],R-CNN 算法家族是典型的兩階段處理模式,先通過滑動窗口、Selective Search[8-9]等方法,從圖像中提取出候選區域再進行識別。此類模型對小目標檢測精度高,但由于計算量大,很難滿足實時目標檢測的要求。另一類免建議框方法即YOLO算法家族[10-11],不需要提前找到可能存在目標的Region,而是將目標的檢測看作是一個基于回歸的問題求解,將整張圖片直接輸入,通過神經網絡的信息提取,從模型的輸出中直接給出目標的所屬類別置信概率以及位置邊框。這種方法省去了候選區域的提取與分類,極大程度地減少了處理圖像所需要的時間,使得基于處理視頻流的實時軍事目標檢測成為了現實,同時兼有較高的準確率。
為了解決巡飛彈作戰過程中,軍事集群目標在YOLOv3[12]算法漏檢緊鄰目標的問題上,提出一種改進非極大值抑制算法,并采用k-fold 交叉驗證策略對數據預處理的綜合改進模型。
You Only Look Once 是YOLO 家族模型的全稱,該算法于2015 年由Joseph Redmon 等提出,用于單個深度神經網絡的目標檢測模型。截止到2018 年4月,在其官網上已經發布了第3 個版本即YOLOv3。該算法的檢測性能非??焖偾覝蚀_,其中YOLOv3-608(608 指輸入圖片的分辨率)其mAP 可以做到與RetinaNet 相當的水平,達到33.0%,但其檢測耗時只需要51 ms,相較于后者的198 ms 快了4 倍。
該算法基本思想:首先通過特征提取網絡DarkNet53 對輸入的圖像進行特征提取,得到一定大小的feature map。通過調整卷積的步長為2,達到下采樣的目的。例如整個網絡進行32 倍下采樣,在輸入圖片大小為608×608 的時候,得到一個大小為19×19 的feature map,然后可以認為將輸入圖像被分為19×19 個grid cell。這樣如果在ground truth中某個目標的矩形中心落在了哪個grid cell 里,就由該grid cell 負責預測該目標,并且預測的坐標會通過sigmoid 函數歸一化到這個grid cell 中。每個grid cell 都會預測3 個邊界框,這幾個邊界框初始大小的設置借鑒了Faster R-CNN 中anchor 機制。這些預測出來的帶有類別置信度的預測邊框,通過Objectness 分數閾值篩選和候選框NMS 處理,最后輸出目標的分類和預測邊框。
YOLOv3 一大改進點就是采用特征金字塔網絡(FPN)[13]類似的結構進行多尺度預測,不同深度所對應的feature map 包含的不同信息就得到了利用,例如52×52 大小的特征圖擁有更加精細的grid cell,對更精細的目標就有更高的檢測概率。

圖1 Darknet53 網絡結構
Darknet 網絡的結構如圖1 所示。本文不針對YOLO 的特征提取網絡進行改進,故不進行細致的描述。需要說明的是,由于Darknet53 去掉了全連接層,實際這里的卷積層數應為52。
對模型最終的輸出做處理是本次改進的重點,故在闡述改進之前,先給出幾個概念的解釋:
3 種不同尺度的輸出特征圖所提取的特征在深度這個維度上如式(1)所示:

其中,B 表示每個gril cell 預測出的邊界框數量,C表示邊界框的類別數,包含了每個類別網絡預測出的類別置信度,5 表示預測邊框的4 個坐標信息和1 個Objectness 分數。其含義如下:
1)Objectness 分數:表示目標在預測邊界框中的概率;
2)類別置信度:表示檢測到的對象屬于某個類別的概率。
YOLOv3 去除同一類目標由不同grid cell 預測出的冗余邊框,采用非極大值抑制(Non Maximum Suppression,NMS)方法。該方法的基本思想就是通過搜索同一類目標的預測框,根據預測框的置信度得分和相互之間的IoU 比較,來找到與真實目標邊框重合度最高的邊框,并將冗余的邊框提前剔除。
如圖2 所示,YOLOv3 模型對自行火炮目標檢測時,巡飛彈以俯視狀態去拍攝軍事集群目標,會出現目標相互遮擋的情況。非極大值抑制算法在執行過程中,如果IoU 閾值設置不恰當,相互遮擋的同類目標會因為彼此預測邊框重合度超過閾值而有被誤刪的可能,導致檢出自行火炮數量缺失,召回率下降。

圖2 YOLOv3 對軍事集群目標檢測結果
YOLOv3 目標檢測模型中,基于NMS 的邊框選擇算法流程如下:

?NMS 邊框選擇算法流程1:根據預測邊框Objectness 分數,將超過閾值的邊框保留,其余邊框不進入下面的篩選2:同一個類別保留下來的所有預測邊框,根據類別置信度從大到小排列生成一個邊框列表3:在輸出列表中把類別置信度最高的邊框添加進來,并相應地在邊框列表中刪除該邊框4:遍歷邊框列表中剩余的預測邊框,分別計算與上個步驟中移到輸出邊框列表中的邊框的IoU 5:去掉邊框列表中超過設定IoU 閾值的預測邊框6:重復步驟2 至5,以邊框列表為空即止,最終輸出列表中的預測邊框即為檢測結果輸出
可用式(2)來表示NMS 對回歸邊框的處理:

其中,Ni指YOLOv3-voc.cfg 文件中設定的ignore_thresh 值,即IoU 閾值。從算法流程和分數重置函數中都可以看出,NMS 對低于閾值的預測邊框直接進行了“硬判決”,在集群軍事目標中如果兩個同類目標存在一定程度的前后遮擋,導致預測邊框的重合區域較大,在超過IoU 閾值的情況下,NMS 算法就會“粗暴”地將類別置信度較低的邊框排除在外,造成目標的漏檢,從而降低了模型對該類目標的召回率。
Navaneeth Bodla 等人針對NMS 算法的缺陷提出了改進的soft-NMS 算法,其分數重置函數如式(3)所示:

改進算法通過加入懲罰函數來削弱與檢測框P有重疊的相鄰預測框的類別置信度分數,使得重疊度越高的預測框對應的類別置信度得分衰減越大,而對沒有超過閾值的預測邊框則不作改變。通過soft-NMS 算法,保留了超過IoU 閾值的預測邊框參加下輪篩選的機會,能在一定程度上減輕被遮擋目標預測邊框被誤刪的概率,從而提高模型檢測該目標的召回率。在Darknet 框架的src 文件中找到box.c文件即可修改模型候選框選擇的方法。
軍事目標尤其是針對裝甲目標進行攻頂襲擊的圖像在公開的信息中是非常稀少的,這將導致用于深度學習的訓練數據不足。本研究采用模擬仿真的方式來獲得所需訓練素材,但是也需要考慮訓練數據不足引起的模型過擬合現象。本文采用交叉驗證(Cross Validation)思想[14-15]來抑制由于訓練數據不足所引起的過擬合問題。交叉驗證基本過程就是將數據集按照一定比例隨機分為訓練集和驗證集,訓練集的樣本數量一般是驗證集的3~9 倍,重復多次這樣的分組并對模型進行訓練來獲得更加可靠穩定的權重文件。
k-fold 交叉驗證方法是根據數據集不同的分割方法而命名的,其k 值指數據集隨機平分為k組,并對模型進行k 輪訓練。在k 輪的訓練中,保證每組數據都做過一次驗證集,剩余的k-1 組數據作為訓練集來訓練模型。最終以各次模型檢測結果的平均值或檢測結果最優的一組為衡量模型性能的標準。
實驗所采用的圖像數據,以巡飛彈的實際應用場景為出發點,考慮到此類軍事目標圖像數據難以獲得的情況,選擇以模擬器生成圖像為訓練素材,針對自行火炮這類軍事目標,以驗證改進效果為目的,采用高空俯視的方式,從不同高度、角度對目標的圖像數據進行采集。模擬圖像的大小為1 920×1 080,自行火炮所占的像素點平均分布在20×20 到400×400 之間。并且目標的姿態涵蓋了俯視情況下的大部分角度,在不同的尺度和不同的角度下都有充分的體現。本實驗所采用的數據圖例如圖2 所示。所有訓練圖片都使用LabelImg 標圖工具為其匹配一個.xml 文件。
通過刪除相似圖像,最終得到了2 191 張圖片,按照3∶1 的比例將其分為訓練集和驗證集。整個數據集中包含自行火炮6 436 輛,其中,656 張圖像中存在自行火炮兩兩遮擋的情況。同時單獨制作了一個測試集,包含一個不同高度、不同角度俯視拍攝的模擬自行火炮視頻,視頻長度為3'11'',以及108 張測試圖片。
本次使用所采用的軟硬件平臺如表1 所示,以下的對比試驗均在此實驗環境下展開。

表1 實驗環境軟硬件配置表

表2 訓練.cfg 主要參數設置
表2 為模型的主要參數設置。在設置輸入圖片的大小時,分辨率越高,檢測的準確度也會得到提高,但隨之而來的是計算量的增加,綜合考慮計算機的性能和對實時性的要求,選擇輸入圖像的尺寸為608×608。
在按照以上參數配置表設置YOLOv3 的cfg 文件后,在不改變原模型其他任何參數的前提下,用收集到的數據集對模型進行訓練和測試。采用模型的召回率Rcall 以及準確率P(Precision)作為對比標準。訓練后參照組的召回率為69.65%,準確率P 為94.61%。
改進YOLOv3 的候選框選擇方法后,在其他參數不變的情況下其訓練的結果如表3 所示:

表3 soft-nms 與參照組實驗數據比較
召回率提高了15.68%,顯示針對候選框選擇算法的改進有明顯效果。
數據集按照3∶1 的比例隨機分配成訓練集和驗證集,故k-fold 進行4 輪訓練,其訓練的結果如表4 所示:

表4 k-fold 實驗結果
a-P 表示4 輪訓練后的平均準確率,數據預處理后得到模型的a-P 相比YOLOv3 的準確率提升了1.99%??梢娫谠摂祿?,k-fold 交叉驗證方法能夠對數據偏少時訓練網絡引起的過擬合現象起到抑制作用,有利于模型參數的優化。
將候選框和數據預處理的改進同時進行,4 輪訓練后計算結果與參照組對比,實驗結果如下頁表5 所示。
實際的模型檢測效果如圖3 所示。綜合改進后的模型相較于圖2 所示的YOLOv3 的檢測效果,可以明顯看出在不同的目標尺度下,改進后模型把之前漏檢的自行火炮都預測了出來,并且預測邊框的位置也較為準確,識別的實際效果明顯有了優化。漏檢目標的重新檢出提升了召回率,這與表5 所呈現的結果是吻合的,準確率提高了3.14%,召回率提高了17.58%。

表5 綜合改進后與參照組實驗數據比較

圖3 綜合改進模型對軍事集群目標檢測結果
本次研究在YOLOv3 算法的基礎上,通過數據交叉驗證、候選框選擇算法引入懲罰函數,提高了模型對復雜目標狀態的適應性。3 次對比實驗結果表明,改進算法在軍事集群目標數據集上,有較高的檢測準確率和定位準確率,同時對緊鄰目標的漏檢率低于原YOLOv3 算法。但本次研究為了提高對小目標檢測的準確率,增大了網絡輸入圖像的尺寸,犧牲了一定的檢測速度。如何進一步優化模型,在保證小目標檢測準確率的前提下提升檢測速度,將是下一步研究的重點。