靳曉芳,岳 鼎,劉金羽
(中國傳媒大學, 北京 100024)
隨著武器裝備技術發展,無人機作戰在現代化戰爭中的效果日益凸顯,而偵察任務是無人機作戰的重要組成。然而,無人機飛控訓練受到天氣、場地、設備等因素的制約,成本高、效率低,存在安全隱患,并且無人機傳輸視頻信號依賴Wi-Fi網絡,目標檢測畫面與真實畫面存在明顯傳輸時延,使得偵察訓練限制較多且條件苛刻。虛擬訓練系統具有很強的安全性、便捷性、實時性,和兼容性,可滿足無人機智能偵察訓練需要[1]。
目前面向軍事的虛擬訓練系統傾向于模擬場景,戰斗仿真,針對智能算法嵌入應用的相關工作較少。同時無人機實現實時目標檢測存在以下問題,一方面基于嵌入式設備的無人機視頻傳輸時延低,但是由于散熱、體積、計算能力等問題,目標檢測速度最高僅達到8.81 fps[2],另一方面基于后端算法處理的無人機圖傳也有500 ms左右視頻傳輸時延[3]。本系統在虛擬場景中應用目標檢測算法,以消除傳輸時延,提升檢測速度。
YOLO(You Only Look Once)算法在2015年由Redmon[4]提出,是一種單階段目標檢測框架。在此基礎上改進主干網絡、更改訓練方法、引入殘差結構逐漸發展出YOLOv2[5]、YOLOv3[6]等YOLO系列檢測算法。2018年YOLOv3算法由Joseph等[7]提出,和之前YOLO系列算法相比一定程度上提升了檢測速度和檢測精度,但網絡結構復雜,模型體積龐大。YOLOv3-tiny在YOLOv3基礎上簡化了網絡結構,體積小,實時性高。
本文基于YOLOv3-tiny算法,通過Unity3D camera組件渲染改進了圖像傳輸方式,采用Blender、Unity3D等軟件進行無人機智能偵察虛擬訓練系統研究。
無人機智能偵察虛擬訓練系統主要應用于現代化戰爭背景下,模擬無人機飛控,并對車輛、人員等目標進行目標檢測的任務[8]。基于該任務,虛擬訓練系統的功能如圖1所示。

圖1 系統功能框圖
本系統根據無人機偵察作戰的需要將分為以下4個主要功能:靜態展示、飛控模擬、目標檢測,和結果展示。
靜態展示通過對無人機以及場景的三維建模,展示無人機的具體構造以及作戰場景的具體環境,便于訓練人員掌握無人機作戰基本情況,加深操作理解。
飛控模擬通過鍵位設計,將四旋翼無人機的垂直、翻滾、俯仰、偏航等動作囊括在8個按鍵中,用按鍵模擬無人機搖桿控制[9]。
目標檢測是智能偵察系統的核心,通過控制虛擬場景中的無人機飛抵目的地采集圖像,經Unity3D camera組件渲染圖像和YOLOv3-tiny算法處理完成對車輛、人員等物體的檢測[10]。
結果展示將實時畫面檢測出的物體添加上預測框、預測類別、置信度,同時在console控制臺中輸出算法時延。并且飛控模擬、目標檢測、結果展示可同時進行,便于偵察結果實時分析。
無人機智能偵察系統基于Unity3D、Blender軟件和OpenCV For Unity插件,完成了三維立體建模、動畫制作、場景搭建、視頻流讀取、算法搭載,和生成發布軟件等步驟,系統研發流程圖如圖2所示。

圖2 系統研發流程圖
三維建模主要應用Blender軟件。采用多邊形建模方法,通過對模型點、線、面的調節,建造出初始的Low Ploy低面模型。再通過環線切割、矩形倒角、曲面建模等功能建造出High Ploy高面數模。
本系統應用真實貼圖對模型進行材質編輯。貼圖經過Photoshop處理后導入到Blender中,選擇智能UV投射,將二維貼圖覆蓋到三維模型上,再通過著色器調整模型顏色和光澤。
系統啟用GPU進行模型渲染并且使用無偏路徑跟蹤器引擎Cycles,既可以減少渲染時間又可以得到真實的渲染效果,如圖3所示。

