張 奔,徐 鋒,李曉婷,趙彥東
(北方自動(dòng)控制技術(shù)研究所,太原 030006)
巡飛彈是一種能夠執(zhí)行智能組網(wǎng)、編隊(duì)飛行、偵察及打擊任務(wù)的無人作戰(zhàn)飛行器[1]。在其實(shí)際的作戰(zhàn)應(yīng)用中,敵方的軍事目標(biāo)在很多情況下會(huì)出現(xiàn)集群作戰(zhàn),密集集結(jié)的場(chǎng)景[2]。因此,對(duì)目標(biāo)數(shù)量及狀態(tài)的快速精準(zhǔn)統(tǒng)計(jì),可以為后續(xù)巡飛彈編隊(duì)進(jìn)行任務(wù)規(guī)劃、展開攻擊提供重要的數(shù)據(jù)支撐。
在機(jī)器學(xué)習(xí)應(yīng)用于目標(biāo)識(shí)別前,軍事目標(biāo)的檢測(cè)依賴于領(lǐng)域內(nèi)專家根據(jù)對(duì)不同目標(biāo)的紋理、形狀、顏色等特征的處理,設(shè)計(jì)多種類型的特征描述子[3-5],進(jìn)行全局特征目標(biāo)檢測(cè)。隨著近些年計(jì)算機(jī)處理數(shù)據(jù)的能力呈爆發(fā)式增長(zhǎng),以及深度學(xué)習(xí)相關(guān)領(lǐng)域算法的長(zhǎng)足進(jìn)步,基于深度卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Network,CNN)[6]的檢測(cè)模型,在特征提取方面相比傳統(tǒng)方式有巨大的優(yōu)勢(shì)?,F(xiàn)有的基于深度卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)模型,一類是基于建議框的方法,這類方法的典型代表就是于2014 年提出的R-CNN[7],R-CNN 算法家族是典型的兩階段處理模式,先通過滑動(dòng)窗口、Selective Search[8-9]等方法,從圖像中提取出候選區(qū)域再進(jìn)行識(shí)別。此類模型對(duì)小目標(biāo)檢測(cè)精度高,但由于計(jì)算量大,很難滿足實(shí)時(shí)目標(biāo)檢測(cè)的要求。另一類免建議框方法即YOLO算法家族[10-11],不需要提前找到可能存在目標(biāo)的Region,而是將目標(biāo)的檢測(cè)看作是一個(gè)基于回歸的問題求解,將整張圖片直接輸入,通過神經(jīng)網(wǎng)絡(luò)的信息提取,從模型的輸出中直接給出目標(biāo)的所屬類別置信概率以及位置邊框。這種方法省去了候選區(qū)域的提取與分類,極大程度地減少了處理圖像所需要的時(shí)間,使得基于處理視頻流的實(shí)時(shí)軍事目標(biāo)檢測(cè)成為了現(xiàn)實(shí),同時(shí)兼有較高的準(zhǔn)確率。
為了解決巡飛彈作戰(zhàn)過程中,軍事集群目標(biāo)在YOLOv3[12]算法漏檢緊鄰目標(biāo)的問題上,提出一種改進(jìn)非極大值抑制算法,并采用k-fold 交叉驗(yàn)證策略對(duì)數(shù)據(jù)預(yù)處理的綜合改進(jìn)模型。
You Only Look Once 是YOLO 家族模型的全稱,該算法于2015 年由Joseph Redmon 等提出,用于單個(gè)深度神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)模型。截止到2018 年4月,在其官網(wǎng)上已經(jīng)發(fā)布了第3 個(gè)版本即YOLOv3。該算法的檢測(cè)性能非??焖偾覝?zhǔn)確,其中YOLOv3-608(608 指輸入圖片的分辨率)其mAP 可以做到與RetinaNet 相當(dāng)?shù)乃?,達(dá)到33.0%,但其檢測(cè)耗時(shí)只需要51 ms,相較于后者的198 ms 快了4 倍。
該算法基本思想:首先通過特征提取網(wǎng)絡(luò)DarkNet53 對(duì)輸入的圖像進(jìn)行特征提取,得到一定大小的feature map。通過調(diào)整卷積的步長(zhǎng)為2,達(dá)到下采樣的目的。例如整個(gè)網(wǎng)絡(luò)進(jìn)行32 倍下采樣,在輸入圖片大小為608×608 的時(shí)候,得到一個(gè)大小為19×19 的feature map,然后可以認(rèn)為將輸入圖像被分為19×19 個(gè)grid cell。這樣如果在ground truth中某個(gè)目標(biāo)的矩形中心落在了哪個(gè)grid cell 里,就由該grid cell 負(fù)責(zé)預(yù)測(cè)該目標(biāo),并且預(yù)測(cè)的坐標(biāo)會(huì)通過sigmoid 函數(shù)歸一化到這個(gè)grid cell 中。每個(gè)grid cell 都會(huì)預(yù)測(cè)3 個(gè)邊界框,這幾個(gè)邊界框初始大小的設(shè)置借鑒了Faster R-CNN 中anchor 機(jī)制。這些預(yù)測(cè)出來的帶有類別置信度的預(yù)測(cè)邊框,通過Objectness 分?jǐn)?shù)閾值篩選和候選框NMS 處理,最后輸出目標(biāo)的分類和預(yù)測(cè)邊框。
YOLOv3 一大改進(jìn)點(diǎn)就是采用特征金字塔網(wǎng)絡(luò)(FPN)[13]類似的結(jié)構(gòu)進(jìn)行多尺度預(yù)測(cè),不同深度所對(duì)應(yīng)的feature map 包含的不同信息就得到了利用,例如52×52 大小的特征圖擁有更加精細(xì)的grid cell,對(duì)更精細(xì)的目標(biāo)就有更高的檢測(cè)概率。
圖1 Darknet53 網(wǎng)絡(luò)結(jié)構(gòu)
Darknet 網(wǎng)絡(luò)的結(jié)構(gòu)如圖1 所示。本文不針對(duì)YOLO 的特征提取網(wǎng)絡(luò)進(jìn)行改進(jìn),故不進(jìn)行細(xì)致的描述。需要說明的是,由于Darknet53 去掉了全連接層,實(shí)際這里的卷積層數(shù)應(yīng)為52。
對(duì)模型最終的輸出做處理是本次改進(jìn)的重點(diǎn),故在闡述改進(jìn)之前,先給出幾個(gè)概念的解釋:
3 種不同尺度的輸出特征圖所提取的特征在深度這個(gè)維度上如式(1)所示:
其中,B 表示每個(gè)gril cell 預(yù)測(cè)出的邊界框數(shù)量,C表示邊界框的類別數(shù),包含了每個(gè)類別網(wǎng)絡(luò)預(yù)測(cè)出的類別置信度,5 表示預(yù)測(cè)邊框的4 個(gè)坐標(biāo)信息和1 個(gè)Objectness 分?jǐn)?shù)。其含義如下:
1)Objectness 分?jǐn)?shù):表示目標(biāo)在預(yù)測(cè)邊界框中的概率;
2)類別置信度:表示檢測(cè)到的對(duì)象屬于某個(gè)類別的概率。
YOLOv3 去除同一類目標(biāo)由不同grid cell 預(yù)測(cè)出的冗余邊框,采用非極大值抑制(Non Maximum Suppression,NMS)方法。該方法的基本思想就是通過搜索同一類目標(biāo)的預(yù)測(cè)框,根據(jù)預(yù)測(cè)框的置信度得分和相互之間的IoU 比較,來找到與真實(shí)目標(biāo)邊框重合度最高的邊框,并將冗余的邊框提前剔除。
如圖2 所示,YOLOv3 模型對(duì)自行火炮目標(biāo)檢測(cè)時(shí),巡飛彈以俯視狀態(tài)去拍攝軍事集群目標(biāo),會(huì)出現(xiàn)目標(biāo)相互遮擋的情況。非極大值抑制算法在執(zhí)行過程中,如果IoU 閾值設(shè)置不恰當(dāng),相互遮擋的同類目標(biāo)會(huì)因?yàn)楸舜祟A(yù)測(cè)邊框重合度超過閾值而有被誤刪的可能,導(dǎo)致檢出自行火炮數(shù)量缺失,召回率下降。
圖2 YOLOv3 對(duì)軍事集群目標(biāo)檢測(cè)結(jié)果
YOLOv3 目標(biāo)檢測(cè)模型中,基于NMS 的邊框選擇算法流程如下:
?NMS 邊框選擇算法流程1:根據(jù)預(yù)測(cè)邊框Objectness 分?jǐn)?shù),將超過閾值的邊框保留,其余邊框不進(jìn)入下面的篩選2:同一個(gè)類別保留下來的所有預(yù)測(cè)邊框,根據(jù)類別置信度從大到小排列生成一個(gè)邊框列表3:在輸出列表中把類別置信度最高的邊框添加進(jìn)來,并相應(yīng)地在邊框列表中刪除該邊框4:遍歷邊框列表中剩余的預(yù)測(cè)邊框,分別計(jì)算與上個(gè)步驟中移到輸出邊框列表中的邊框的IoU 5:去掉邊框列表中超過設(shè)定IoU 閾值的預(yù)測(cè)邊框6:重復(fù)步驟2 至5,以邊框列表為空即止,最終輸出列表中的預(yù)測(cè)邊框即為檢測(cè)結(jié)果輸出
可用式(2)來表示NMS 對(duì)回歸邊框的處理:
其中,Ni指YOLOv3-voc.cfg 文件中設(shè)定的ignore_thresh 值,即IoU 閾值。從算法流程和分?jǐn)?shù)重置函數(shù)中都可以看出,NMS 對(duì)低于閾值的預(yù)測(cè)邊框直接進(jìn)行了“硬判決”,在集群軍事目標(biāo)中如果兩個(gè)同類目標(biāo)存在一定程度的前后遮擋,導(dǎo)致預(yù)測(cè)邊框的重合區(qū)域較大,在超過IoU 閾值的情況下,NMS 算法就會(huì)“粗暴”地將類別置信度較低的邊框排除在外,造成目標(biāo)的漏檢,從而降低了模型對(duì)該類目標(biāo)的召回率。
Navaneeth Bodla 等人針對(duì)NMS 算法的缺陷提出了改進(jìn)的soft-NMS 算法,其分?jǐn)?shù)重置函數(shù)如式(3)所示:
改進(jìn)算法通過加入懲罰函數(shù)來削弱與檢測(cè)框P有重疊的相鄰預(yù)測(cè)框的類別置信度分?jǐn)?shù),使得重疊度越高的預(yù)測(cè)框?qū)?yīng)的類別置信度得分衰減越大,而對(duì)沒有超過閾值的預(yù)測(cè)邊框則不作改變。通過soft-NMS 算法,保留了超過IoU 閾值的預(yù)測(cè)邊框參加下輪篩選的機(jī)會(huì),能在一定程度上減輕被遮擋目標(biāo)預(yù)測(cè)邊框被誤刪的概率,從而提高模型檢測(cè)該目標(biāo)的召回率。在Darknet 框架的src 文件中找到box.c文件即可修改模型候選框選擇的方法。
軍事目標(biāo)尤其是針對(duì)裝甲目標(biāo)進(jìn)行攻頂襲擊的圖像在公開的信息中是非常稀少的,這將導(dǎo)致用于深度學(xué)習(xí)的訓(xùn)練數(shù)據(jù)不足。本研究采用模擬仿真的方式來獲得所需訓(xùn)練素材,但是也需要考慮訓(xùn)練數(shù)據(jù)不足引起的模型過擬合現(xiàn)象。本文采用交叉驗(yàn)證(Cross Validation)思想[14-15]來抑制由于訓(xùn)練數(shù)據(jù)不足所引起的過擬合問題。交叉驗(yàn)證基本過程就是將數(shù)據(jù)集按照一定比例隨機(jī)分為訓(xùn)練集和驗(yàn)證集,訓(xùn)練集的樣本數(shù)量一般是驗(yàn)證集的3~9 倍,重復(fù)多次這樣的分組并對(duì)模型進(jìn)行訓(xùn)練來獲得更加可靠穩(wěn)定的權(quán)重文件。
k-fold 交叉驗(yàn)證方法是根據(jù)數(shù)據(jù)集不同的分割方法而命名的,其k 值指數(shù)據(jù)集隨機(jī)平分為k組,并對(duì)模型進(jìn)行k 輪訓(xùn)練。在k 輪的訓(xùn)練中,保證每組數(shù)據(jù)都做過一次驗(yàn)證集,剩余的k-1 組數(shù)據(jù)作為訓(xùn)練集來訓(xùn)練模型。最終以各次模型檢測(cè)結(jié)果的平均值或檢測(cè)結(jié)果最優(yōu)的一組為衡量模型性能的標(biāo)準(zhǔn)。
實(shí)驗(yàn)所采用的圖像數(shù)據(jù),以巡飛彈的實(shí)際應(yīng)用場(chǎng)景為出發(fā)點(diǎn),考慮到此類軍事目標(biāo)圖像數(shù)據(jù)難以獲得的情況,選擇以模擬器生成圖像為訓(xùn)練素材,針對(duì)自行火炮這類軍事目標(biāo),以驗(yàn)證改進(jìn)效果為目的,采用高空俯視的方式,從不同高度、角度對(duì)目標(biāo)的圖像數(shù)據(jù)進(jìn)行采集。模擬圖像的大小為1 920×1 080,自行火炮所占的像素點(diǎn)平均分布在20×20 到400×400 之間。并且目標(biāo)的姿態(tài)涵蓋了俯視情況下的大部分角度,在不同的尺度和不同的角度下都有充分的體現(xiàn)。本實(shí)驗(yàn)所采用的數(shù)據(jù)圖例如圖2 所示。所有訓(xùn)練圖片都使用LabelImg 標(biāo)圖工具為其匹配一個(gè).xml 文件。
通過刪除相似圖像,最終得到了2 191 張圖片,按照3∶1 的比例將其分為訓(xùn)練集和驗(yàn)證集。整個(gè)數(shù)據(jù)集中包含自行火炮6 436 輛,其中,656 張圖像中存在自行火炮兩兩遮擋的情況。同時(shí)單獨(dú)制作了一個(gè)測(cè)試集,包含一個(gè)不同高度、不同角度俯視拍攝的模擬自行火炮視頻,視頻長(zhǎng)度為3'11'',以及108 張測(cè)試圖片。
本次使用所采用的軟硬件平臺(tái)如表1 所示,以下的對(duì)比試驗(yàn)均在此實(shí)驗(yàn)環(huán)境下展開。
表1 實(shí)驗(yàn)環(huán)境軟硬件配置表
表2 訓(xùn)練.cfg 主要參數(shù)設(shè)置
表2 為模型的主要參數(shù)設(shè)置。在設(shè)置輸入圖片的大小時(shí),分辨率越高,檢測(cè)的準(zhǔn)確度也會(huì)得到提高,但隨之而來的是計(jì)算量的增加,綜合考慮計(jì)算機(jī)的性能和對(duì)實(shí)時(shí)性的要求,選擇輸入圖像的尺寸為608×608。
在按照以上參數(shù)配置表設(shè)置YOLOv3 的cfg 文件后,在不改變?cè)P推渌魏螀?shù)的前提下,用收集到的數(shù)據(jù)集對(duì)模型進(jìn)行訓(xùn)練和測(cè)試。采用模型的召回率Rcall 以及準(zhǔn)確率P(Precision)作為對(duì)比標(biāo)準(zhǔn)。訓(xùn)練后參照組的召回率為69.65%,準(zhǔn)確率P 為94.61%。
改進(jìn)YOLOv3 的候選框選擇方法后,在其他參數(shù)不變的情況下其訓(xùn)練的結(jié)果如表3 所示:
表3 soft-nms 與參照組實(shí)驗(yàn)數(shù)據(jù)比較
召回率提高了15.68%,顯示針對(duì)候選框選擇算法的改進(jìn)有明顯效果。
數(shù)據(jù)集按照3∶1 的比例隨機(jī)分配成訓(xùn)練集和驗(yàn)證集,故k-fold 進(jìn)行4 輪訓(xùn)練,其訓(xùn)練的結(jié)果如表4 所示:
表4 k-fold 實(shí)驗(yàn)結(jié)果
a-P 表示4 輪訓(xùn)練后的平均準(zhǔn)確率,數(shù)據(jù)預(yù)處理后得到模型的a-P 相比YOLOv3 的準(zhǔn)確率提升了1.99%??梢娫谠摂?shù)據(jù)集上,k-fold 交叉驗(yàn)證方法能夠?qū)?shù)據(jù)偏少時(shí)訓(xùn)練網(wǎng)絡(luò)引起的過擬合現(xiàn)象起到抑制作用,有利于模型參數(shù)的優(yōu)化。
將候選框和數(shù)據(jù)預(yù)處理的改進(jìn)同時(shí)進(jìn)行,4 輪訓(xùn)練后計(jì)算結(jié)果與參照組對(duì)比,實(shí)驗(yàn)結(jié)果如下頁表5 所示。
實(shí)際的模型檢測(cè)效果如圖3 所示。綜合改進(jìn)后的模型相較于圖2 所示的YOLOv3 的檢測(cè)效果,可以明顯看出在不同的目標(biāo)尺度下,改進(jìn)后模型把之前漏檢的自行火炮都預(yù)測(cè)了出來,并且預(yù)測(cè)邊框的位置也較為準(zhǔn)確,識(shí)別的實(shí)際效果明顯有了優(yōu)化。漏檢目標(biāo)的重新檢出提升了召回率,這與表5 所呈現(xiàn)的結(jié)果是吻合的,準(zhǔn)確率提高了3.14%,召回率提高了17.58%。
表5 綜合改進(jìn)后與參照組實(shí)驗(yàn)數(shù)據(jù)比較
圖3 綜合改進(jìn)模型對(duì)軍事集群目標(biāo)檢測(cè)結(jié)果
本次研究在YOLOv3 算法的基礎(chǔ)上,通過數(shù)據(jù)交叉驗(yàn)證、候選框選擇算法引入懲罰函數(shù),提高了模型對(duì)復(fù)雜目標(biāo)狀態(tài)的適應(yīng)性。3 次對(duì)比實(shí)驗(yàn)結(jié)果表明,改進(jìn)算法在軍事集群目標(biāo)數(shù)據(jù)集上,有較高的檢測(cè)準(zhǔn)確率和定位準(zhǔn)確率,同時(shí)對(duì)緊鄰目標(biāo)的漏檢率低于原YOLOv3 算法。但本次研究為了提高對(duì)小目標(biāo)檢測(cè)的準(zhǔn)確率,增大了網(wǎng)絡(luò)輸入圖像的尺寸,犧牲了一定的檢測(cè)速度。如何進(jìn)一步優(yōu)化模型,在保證小目標(biāo)檢測(cè)準(zhǔn)確率的前提下提升檢測(cè)速度,將是下一步研究的重點(diǎn)。