朱會杰 王勇 趙振宇 張耀芹 劉立行
1.近地面探測技術(shù)國防重點實驗室江蘇無錫214035 2.江蘇北方湖光光電有限公司江蘇無錫214035
無人機在軍事中的應(yīng)用, 已經(jīng)改變了以往的作戰(zhàn)模式,在敘利亞、伊朗、納卡等地區(qū)的戰(zhàn)爭中發(fā)揮了舉足輕重的作用, 甚至對戰(zhàn)爭走勢產(chǎn)生了決定性的影響[1?2].最近兩年, 一種將無人機和彈藥融為一體的新型武器的出現(xiàn),引起了廣泛的關(guān)注.微型無人機具有便攜性、隱蔽性, 可遙控和部分場景自主識別打擊, 已經(jīng)成為主要軍事強國的新型武器發(fā)展方向之一, 目前已有英國的Drone40、以色列的“螢火蟲”、捷克防務(wù)系統(tǒng)的PHOLOS 等型號.以Drone40為例,僅有手掌大小,可以使用榴彈發(fā)射器或者手拋發(fā)射,可以采用自殺式爆炸襲擊目標(biāo),能夠達到常規(guī)武器無法到達的區(qū)域, 自主識別和定位又使其具有超視覺攻擊能力,適合在復(fù)雜、危險的場景使用.
基于GPS 和慣導(dǎo)的定位方式只能提供一個粗略的位置信息,到達目標(biāo)區(qū)域后,依靠微型無人機自身的自主功能進行目標(biāo)檢測和自主攻擊.微型無人機由于體積和重量的限制, 往往只能安裝小型單目攝像頭作為感知手段, 自主能力和控制精度都有待提高.視覺伺服基于圖像特征建立誤差函數(shù)以實時驅(qū)動被控目標(biāo)的運動控制,實現(xiàn)全閉環(huán)反饋控制,具有適應(yīng)性強、精度高和魯棒性強的優(yōu)點.
圖像特征的提取和選擇是視覺伺服的基礎(chǔ), 直接決定了其精度和魯棒性.根據(jù)圖像特征的不同可分為基于特征點、基于圖像矩的視覺伺服及基于其他幾何特征的視覺伺服[1?2].基于圖像矩的視覺伺服可以適用于任何復(fù)雜形狀的實體目標(biāo), 且僅需高階全局匹配, 使用恰當(dāng)?shù)脑O(shè)計能基于最少圖像特征實現(xiàn)被控目標(biāo)的全自由度約束控制[5],避免冗余特征引入的局部極小問題[6].計算圖像矩首先需要精確地分割出目標(biāo)圖像,因此,可將視覺伺服中的圖像矩提取的核心轉(zhuǎn)化為一個實例分割問題, 但目前實例分割存在的提取精度不高、魯棒性不強的問題,尤其是在復(fù)雜的軍事環(huán)境中,有待進一步提升算法性能.
實例分割按其原理可以分為3 類: 自上而下、自下而上和單階段實例分割算法.1)自上而下的實例分割算法, 該框架的思路是首先通過目標(biāo)檢測的方法找出實例所在的區(qū)域, 再在檢測框內(nèi)進行語義分割,每個分割結(jié)果都作為一個不同的實例輸出.自上而下的密集實例分割的典型代表有MaskRCNN[7],該類算法計算量很大,難以滿足實際部署需要.2)自下而上的實例分割算法, 該框架首先進行像素級別的語義分割, 再通過聚類、度量學(xué)習(xí)等手段區(qū)分不同的實例.這種方法雖然保持了更好的低層特征(細(xì)節(jié)信息和位置信息),但對密集分割的質(zhì)量要求很高,會導(dǎo)致非最優(yōu)的分割, 泛化能力較差, 無法應(yīng)對類別多的復(fù)雜場景, 并且需要繁瑣的后處理方法.3)單階段實例分割算法, 這種框架受到了單階段目標(biāo)檢測算法的影響, 因此也有兩種思路, 一種是受單階段基于錨框的檢測模型如YOLO[8]、RetinaNet 等啟發(fā), 代表作有YOLACT[9]和SOLO[10?11]; 另外一種是受無錨框檢測模型如FCOS[12]啟發(fā), 代表作有Blendmask[13]、PolarMask[14]和AdaptIS[15]等.這種類型的算法既有較高的效率, 同時也保持了一定的精度,在應(yīng)用中取得了良好的效果,尤其是綜合性能都較優(yōu)異的SOLO v2, 受到了學(xué)術(shù)界和工業(yè)的廣泛關(guān)注.鑒于SOLO v2 在精度和效率上都表現(xiàn)出較大的優(yōu)勢,本文將基于SOLO v2 并根據(jù)目標(biāo)的特點進行改進,以提取精確的目標(biāo)區(qū)域,為下一步的視覺伺服提供輸入.
與YOLO 中按照位置劃分單元格的作法類似,SOLO v2 先將圖片等分為S×S個格子, 網(wǎng)絡(luò)的輸出分為兩個分支: 分類分支和語義分支.分類分支的結(jié)構(gòu)為S×S×C,其中,C為類別數(shù)量.語義分支結(jié)構(gòu)為H×W×S2,H和W為將語義輸出的高寬分辨率,一般為原圖像的1/4,S2為預(yù)測的最大實例個數(shù), 按照從上到下從左到右的方式與分類分支的網(wǎng)格一一對應(yīng)起來.目標(biāo)物體中心落入哪一個格子,分類分支對應(yīng)的位置以及語義分支對應(yīng)的通道就負(fù)責(zé)預(yù)測該目標(biāo).由其原理可知,該算法是基于位置同時預(yù)測類別和語義分割, 將兩者結(jié)果綜合實現(xiàn)實例分割.但與YOLO 算法一樣也存在分辨率如何確定的問題, 對尺度不同的目標(biāo)如何劃分網(wǎng)格才能實現(xiàn)最大的準(zhǔn)確率.
針對此,也引入了FPN 算法,劃分不同的網(wǎng)格大小,大的特征圖保留了較多的細(xì)節(jié),用于預(yù)測小的目標(biāo),小的特征圖具有更多的深層語義信息、更大的感受, 負(fù)責(zé)預(yù)測大的目標(biāo).此外, FPN 也可以一定程度上緩解目標(biāo)重疊的問題, 大小不同的目標(biāo)會被分配到不同尺度的FPN 輸出層中, 這點與FCOS 功能類似.由于預(yù)測的語義分支還與位置有一定的聯(lián)系,在預(yù)測語義的分支網(wǎng)絡(luò)中還增加了包含位置信息的坐標(biāo)值.
SOLO v2 在SOLO 的基礎(chǔ)上進行優(yōu)化, 其網(wǎng)格設(shè)計、正負(fù)樣本分配策略、坐標(biāo)位置、損失函數(shù)等操作完全繼承了SOLO,主要區(qū)別有以下兩點: 1)繼續(xù)優(yōu)化改進了語義分支, 提出了動態(tài)語義頭.2) 提出了矩陣非極大值抑制, 通過并行的方式實現(xiàn)更快的操作.
1.1.1 動態(tài)語義頭
SOLO 采用的是解耦頭的方式,分別預(yù)測X分支和Y分支,使用的時候再進行元素一一相乘.SOLO v2 繼續(xù)進行了優(yōu)化,提出了動態(tài)頭,語義預(yù)測分為卷積核分支和特征分支,如圖1 所示.
圖1 動態(tài)語義頭Fig.1 Dynamic segmentation head
由于語義輸出M=F*G中的M是冗余的,F是固定的,那么就可以直接去學(xué)習(xí)卷積核G,這樣操作有3 個優(yōu)點: 1)減少了模型參數(shù),增強了模型的擬合效果.2)卷積核的參數(shù)是與預(yù)測輸出直接相關(guān)的,適應(yīng)性更強.3)最終得到的S×S大小的語義輸出是基于位置的,這跟YOLO 的本質(zhì)思想是相符合的,這樣網(wǎng)絡(luò)的類別和語義都直接與位置相關(guān), 網(wǎng)絡(luò)結(jié)構(gòu)更加耦合.
1.1.2 矩陣非極大值抑制
極大值抑制是機器視覺中常用的算法, 具有計算量大、結(jié)構(gòu)臃腫的缺點.對非極大值抑制的優(yōu)化已經(jīng)有了不少工作,通常分為兩類,一是軟化非極大值抑制和自適應(yīng)非極大值抑制,主要優(yōu)化了精度;另一類是YOLACT[16]中的快速非極大值抑制,主要優(yōu)化了速度.SOLO v2 中提出了矩陣非極大值抑制,思路源于軟化非極大值抑制, 計算效率卻與快速非極大值抑制接近.該算法使用并行的矩陣運算能夠單次地實現(xiàn),作者的實驗中可以做到在不到1 ms 的時間里處理500 張語義圖片, 并且比快速非極大值抑制準(zhǔn)確率高.
可以看出,SOLO v2 結(jié)構(gòu)簡單明了,而且一步法實例分割方式具有高效的效率,在COCO 數(shù)據(jù)集上表現(xiàn)優(yōu)異, 同時準(zhǔn)確率很高, 因此, 本文使用SOLO v2 識別軍事目標(biāo).
對于微型無人機的目標(biāo)來說, 由于樣本制作困難,實際采集數(shù)量較為有限,是個典型的小樣本問題.圖2 是一種典型的軍事目標(biāo),常常布置在淺水區(qū)域,其下方為一個矩形的水泥墩,上面安裝一個鋼軌,由于水面漲潮起伏,導(dǎo)致部分或者完全被水淹沒,有時也會完全露出水面, 當(dāng)水質(zhì)較好時、被水淹沒較少時鋼軌和水泥墩也依然能分辨,如圖2(a),淹沒較多時或者水質(zhì)較差時只能分辨出水面鋼軌部分, 如圖2(b).其外形受到自然的腐蝕顏色和形狀會發(fā)生變化,拍攝角度和天氣不同光線也會復(fù)雜變化.由于攝像頭的遠(yuǎn)近不同和旋轉(zhuǎn)方向不同,尺度變化比較大,圖2(b) 尺寸較小, 圖2(c) 尺寸較大,目標(biāo)具有360°任意角度的特性.而且為了給視覺伺服提供較為方便的輸入, 識別水泥墩的時候僅將水泥墩上表面作為識別結(jié)果,側(cè)面的水泥為背景.這些問題給實例分割帶來了很多困難,導(dǎo)致分割效果不佳.
圖2 目標(biāo)典型樣例Fig.2 The typical target samples
1.2.1 數(shù)據(jù)增強
考慮到實際采集的樣本數(shù)量少和樣本的分布不能涵蓋各種復(fù)雜情況, 采用數(shù)據(jù)增強的方式增加樣本的變化,以提高網(wǎng)絡(luò)的魯棒性,防止過擬合.鑒于樣本在圖像中呈現(xiàn)旋轉(zhuǎn)特性, 對樣本進行了上下和左右翻轉(zhuǎn);由于目標(biāo)光線會變化,對圖片的HSV 數(shù)值進行一定范圍的更改,以模擬光線的變化;由于攝像頭在運動的過程中會發(fā)生抖動,導(dǎo)致圖片模糊,對圖片進行一定范圍的隨機模糊處理; 圖片的輸入分辨率為1 920×1 080,因此,所有的圖片都保持原高寬比例下采樣再進行識別,以防止發(fā)生扭曲.由于網(wǎng)絡(luò)進行了4 倍下采樣的處理,長寬的尺寸都要是4 倍整數(shù).
1.2.2 多尺度訓(xùn)練
盡管使用FPN 以識別不同大小的目標(biāo),但無人機視角下的目標(biāo)距離從上百米到幾厘米, 目標(biāo)在圖片中的尺寸變化范圍非常大, 尤其是小目標(biāo)識別有所不足,召回率不高.由于輸入圖片的尺寸對檢測模型的性能影響相當(dāng)大, 借助輸入更多尺度的圖片進行訓(xùn)練, 能夠在一定程度上提高檢測模型對物體大小變化的泛化性,且僅在測試階段引入多尺度,也不增加預(yù)測的計算量, 可享受大尺寸和多尺寸帶來的增益.
1.2.3 網(wǎng)絡(luò)優(yōu)化
從不同的角度觀察目標(biāo), 其形狀會產(chǎn)生多種形變,可變形卷積能夠很好地學(xué)習(xí)到發(fā)生形變的物體.盡管可變形卷積比普通卷積網(wǎng)絡(luò)能夠更適應(yīng)物體形變, 但也可能擴展到感興趣區(qū)域之外從而使得不相關(guān)的區(qū)域影響網(wǎng)絡(luò)的性能, 由此有學(xué)者提出改進版本的可變形卷積神經(jīng)網(wǎng)絡(luò)(DCN v2)[17],通過更有效的建模能力和訓(xùn)練使網(wǎng)絡(luò)關(guān)注更合適的目標(biāo)區(qū)域.通過實驗發(fā)現(xiàn), 使用更多的可變形卷積層能繼續(xù)增強整個網(wǎng)絡(luò)對于幾何形變的建模能力.增加一種新的調(diào)節(jié)機制,不但能夠調(diào)整接收輸入特征的位置,還能調(diào)節(jié)不同輸入特征的偏移幅度(重要性),特殊情況下,可以將重要性設(shè)置為0,用來表示不接收該特征,結(jié)果對應(yīng)采樣區(qū)域的圖像像素點顯著減少同時不影響模塊的輸出, 所以該調(diào)節(jié)機制能夠增加網(wǎng)絡(luò)模塊在新維度上去調(diào)節(jié)匹配區(qū)域, 從而將形變控制在一定區(qū)域內(nèi).本文將改進版本的可變形卷積引入到骨干網(wǎng)絡(luò)和FPN 網(wǎng)絡(luò)中,替換常規(guī)卷積.
批標(biāo)準(zhǔn)化層有4 個參數(shù),γ、β、滑動平均、滑動方差.其中γ、β 為學(xué)習(xí)參數(shù), 滑動平均、滑動方差為數(shù)據(jù)集統(tǒng)計均值與方差,不可學(xué)習(xí).在訓(xùn)練過程中,可能由于顯卡顯存的限制使得每張卡負(fù)責(zé)的批處理等于或略大于1, 若不進行卡間同步批標(biāo)準(zhǔn)化, 滑動平均、滑動方差參數(shù)會產(chǎn)生較大影響,造成批標(biāo)準(zhǔn)化層失效[18].同時,使用卡間同步的批標(biāo)準(zhǔn)化還增加了批處理的數(shù)量, 提高了批處理的效果.因此, 本文采用了卡間同步的批標(biāo)準(zhǔn)化處理.
對實際部署的軍事目標(biāo)采集了多種高度的照片,最遠(yuǎn)為100 m,逐漸降低其高度,最低距離目標(biāo)為20 cm,分別在多個角度多種光線下進行采集,選擇其中有代表性的920 張進行標(biāo)注, 同時從網(wǎng)上搜集同類別的軍事目標(biāo)圖片16 張,共936 張.訓(xùn)練樣本與測試樣本的比例為0.8:0.2,分別為750 張和187 張.
采用ResNet50 作為骨干網(wǎng)絡(luò), 采用FPN 進行多尺度輸出, 類別分支從小尺度到大尺度其單元格劃分個數(shù)分別為[40, 36, 24, 16, 12], 所負(fù)責(zé)的區(qū)域范圍分別為[[1, 48], [24, 96], [48, 192], [96, 384],[192, 1 024]].共使用4 個2 080Ti 顯卡, 每個顯卡的批數(shù)量為1, 優(yōu)化算法使用momentum, 基礎(chǔ)學(xué)習(xí)率為0.002 5,學(xué)習(xí)率衰減方式采用分段衰減(Piecewise Decay), 借助ImageNet 數(shù)據(jù)集下訓(xùn)練的骨干網(wǎng)絡(luò)參數(shù),并采用了線性預(yù)熱(Linear Warmup)在前期使學(xué)習(xí)率緩慢增長,以較好地利用預(yù)訓(xùn)練參數(shù).訓(xùn)練總的輪數(shù)為300 次.
使用改進的SOLO v2 進行實際測試,結(jié)果如圖3 所示,其中上方為原圖,下方為預(yù)測輸出.在圖3(a)中可以看到,盡管水泥墩已經(jīng)被水所淹沒,特征很不明顯, 但依然被網(wǎng)絡(luò)識別出來; 圖3(b) 的水較為渾濁, 由于距離目標(biāo)較遠(yuǎn), 目標(biāo)很小, 也較為精確地識別出其區(qū)域.
圖3 本文算法預(yù)測結(jié)果Fig.3 The results by proposed algorithm
為進一步驗證本方法的魯棒性, 從網(wǎng)上下載一些圖片,預(yù)測結(jié)果如圖4 所示,這些圖片分辨率較低,拍攝角度為平視,與訓(xùn)練樣本的的俯視角度不同,而且其表面已經(jīng)被貝殼覆蓋,發(fā)生了很嚴(yán)重的氧化,圖4(b)還是比較嚴(yán)重的逆光.但算法仍然檢測到了許多目標(biāo),可見該算法具有較強的魯棒性.
圖4 網(wǎng)絡(luò)照片預(yù)測結(jié)果Fig.4 The results of network pictures
為了驗證改進策略的有效性, 與原版SOLO v2進行了對比, 參數(shù)設(shè)置相同, 試驗結(jié)果如表1 所示.可以看到, 在準(zhǔn)確率和召回率兩方面本文改進算法都有所提高,其中準(zhǔn)確率提高了約9 個百分點,效果明顯.
表1 改進策略與原版對比Table 1 Performance comparison of improved algorithm and the origin
圖5 中上方為改進算法的結(jié)果, 下方為原版SOLO v2 的預(yù)測結(jié)果, 可以看到盡管原版的算法也能預(yù)測出特征較為明顯的目標(biāo),但在圖5(a)中被淹沒的鋼軌特征不夠明顯時, 改進算法依然檢測出來;圖5(b)中水泥墩被淹沒,原版算法沒有檢測出來,但改進算法仍然精確檢測出來; 圖5(c)中被水淹沒的水泥墩雖然兩種算法都檢測了出來, 但明顯改進算法的檢測結(jié)果更加準(zhǔn)確.可見,這些改進策略有效提高了該場景下實例分割的性能, 尤其是目標(biāo)特征不夠明顯的情況下的檢出率.
圖5 改進算法與原版預(yù)測結(jié)果對比Fig.5 The comparison between the improved algorithm and the origin
本文針對微型無人機感知環(huán)境時對目標(biāo)分割不精確的問題, 引入了性能和效率都較優(yōu)異的SOLO v2 實例分割算法.針對軍事目標(biāo)的特點,從訓(xùn)練樣本少、旋轉(zhuǎn)、尺度變化大等方面分別進行改進,通過增加多種數(shù)據(jù)增強、多尺度訓(xùn)練和優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)進行改進, 試驗結(jié)果表明改進算法能夠較精確提取目標(biāo)區(qū)域, 在目標(biāo)較小或者特征不明顯的時候也有不錯的表現(xiàn),能夠滿足實際需要.該算法不僅具有較高的軍事價值, 也具有針對無人機目標(biāo)分割和視覺伺服的普適性,并具有較高的民用經(jīng)濟價值.