圖3 模型渲染圖
Blender支持多種模型格式輸出。將模型全部選中導出為fbx格式并且導入到Unity3D軟件的項目文件夾,后續進行場景搭建時,可直接調出模型到場景中。
在Blender軟件中物體建模和動畫制作可以同時進行。本系統運行時主要播放無人機動畫,分為無人機飛控動畫和旋翼動畫兩部分。
飛控動畫包含了無人機進行懸停、俯仰、偏航、滾動時的動畫。在時間軸面板上給每個動作都打上相應的關鍵幀,每隔數幀就調整模型的運動軌跡,Blender可以自動把關鍵幀補齊,方便動畫的制作。動畫播放時,Unity3D對鍵盤進行按鍵檢測,判斷無人機的飛行狀態并播放相應的飛控動畫,該步驟由動畫狀態機來決定,如圖4所示。

圖4 動畫狀態機面板
旋翼動畫模擬真實物理效果,處于懸停狀態時旋翼轉速慢,處于加速度狀態時,旋翼轉速快。通過掛載C#腳本完成設定。
系統以城市街道為主題環境,使用三維建模和材質貼圖來搭建城市場景,主要分為對城市道路的模擬和街道房屋的搭建。
城市道路的模擬采用平面拼接的方式。在Unity3D中新建平面,將制作好的道路貼圖附在平面上,將平面復制全選,頂點對齊后,達到道路鋪設的效果。
搭建街道房屋混合使用了3D建模和2D貼圖技術。近處的房屋從項目文件夾中導出預制模型,并按照頂點吸附在道路兩側,遠處的房屋則使用平面貼圖填補上天際線的空白[11]。最后添加車輛和人員模型,完成城市場景搭建。如此,不僅達到了模擬城市街道的效果,還減輕了場景渲染的負荷。
為更好地觀察無人機飛行姿態和實時位置,在虛擬訓練系統中采用第三人稱視角攝像頭。訓練時,控制虛擬場景中的無人機飛行采集實時畫面,通過Unity3D的camera組件將虛擬場景中采集的畫面實時渲染為RenderTexture圖像格式[12]。
其中所拍攝的圖像需要經過多次格式轉換才能在Unity3D界面和OpenCV函數中傳遞。Camera組件所拍攝畫面是RenderTexture格式需要先轉換為Texture2D格式,方可通過OpenCV For Unity插件的內置函數轉換為Mat格式,使用Mat格式進行矩陣運算、圖像處理后,再逆變換為Texture2D格式返回Unity3D屏幕。
系統對車輛、人員等物體進行實時畫面檢測,對算法速度要求較高,因此選擇YOLOv3-tiny目標檢測算法。YOLOv3-tiny是YOLOv3的輕量化版本,在后者基礎上去掉了一些特征層,并且在輸出結果上只保留了2個預測分支,網絡復雜度更低,目標檢測速度更快[13]。
YOLOv3-tiny網絡一共有23層,分為卷積層、池化層、采樣層、路由層、輸出層5種網絡層。利用卷積層對檢測目標進行特征提取,在每個卷積層后連接池化層,最終提取出26*26和13*13兩種分辨率特征圖,前者對較小目標進行特征提取,后者對較大目標特征提取,減少了目標漏檢,達到理想的檢測效果[14],其網絡結構如圖5所示。

