饒穎露,邢金昊,張 恒,馬曉靜,馬思樂
(山東大學 海洋研究院,山東 青島 266237)
隨著無人機行業(yè)的發(fā)展,無人機應用產生了越來越多的新需求,例如快遞自動定點投送物品、自動定點檢查輸電線路異常等。這些需求對無人機自動精準降落技術提出了新的挑戰(zhàn)。無人機自動精準降落是飛行任務中最關鍵的階段之一,實現(xiàn)無人機精確著陸對完成飛行任務、保障飛行安全具有重要意義。
無人機自主精確著陸主要有2 種方法:視覺處理著陸和衛(wèi)星導航著陸[1-3]。衛(wèi)星導航著陸適合長時間飛行任務但其容易受環(huán)境影響,且精度較低,需要多種復雜傳感器配合[4]。此外,衛(wèi)星導航在GPS/GNSS 拒絕區(qū)域系統(tǒng)下將無法工作,因此該應用一般情況下適合作為二次支撐。
無人機視覺引導降落只需要搭載攝像頭這一單一傳感器作業(yè),易于與多種無人機系統(tǒng)集成,結合圖像算法可以實現(xiàn)高精度實時降落。無人機視覺自主精準降落中常用的檢測方法[5-7]有圖像匹配法[8]、輪廓檢測法[9]、濾波算法[10-11]等。李會敏等[12]采用雙目視覺探測無人機特征點并進行特征立體匹配以計算無人機位置,該方法實時性好,但僅能在仿真環(huán)境下使用,實際使用時還需要考慮復雜環(huán)境下無人機降落的匹配效果。高嘉瑜等[13]采用AprilTag 二維碼引導無人機著陸搭建虛擬場景仿真,該方法參數(shù)誤差低,但容易受到環(huán)境變化的影響。洪亮等[14]采用模糊預測同步視覺預測數(shù)據(jù),提高卡爾曼濾波對無人機位姿估計的實時性,速度快但精度較低。以上傳統(tǒng)的圖像處理算法性能受成像環(huán)境的影響很大,很難正確提取所需目標,在面對光照變換、尺度變換、遮擋、復雜背景等環(huán)境變換問題時,算法性能會顯著下降,難以滿足無人機自主精準降落的實際需求。因此,考慮將適用性更好、泛化能力更強的深度學習方法引入到無人機視覺自主精準降落的過程中,進一步提高速度,解決環(huán)境干擾問題。
無人機的自主精準降落算法需要移植到無人機板載平臺運行,但由于板載平臺的計算能力和內存資源有限,當把圖像算法模型應用于嵌入式平臺時,目標檢測速度會明顯下降。此外,降落過程中容易受到風力等外界因素干擾,因此要求模型檢測速度快,能夠實時更新降落坐標。傳統(tǒng)圖像處理方法泛化能力差,難以應對降落過程中各種環(huán)境干擾。
針對上述問題,本文通過改進YOLOV3 網(wǎng)絡,引入可分離卷積和注意力機制,將深度學習引入無人機自主精準降落,設計一種針對無人機板載系統(tǒng)的輕量化深度學習目標檢測模型Onboard-YOLO,并對其性能進行評估實驗,以實現(xiàn)無人機板載端實時準確的自主精準降落,應對降落過程中的復雜環(huán)境變化問題。
YOLOV3 網(wǎng)絡結構由特征提取網(wǎng)絡DarkNet53和多尺度分類回歸網(wǎng)絡組成,Onboard-YOLO 是基于YOLOV3 網(wǎng)絡提出的適用于無人機板載處理器的輕量級高精度實時檢測網(wǎng)絡。YOLOV3 采用的DarkNet53 特征提取網(wǎng)絡參數(shù)量較大,不適用于板載處理器,因此需要對特征提取網(wǎng)絡進行改進。
簡化特征提取網(wǎng)絡可以有效地提高檢測速度,但也會帶來無法提取高層次語義特征的問題,使檢測精度無法滿足實際需求。因此,本文主要對特征提取網(wǎng)絡和多尺度回歸網(wǎng)絡進行改進。
Tiny-YOLOV3[17]是YOLOV3 的簡化版本,其特征提取網(wǎng)絡結構非常簡單,只有2 個尺度,7 個卷積層和6 個池化層,雖然有效提高了計算速度,但難以實現(xiàn)高精度的目標檢測。但是,可以參考Tiny-YOLOV3 的設計思路,將YOLOV3 的3 個尺度簡化為2 個尺度,一方面可以保證語義信息和分辨率信息的有效提取,另一方面也可以提高檢測速度。
此外,采用MobileNets[20]代替YOLOV3 的骨干網(wǎng)絡,可提高骨干網(wǎng)絡特征提取能力,采用可分離卷積可有效減少參數(shù)數(shù)量和計算復雜度。深度可分離卷積將傳統(tǒng)卷積分成了深度卷積和點對點卷積,如圖1 所示。
圖1 可分離卷積模型Fig.1 Separable convolution model
假設輸入圖片尺寸是DF*DF*M,標準卷積尺寸是DK*DK*M*N,M是通道數(shù),N是卷積核數(shù)。當采用標準卷積核時,輸出尺寸是DF*DF*N。計算量是DK*DK*M*N*DF*DF。采用可分離卷積后為DK*DK*M*DF*DF+M*N*DF*DF,可分離卷積和傳統(tǒng)卷積的計算量對比如式(1)所示:
在執(zhí)行深度卷積時,每個卷積內核僅關注單個通道信息,而在逐點卷積中,每個卷積內核可以組合來自多個通道的信息,使用深度可分離卷積代替?zhèn)鹘y(tǒng)卷積可以有效地減少計算量并優(yōu)化模型大小。另一方面,它可以確保模型的深度增加并且減小復雜度,從而有效地平衡精度和操作速度。
經強度計算分析、典型件試驗以及車體靜強度試驗,驗證了復合材料車體承載結構的可靠性,其滿足地鐵車體各項性能指標要求。同時,車體各項性能得到較大提升:車體質量較同類地鐵金屬車體減少約35%;車體抗疲勞和耐腐蝕性能得到提升,且使用壽命不低于30 a;車體隔熱性能優(yōu)異,能承擔車輛防寒材一半以上性能;車體隔聲性能優(yōu)異,達到車輛隔聲要求的70%以上;車體振動的固有頻率較同類金屬車體提高18%以上;車體尺寸精度和外觀質量優(yōu)于傳統(tǒng)金屬車體。
通過SE-Block[21]引入注意力機制使其能自動學習每個通道特征的權重,該模塊的核心思想是學習特征權重,增加有效特征權重,從而增強網(wǎng)絡的特征提取能力,并在需要較少額外計算成本的情況下,顯著改善網(wǎng)絡結構的性能。注意力機制模型基本結構如圖2 所示。
圖2 注意力機制模型Fig.2 Attention mechanism model
SE-Block 首先通過標準卷積將X??H'×W'×C'轉 為U??H×W×C。然后通過壓縮、權重激活、權重分配得到學習后的網(wǎng)絡。壓縮操作Fsq壓縮全局空間信息以獲得單個通道描述符,使用全局平均池化生成每個通道的統(tǒng)計信息Zc。全局平均池化通過壓縮空間特征圖得以實現(xiàn),計算公式如式(2)所示:
其中:H×W描述輸入特征的大??;Uc(i,j)表示相應特征圖中相應位置的特征值。激活操作主要通過2 個全連接層完成。第1 層實現(xiàn)特征圖的壓縮并減少計算量。將ReLU 層添加到2 個全連接層中,使通道之間的非線性關系得以學習。第2 個全連接層將特征圖恢復到原始通道數(shù),并通過Sigmoid 函數(shù)進行歸一化以獲得最終特征圖重要性描述因子S。計算公式如式(3)所示:
其中:δ表示激活函數(shù)ReLU,確保輸出為正;W1和W2是2 個全連接層,權重分配是指通過乘法將S逐個權重進入特征通道,以完成原始特征的權重分配。計算公式如(4)所示:
其中:Uc代表信道的特性;Sc代表相應信道的權重值,兩者相乘即可完成特征的權重分配。Onboard-YOLO 的整體結構如圖3 所示。輸入圖像的大小調整為672 像素×672 像素。SE 塊由以下5 層組成:池化層,全連接層,ReLU 層,全連接層和Sigmoid 層,每次可分離卷積后進行SE 塊連接。X1和X2是SEMobileNets 的2 個輸出尺度特征圖。X1是大小為42×42 的第11 個深度可分離卷積的輸出。X2是大小為21×21 的第13 個深度可分離卷積的輸出。X1和X2是多尺度網(wǎng)絡的輸入。輸出預測Y1為21×21×27,同時,輸出預測Y2為42×42×27,并且分別在Y1和Y2比例尺的融合特征圖上進行預測。
圖3 Onboard-YOLO 結構Fig.3 Onboard-YOLO structure
無人機自主精準降落板載系統(tǒng)可以分為圖像處理模塊和控制模塊。圖像處理模塊工作流程由圖像獲取和目標檢測組成:通過攝像頭連續(xù)獲取分辨率為1 080 像素×720 像素的降落區(qū)域圖片,圖像通過預處理操作后輸入檢測單元。將檢測到的坐標作為控制信息通過串口傳輸給控制模塊,控制模塊控制無人機降落到指定位置。
板載端硬件如圖4 所示,由無人機、GPS、板載攝像頭、板載處理器、遠程遙控器等組成。無人機型號選擇大疆經緯Matrice100,Matrice100 擁有靈活可靠的特性,適合二次開發(fā)。搭載智能嵌入式平臺NVIDIA Jetson TX2 構成板載系統(tǒng),采用256 核NVIDIA Pascal 架構和8 GB 內存,計算速度快、推理能力強、性能強大、外形小巧、節(jié)能高效,適合機器人、無人機等智能終端設備。飛控部分控制器選擇STM32F407,連接板載處理器和飛控部分。
圖4 板載端硬件組成Fig.4 Hardware composition of onboard end
降落標志設計如圖5 所示,本文設計了4 種不同的降落標志,標志底輪廓為圓形,采用不同顏色組合進行區(qū)分,這樣的顏色組合有利于區(qū)別標志與地面背景,避免網(wǎng)絡誤檢,標志中心采用三重黑白正方形輪廓。標志結合了顏色特征和形狀特征這2 種主流的標志檢測特征,便于網(wǎng)絡的檢測。
圖5 降落標志樣圖Fig.5 Sample drawing of landing sign
數(shù)據(jù)集由DJI 經緯Matrice100 無人機在不同時間段分別在操場、圖書館、教學樓、室內等7 個不同場景下拍攝。在數(shù)據(jù)集采集過程中加入降落過程中的5 種不同的環(huán)境變化:動態(tài)模糊,遮擋,目標出視野,光照變化及尺寸變換。最后對采集好的圖片進行以下操作進行數(shù)據(jù)擴增:使用翻轉矩陣分別將圖片進行左右、上下翻轉,對圖片進行不同尺度的仿射變換,對圖片進行高斯模糊以進一步提高網(wǎng)絡泛化能力。數(shù)據(jù)集一共有23 550 張圖片,每類標志基本保持均勻分布。
由于板載端算力有限,模型訓練在電腦端進行,模型測試在板載端進行。電腦端實驗模型搭建基于keras 開發(fā)框架,實驗平臺配置為Intel?CoreTMi9-9900K CPU @3.6 GHz,運行內存為16 GB,8 GB Titan XP GPU,系統(tǒng)為Ubuntu 16.04。訓練參數(shù)設置如下:初始學習率為0.001,權重衰減系數(shù)為0.000 5,采用動量為0.9 的動量梯度下降算法。由于數(shù)據(jù)集較大,為了保障最合適的內存利用率和訓練效果,批尺寸參數(shù)(Batch Size)選擇為32,學習率采用自適應調節(jié)策略,當驗證集損失經過連續(xù)3 個全數(shù)據(jù)集(Epoch)沒有下降時,按10 %比例下調學習率,當驗證集損失經過連續(xù)10 個全數(shù)據(jù)集(Epoch)都沒有下降時,采用早停法(Early-stoping)防止過擬合停止訓練,最終訓練至損失函數(shù)收斂為1 以內。
為了說明Onboard-YOLO 的改進效果,首先對測試集進行4 種標志的檢測效果評估,評估標準采用PR 曲線。PR 曲線是以精準率(precision)和召回率(recall)這2 個為變量做出的曲線。分類標記為是或否,可以得到4 個值:把正例正確地分類為正例,表示為TP(True Positive),把正例錯誤地分類為負例,表示為FN(False Negative),把負例正確地分類為負例,表示為TN(True Negative),把負例錯誤地分類為正例,表示為FP(False Positive)。從這4 個值可以得出精準率與召回率,如式(5)和式(6)所示:
一條PR 曲線對應一個閾值,選擇閾值為50%對樣本進行劃分,交并比大于50%被認為是正例,小于50%是負例,以此計算相應的精準率和召回率。這里IOU采用PASCAL VOC 的閾值0.5。mAP的計算公式如下:
圖6 是4 種降落標志的PR 曲線圖,PR 曲線覆蓋的面積代表模型性能。紅色曲線代表簡化后的YOLO 模型Tiny-YOLOV3 性能,綠色曲線代表簡化模型加上可分離卷積之后的性能,藍色曲線代表簡化模型加入注意力機制和可分離卷積之后的效果(彩色效果見《計算機工程》官網(wǎng)HTML 版)。從圖6 中可以看出,紅色曲線的性能遠遠低于綠色和藍色,這說明僅僅對YOLO進行模型簡化來提升速度,模型的性能會顯著下降。經過計算可以得到Tiny-YOLOV3 模型的mAP 值為0.690,在板載處理器TX2 上處理速度為18.1 frame/s,模型大小為34.8 MB。
圖6 PR 性能對比曲線Fig.6 PR-Performance comparison curve
綠色曲線為加入了MobileNets 以后的模型效果,此時mAP 值計算為0.865,可以看出將Tiny-YOLO 的backbone 替換為MobileNets,采用可分離卷積之后模型準確率顯著上升25.4%,且參數(shù)量減少為18.3 MB,速度提升為18.6 frame/s。藍色曲線為加入了注意力機制以后的Onboard-YOLO,藍色曲線的面積大于綠色,說明Onboard-YOLO 在4 種標志上都能夠達到比較好的檢測準確度。Onboard-YOLO 加入注意力機制后,準確度進一步提升了5.2%,此時mAP 為0.910。由于加入了SE 模塊,模型運算時間增加,速度下降了1.6%,能夠在TX2 上達到18.3 frame/s 的速度;模型大小增加了9.8%,為20.1 MB,能夠滿足無人自主精準降落的要求。
為了檢測Onboard-YOLO 的性能,本文進一步將其與行業(yè)領先的檢測算法進行對比,在建立的無人機降落數(shù)據(jù)庫上檢測,性能指標采用平均準確率(mAP)、速度和模型尺寸3 個指標。從表1 可知,和YOLOV3 相比,Onboard-YOLO 計算速度顯著上升,尤其是在板載處理器上,幀率增加了4.3 倍,但平均準確率非常接近,均能達到0.91 以上的準確率。同時,比較了Onboard-YOLO 和兩階段領域領先的檢測算法Faster-RCNN,從表1 中可以看出Onboard-YOLO 僅僅降低了2.7%的準確率,速度卻增加了25.7 倍,同時模型大小下降了96.2%。進一步將Onboard-YOLO 與常用的輕量級檢測模型MobileNets-SSD 進行比較,發(fā)現(xiàn)Onboard-YOLO 準確率提升了8.9%、速度提升了2.5 倍。從以上數(shù)據(jù)分析可知道,Onboard-YOLO 能夠很好地平衡準確率和速度,非常適用于板載系統(tǒng)無人機自主精準降落研究。
表1 檢測模型性能對比Table 1 Performance comparison of detection model
將表1 中實時輕量級算法(幀率≥5 frame/s)Onboard-YOLO、Tiny-YOLO 及MobileNets-SSD 分別在以下5 種環(huán)境中進行測試,圖7 是測試結果,最左側為實際測試圖片,其余3 列為局部圖像放大效果。圖7(a)為無人機降落過程中受氣流影響的標志運動模糊下的檢測情況,圖7(b)為人為對標志進行遮擋時的檢測情況,圖7(c)為無人機降落過程中標志超出無人機視野的檢測情況,圖7(d)為標志在不同光照條件下的檢測情況,圖7(e)為無人機降落過程中標志尺度變化的檢測情況。藍色為標定框,綠色為檢測框,紅色為誤檢(彩色效果見《計算機工程》官網(wǎng)HTML 版),可以看出在復雜環(huán)境變化下Onboard-YOLO 的檢測框更加接近真實框大小,檢測更為準確。
圖7 降落測試結果Fig.7 Landing test results
MobileNets-SSD 在部分場景如遮擋和目標出視野時容易出現(xiàn)漏檢情況,Tiny-YOLOV3 的整體檢測性能都難以滿足實際需求。因此,Onboard-YOLO可以平衡好速度和精度,滿足無人機自主精準降落需求。
為了測試算法在實際環(huán)境中的性能效果,搭建室內外測試環(huán)境,進行實際測試實驗。降落流程如圖8 所示,實驗采用DJI M100 四旋翼無人機,無人機收到起飛指令后,首先由GPS 進行粗定位飛行到達指定降落地點,從距離地面5 m 的高度開啟自主精準降落,進行緩慢的飛行移動,并搜尋視野中的降落標志。無人機云臺將含有降落標志的圖像傳送給板載處理器,處理器通過Onboard-YOLO 計算出無人機云臺視野中心和降落標志中心相對位置,處理器將位置信息傳送給飛控單元調整無人機位置。記錄秒內無人機水平飛行的位置信息序列,當序列趨近于收斂并穩(wěn)定在降落標志中心(位置差閾值設定為10 cm 以內)時,降低飛行高度直到落地,關閉電機完成無人機自主精準降落。在相同的硬件環(huán)境下分別進行室內外自主降落實驗,每種算法分別開展20 次實驗,并將降落評價指標選定為平均降落時間(Average Landing Time,ALT)、平均降落精度(Average Landing Precision,ALP)、降落成功率(Landing Rate,LR),其中ALP 指云臺視野中心與降落目標中心歐氏距離。從表2 可以看出,在室外實驗時由于風速較大,F(xiàn)aster-RCNN、YOLOv3、MobileNets-SSD 算法幀率過低,容易導致無人機定位頻率不足,致使降落時間過長,甚至出現(xiàn)降落位置偏移,最終導致降落失敗,LR 較低。Tiny-YOLOv3 雖然幀率較高,但檢測準確度低,因此也容易出現(xiàn)降落失敗的情況,LR 較低。此外,由于模型檢測準確性較低,ALP 值也比較低。Onboard-YOLO 幀率較高,識別準確率高,抗環(huán)境變化能力強,在降落時間、降落精度和降落成功率3 個指標上都要優(yōu)于其他4 種算法,平均自主精準降落成功率可以達到95%以上,平均降落精度可以達到5.55 cm,但本文算法在室外風力大(大于10 m/s)的情況下同樣會降落失敗。
圖8 無人機降落流程Fig.8 Unmaud aerial vehicke landing process
表2 實際飛行驗證Table 2 Actual flight verification
本文將深度學習引入無人機自主精準降落,通過加入可分離卷積和注意力機制,提出一種適用于無人機板載處理器的輕量級高精度檢測模型Onboard-YOLO。實驗結果表明,該模型在TX2 上能夠達到18.3 frame/s 的實時處理速度和0.91 的準確率。實驗結果表明,該方法能夠成功解決降落過程中出現(xiàn)的包括目標尺度變換、運動模糊、遮擋、目標出視野等復雜環(huán)境問題,超越目前行業(yè)領先標準,實現(xiàn)無人機在板載處理器上95%以上的實時精準自主降落。