薛遠(yuǎn)奎 寇世豪 詹福宇
(中電科特種飛機系統(tǒng)工程有限公司 成都 611731)
小型無人機具有成本低、部署靈活、攜帶方便、隱蔽性好等特點,在目標(biāo)偵察與打擊作戰(zhàn)任務(wù)中能夠起到重要作用,但當(dāng)前小型無人機智能化水平還較低,根據(jù)無人機自主能力等級(Autonomous Capability Level,ACL)劃分,目前大都處于1~2 級ACL水平,嚴(yán)重依賴人工實時操控,不僅需要投入大量成本和時間進行人員飛行操控培訓(xùn),且作戰(zhàn)時容易因頻譜干擾、遮擋等問題導(dǎo)致圖像斷開和無人機控制丟失。如果無人機具備目標(biāo)自動發(fā)現(xiàn)和自主攻擊能力,將大大減少對操控人員的依賴,提升復(fù)雜環(huán)境下作戰(zhàn)效率和打擊成功率。
近年來,隨著人工智能技術(shù)的不斷發(fā)展,使無人機自主攻擊成為可能,特別在目標(biāo)檢測、目標(biāo)跟蹤兩個關(guān)鍵技術(shù)上,基于深度學(xué)習(xí)技術(shù)搭建的網(wǎng)絡(luò)模型已經(jīng)能夠達(dá)到人類水平。當(dāng)前國內(nèi)對小型自主攻擊無人機也已經(jīng)展開很多研究,在文獻(xiàn)[1]中研究了攻擊無人機體系結(jié)構(gòu)和未來無人機發(fā)展趨勢,在文獻(xiàn)[2~3]中主要研究了無人機自主智能化系統(tǒng)以及引導(dǎo)攻擊技術(shù),在文獻(xiàn)[5]中主要基于灰色關(guān)聯(lián)和改進Hopfield 神經(jīng)網(wǎng)絡(luò)等方法研究了對地攻擊無人機能力評價,但這些文章大都是無人機自主攻擊理論相關(guān)的研究,或只進行了理論仿真[5~6],并沒有搭建無人機飛行平臺進行實際飛行測試,缺少架構(gòu)與系統(tǒng)性描述。
本文以瑞芯微SoC AI芯片為核心,設(shè)計并開發(fā)了AI處理板卡,其具備成本低、體積小、功耗低、重量輕的特點,作為機載圖像和任務(wù)邏輯處理單元,解決了小型無人機負(fù)載能力有限但對高性能計算的需求問題。在模型選擇和部署方面,充分調(diào)研了當(dāng)前主流的模型,并結(jié)合機載應(yīng)用需求,選擇了YOLO-X作為目標(biāo)檢測模型,STARK作為目標(biāo)跟蹤模型,并經(jīng)過模型優(yōu)化和移植,最終部署在AI 板卡上。最后設(shè)計了自主攻擊控制流程和算法,搭建了一套小型四旋翼無人機飛行平臺并進行了實際飛行驗證。
小型自主攻擊無人機具有自殺式、不可回收的特點,與大型復(fù)雜的無人機裝備不同,自殺式無人機沒有維護、保養(yǎng)需求,對系統(tǒng)可靠性要求也較低,但對成本非常敏感。隨著智能手機、智能監(jiān)控攝像頭等終端產(chǎn)品的廣泛應(yīng)用,在民用領(lǐng)域涌現(xiàn)了大量基于SoC 技術(shù)的AI 計算芯片,例如海思麒麟系列,瑞芯微rk 和rv 系列,寒武紀(jì)Cambricon 等,這些芯片不僅集成了CPU、GPU,而且集成了NPU 計算單元,可實現(xiàn)對神經(jīng)網(wǎng)絡(luò)模型的加速處理,并且具備豐富的外設(shè)接口能夠方便與吊艙、飛控等無人機機載設(shè)備進行連接。
本文選擇了瑞芯微RV1126芯片作為計算處理核心,其具備2.0Tops算力,支持INT8和INT16算子運算,添加了2G 片上Flash 作為內(nèi)存,同時設(shè)計了對外接口包括有:1 個網(wǎng)口、2 個串口,最終設(shè)計的AI板卡如圖1所示。
圖1 AI板卡硬件實物
發(fā)現(xiàn)并識別目標(biāo)是無人機實現(xiàn)自主攻擊的先決條件,在無人機啟動自主攻擊前,由于無人機在空中,其視野內(nèi)的目標(biāo)一般因為距離較遠(yuǎn)而所占像素尺寸較小,因此需要高精度小目標(biāo)的檢測技術(shù)。目前基于深度學(xué)習(xí)的目標(biāo)檢測算法,主要分為兩類:一類是以YOLO 系列[7],SSD[8]系列為代表的一階段(one-stage)算法,一類是以RCNN[9]以及Fast-RCNN[10]為代表的二階段(two-stage)算法。就二階段方法來說,檢測過程分為目標(biāo)候選區(qū)域生成和分類兩個階段,這類方法具備較高的檢測精度,但犧牲了檢測效率,且這類模型較為“笨重”,無法在小尺寸的AI 板卡上部署,故本文采用一階段YOLO 模型,可實現(xiàn)端到端的檢測,即輸入圖像后可以直接輸出目標(biāo)位置和類別置信度,能夠在檢測精度和處理速度上實現(xiàn)良好的平衡,特別在對小目標(biāo)檢測方面有很大的優(yōu)勢。當(dāng)前YOLO 模型家族已經(jīng)發(fā)展的非常龐大,包括了YOLO、YOLOv2、YOLOv3、YOLOv4、YOLOv5 等,國內(nèi)也基于YOLO 發(fā)展出了PPYOLO 和YOLOX,綜合考慮檢測速度、精度以及模型部署方便性,選擇了YOLO-X作為檢測模型,并采用了模型剪枝和數(shù)據(jù)量化技術(shù)對模型進行了優(yōu)化,進一步提升了模型性能。
對YOLO-X 模型剪枝處理是基于權(quán)重和神經(jīng)元的重要性評估,本文采用L1、L2范數(shù)來評估權(quán)重的重要性,對權(quán)重或者神經(jīng)元的重要性進行排序后移除不重要的權(quán)重或神經(jīng)元;并使用移除前模型訓(xùn)練數(shù)據(jù)更新并得到新的模型參數(shù);為了使處理不對模型性能造成過大損傷,每次剪枝的權(quán)重或神經(jīng)元數(shù)量不宜過多,因此這個過程需要迭代,直到獲得滿意模型為止。
由于RV1126 芯片對應(yīng)的推理框架只能處理int8 類型數(shù)據(jù),因此采用int8 量化技術(shù)將模型推理的數(shù)據(jù)類型從float32 映射為int8,這樣推理過程中的計算量就變成了之前的1/4。
識別目標(biāo)并選定攻擊目標(biāo)后,為了確保攻擊連續(xù)性,需要對目標(biāo)進行穩(wěn)定跟蹤,以避免同類目標(biāo)的干擾。對比當(dāng)前各類目標(biāo)跟蹤算法,本文選擇了基于Transformer 架構(gòu)的STARK[11]模型,其可以同時捕捉視頻中的時域信息和空間域信息并作為Transformer 編碼器輸入,具有很高的魯棒性,另外其具備端到端的處理能力,將目標(biāo)跟蹤建模成一個直接的邊界框預(yù)測問題,避免了復(fù)雜且對超參敏感的后處理。
原始的STARK 模型在RV1126 芯片部署后只有10 幀左右的運行幀率,并不滿足目標(biāo)攻擊中對實時性的需求,需要對模型進行輕量化處理。首先將訓(xùn)練好的模型權(quán)重導(dǎo)出為onnx 格式文件,onnx定義了可擴展的計算圖模型,它使用graph 的序列化格式,不僅僅存儲了神經(jīng)網(wǎng)絡(luò)模型的權(quán)重,同時也存儲了模型的結(jié)構(gòu)信息以及網(wǎng)絡(luò)中每一層的輸入輸出和一些其它的輔助信息。然后通過腳本將onnx文件轉(zhuǎn)換為rknn格式的模型,最后使用RKNN推理引擎編寫數(shù)據(jù)預(yù)處理、模型推理和數(shù)據(jù)后處理部分的代碼實現(xiàn)模型的推理工作。將模型部署到AI 計算板卡后,經(jīng)過實際測試,模型的推理速度能夠穩(wěn)定在25fps~30fps。
本文根據(jù)需求搭建了四旋翼無人機飛行平臺,其設(shè)計起飛重量為4kg,負(fù)載為600g,軸距550mm,使用TMotor 4006 動力電機和15 寸碳纖槳,實際續(xù)航時間為26min。無人機平臺如圖2所示。
圖2 無人機飛行平臺
為了獲取外界圖像,本文選擇了一款微型三軸吊艙,如圖3所示,其包括一個可見光相機,焦距為2.8mm,可以獲取720p@30fps 的視頻圖像,并且提供一個網(wǎng)口,用于輸出rtsp視頻流,格式為H.264編碼。
圖3 光電吊艙
為了建立機載端和地面端的通信連接,獲取無人機視頻圖像和飛行數(shù)據(jù),實現(xiàn)對無人機的遠(yuǎn)程操控,本文選用了一款可以支持TCP/IP 三層通信協(xié)議的圖數(shù)一體數(shù)據(jù)鏈,如圖4所示,其提供一個網(wǎng)口用于機載和地面網(wǎng)絡(luò)設(shè)備的接入,工作時,機載端數(shù)據(jù)鏈和地面端數(shù)據(jù)鏈自動建立連接并組建局域網(wǎng)。
圖4 數(shù)據(jù)鏈
無人機硬件組成如表1所示。
表1 無人機硬件組成
整套無人機系統(tǒng)的硬件連接如圖5所示。
圖5 硬件連接框圖
無人機軟件系統(tǒng)框圖如圖6所示,分為機載端和地面端兩個部分。機載端包括4 個功能模塊:數(shù)據(jù)信息獲取模塊、控制模塊、目標(biāo)檢測模塊和目標(biāo)跟蹤模塊。數(shù)據(jù)信息獲取模塊作為整個系統(tǒng)數(shù)據(jù)交互的中心,主要用于采集傳感器和載荷數(shù)據(jù)如GPS位置、姿態(tài)角、吊艙圖像等,通過消息發(fā)布的方式傳遞給其余模塊;目標(biāo)檢測模塊主要運行目標(biāo)檢測算法,處理吊艙圖像并發(fā)布檢測結(jié)果,目標(biāo)跟蹤模塊主要運行目標(biāo)跟蹤算法,以目標(biāo)檢測結(jié)果為初始條件,持續(xù)跟蹤目標(biāo);控制模塊實現(xiàn)了整個自主攻擊任務(wù)流程和基于跟蹤結(jié)果的飛行控制。
圖6 軟件系統(tǒng)框圖
在充分考慮了戰(zhàn)場環(huán)境下裝備的便攜性、可操作性基礎(chǔ)上,本文基于手持終端(Android 設(shè)備)設(shè)計了地面控制站(Ground Control Station,GCS),如圖7所示。GCS 能夠獲取并實時顯示無人機飛行信息如飛行速度、高度、航向、飛行距離等,能夠顯示吊艙圖像和俯仰角、方位角等狀態(tài)信息。為了實現(xiàn)對無人機的操控,我們添加了飛行控制功能如起飛、降落、選擇攻擊目標(biāo)、設(shè)置攻擊目標(biāo)優(yōu)先級、控制無人機飛行、控制吊艙角度等。
圖7 地面站軟件界面
為了進行目標(biāo)打擊,我們需要首先保證吊艙能夠?qū)崟r鎖定目標(biāo),即需要實時通過控制吊艙角度使目標(biāo)始終處于圖像中心[12]。由目標(biāo)檢測算法與目標(biāo)跟蹤算法可以得到目標(biāo)框中心點所在的圖像坐標(biāo)(u,v),圖像像素大小為(H,W),吊艙相機橫向視場角和縱向視場角分別為fov?和fovv,那么可以得到吊艙期望的俯仰角偏轉(zhuǎn)角度為
吊艙期望的方位角偏轉(zhuǎn)角度為
則對吊艙進行角度控制時只需令俯仰角和方位角分別為
首先遵循右手法則定義無人機坐標(biāo)系{XB,YB,ZB},其中其X 軸方向沿著機頭朝向,Y 軸方向沿著機身右側(cè)朝向,相機坐標(biāo)系{XC,YC,ZC},其中X 軸方向沿著相機鏡頭朝向,Y 軸方向沿著相機右側(cè)朝向,目標(biāo)坐標(biāo)系{XT,YT,ZT},其中X 軸方向沿著無人機與目標(biāo)連線方向,Y 軸方向處于水平面并于X軸垂直[13]。
則機體坐標(biāo)系下無人機的攻擊速度為
得到機體坐標(biāo)系下的期望攻擊速度后,即可生成速度控制指令消息并發(fā)送至飛控,由飛控自動進行飛行控制。
由于軍事目標(biāo)數(shù)據(jù)集涉及軍事機密,沒有開源項目,本文根據(jù)自主攻擊應(yīng)用場景中無人機的運動變化和視角切換,基于UAV123、visdrone[15]開源數(shù)據(jù)集進行數(shù)據(jù)抽取,選擇相似度接近的圖片、視頻進行模型訓(xùn)練。
共抽取了2500 張圖片用于目標(biāo)檢測數(shù)據(jù)集制作,包括人、車輛兩個類別,其中訓(xùn)練集包含2000張圖片,驗證集包含500 張圖片。經(jīng)量化處理后的模型檢測精度mAP=26.4%,AP50=50.1%,APSmall=14.6%,APLarge=66.9%。
將模型部署到AI 板卡上并在真實環(huán)境下測試,模型的推理性能夠達(dá)25fps左右。
在外場實際測試效果如圖8所示。
圖8 目標(biāo)識別測試效果
本文選取了單目標(biāo)跟蹤視頻,并進行了訓(xùn)練,實際測試后,EAO=0.48,處理速度可達(dá)28fps。
本文在自貢鳳鳴機場電科特飛生產(chǎn)園區(qū)進行了飛行驗證,驗證場地內(nèi)道路正中央放置了軍事假人,兩側(cè)有車輛,無人機起飛后可自動識別目標(biāo),可以根據(jù)預(yù)先設(shè)定的模式自動選擇優(yōu)先級最高的目標(biāo)進行自主攻擊,同樣可以通過手動選擇目標(biāo)進行自主攻擊。
當(dāng)目標(biāo)選定后,無人機發(fā)動直線攻擊,第一視角顯示的攻擊過程如圖9所示。
圖9 目標(biāo)跟蹤效果
在本文中,我們詳細(xì)給出了自主攻擊無人機系統(tǒng)的設(shè)計方案,搭建了飛行平臺并且進行了實際飛行測試。我們雖然采用了大量深度學(xué)習(xí)技術(shù)例如目標(biāo)識別與跟蹤,但距離全自主智能無人機這一目標(biāo)還非常遠(yuǎn),這是因為目前的深度學(xué)習(xí)技術(shù)在自主決策上還遠(yuǎn)遠(yuǎn)無法與人類相媲美,只能在特定功能上替代人類。這也是我們下一步的努力方向,將更多自主決策的功能交給計算機來實現(xiàn),從而實現(xiàn)真正智能作戰(zhàn)無人機。