圖5 YOLOv3-tiny網絡結構圖
在Unity3D中搭載已經訓練好的YOLOv3-tiny模型,需要YOLOv3-tiny.weight模型權重文件、YOLOv3-tiny.cfg模型網絡配置文件、.names數據集類別文件這3種文件。通過修改模型網絡配置文件可以替換不同的目標檢測算法,同時可以訓練本地數據集并更改模型權重文件和數據集類別文件對指定類別進行目標檢測。在C#腳本中設置好實時傳輸畫面的攝像機(Main Camera),以及算法處理后的渲染目標(Raw Image),便可以將視頻流畫面上傳,經過圖像處理后將目標檢測結果返回到Unity3D屏幕中。


(1)

(2)
無人機實時目標檢測時,將每幀圖像對車輛和人員的檢測置信度輸出繪制成圖6的置信度折線圖。在無人機飛行過程中,算法實時目標檢測置信度保持在80%以上。在console控制臺中返回算法檢測速率,并繪制為檢測速率折線圖,如圖7所示。算法實時檢測速率穩定在25 fps。

圖6 置信度折線圖

圖7 檢測速率折線圖
本系統涉及大量三維模型和腳本文件,為保證系統運行流暢,將系統場景和依賴文件打包導出成可執行文件(.exe格式)[17]。無人機進行智能偵察虛擬訓練時,點擊快捷圖標便可直接進入系統。
為驗證本虛擬訓練系統是否滿足無人機智能偵察訓練要求,我們邀請了選修過無人機課程的25名測試者對本系統的各個功能進行測試,主要的測試指標為畫面流暢性、飛控仿真性、檢測準確性,分為良好、一般、較差3個等級[18-19]。
本文中實驗均在Windows 10操作系統的PC機上進行,Unity3D版本為2020.3.31。
進行虛擬訓練測試時,需要在系統中控制無人機飛抵指定作戰區域,對camera組件渲染的圖像進行目標檢測來完成智能偵察任務。
在虛擬場景中,通過鍵盤按鍵模擬無人機飛控。通過俯仰實現前進后退、滾動實現左右移動、偏航實現左轉右轉,如圖8所示。

圖8 無人機模型飛控模擬
對畫面內容進行目標檢測時,通過調整置信度閾值和NMS閾值可以控制錨框的數量,過濾掉置信度小的檢測結果,避免冗余,具體目標檢測結果如圖9所示。

圖9 目標檢測結果圖
完成虛擬訓練測試后,與測試者交流感受并統計出測試結果,如表1所示。

表1 系統測試結果
實驗表明無人機智能偵察虛擬訓練系統能夠流暢地完成無人機飛行控制模擬和對目標的實時檢測。客觀算法上,由3.5算法搭載結果,目標檢測置信度達80%,檢測速度達25 fps。主觀評價上,畫面流暢性評價良好比例達88%,說明檢測速度滿足了人眼感知幀率,畫面在測試者眼中無明顯卡頓;飛控仿真性評價良好比例達92%,絕大部分測試者認為按鍵模擬的無人機飛控能達到仿真效果;檢測準確性評價良好比例為96%,表明偵察訓練時對車輛和人員的目標檢測結果基本正確。證明了本文提出在虛擬場景中應用目標檢測算法是有效的,滿足了飛控模擬和算法檢測訓練。測試者也提出系統在長時間運行后,畫面會有少許遲鈍感,后續需要對圖像傳輸做進一步優化。
1) 提出了基于Unity3D平臺與YOLOv3-tiny檢測算法的無人機智能偵察虛擬訓練系統,在模擬無人機飛控的基礎上,對車輛和人員進行實時目標檢測,有效降低了訓練成本、提高了訓練效率、避免了訓練風險。
2) 用Unity3D camera組件渲染代替無人機攝像頭進行數據傳輸,視頻流數據在本機進行采集和處理,消除了圖像傳輸時延。
3) 在虛擬訓練系統上搭載YOLOv3-tiny目標檢測算法后,系統測試實驗表面,在模擬飛控條件下,算法也保持著較高檢測速度和置信度,評價指標良好,達到了預期訓練效果,為其他虛擬系統設計以及算法應用提供了參考。