胡敏捷,沈繼飛,姚怡芝
(上海船舶設計研究院,上海 201203)
目前,無人機產業日益成熟,無人機作為影像采集工具,在很多場景中都得到了廣泛的應用。在室外場景中,借助于GNSS信號定位以及無人機自身的慣性導航系統[1],可輕松地實現無人機的航線規劃和飛行控制,完成自主影像采集任務,如使用大疆精靈4 RTK的無人機設備便可快速采集測區影像,并應用于場景構建與數字測圖[2]。但在室內場景中,由于GNSS信號缺失,僅通過無人機慣性導航進行定位會產生較大誤差累積,再加上室內環境復雜多樣,無人機自主影像采集難以實現。
為此,本文提出一種室內場景輔助的無人機影像采集方法,基于快速三維重建獲得的室內場景信息對無人機的航線進行精細規劃,并通過視覺定位來修正慣性導航產生的累積誤差,實現無人機的精確定位,保證無人機高效、安全地完成影像采集任務。本文方法主要分為以下三個流程:首先需要對室內進行快速三維重建,得到室內場景的實景三維模型;之后基于實景三維模型對無人機航線進行精細規劃;最后實現無人機的飛行控制,通過無人機采集的影像與室內實景三維模型進行匹配實現無人機實時視覺定位,對慣性導航產生的誤差累積進行修正。
在室內場景模型構建方面,常用的方法有基于影像的三維重建[3]和基于三維激光點云的三維重建[4]。其中基于影像的三維重建由于成本低,而且重建精度能滿足生產需求,廣受人們歡迎。文獻[3]介紹了基于傾斜攝影測量的室內三維實景模型快速重建方法,但是該方法數據處理過程復雜,效率低下。文獻[5]介紹了利用武漢天際航DP-Smart圖像自動處理軟件進行傾斜攝影自動化建模的方法,極大降低了人工成本。
在無人機航線規劃方面,文獻[6]提出了一種在實景三維模型輔助下,以人機交互形式設計航線的方法。這種方法可以借助實景模型預判設計航線的影像覆蓋范圍和重疊區域,并能檢測航線上的障礙物,提高無人機攝影測量外業飛行中的效率和獲取影像的質量。
在無人機飛行控制功能的實現方面,文獻[7]介紹了利用大疆Mobile SDK進行編程,實現對無人機的自主飛行控制。文獻[8]提出了一種基于特征點匹配的快速影像重定位方法,在獲得二維影像與已知三維場景模型的前提下,利用空間后方交會的方法解算出二維影像的外方位元素。在沒有衛星定位信息的情況下,無人機便可利用二維影像解算出的外方位元素估算出無人機的位置和姿態,修正無人機的飛行誤差。
因此,本文利用天際航DP-Smart軟件采集室內影像資料進行室內快速重建,并基于此實景三維模型,通過AR-Explorer軟件進行交互式航線精細規劃,在位姿估計模塊的輔助下,使無人機在室內環境中自主執行飛行任務,采集影像。經過飛行試驗,位姿估計信息顯著降低了無人機的飛行誤差,項目流程如圖1所示。

圖1 項目流程
基于實景三維的航線規劃,前提是獲得場景的三維模型信息。利用Gopro全景推車采集場景影像(圖2),結合傾斜攝影三維自動建模軟件DP-Smart可以簡單高效且全自動地生成場景三維模型,提升場景輔助無人機自主飛行技術的可行性。

圖2 Gopro全景推車
基于影像的三維重建主要有以下幾個流程:影像數據采集、運動恢復結構(Structure from Motion,SfM)、密集匹配、構網貼圖。首先,在影像數據采集時需要保證影像之間有足夠的重疊度;之后對采集到的影像進行SfM算法,即恢復影像精確的位置和姿態參數,并生成稀疏點云;得到影像的位姿信息后,根據影像立體像對的核線約束關系,沿同名核線方向搜索立體像對的同名點,獲得立體相對的視差圖。然后由視差圖計算立體相對的大量同名點,對大量同名點對進行空間前方交會得到同名點對應的地面攝影測量坐標系下的三維坐標,即測區的點云數據。當把同名點的色彩信息賦值給對應的三維空間點即可獲得彩色三維點云;最后對密集點云進行構網,自動生成TIN網絡模型,并進行紋理映射。此時,可以得到室內的三維實景模型。
圖3~圖6所展示的室內場景三維重建利用Gopro全景推車拍攝了434張影像,通過DP-Smart軟件處理約 1.2 h輸出建模成果。

圖3 影像空三解算成果

圖4 影像匹配生成密集點云

圖5 TIN成果

圖6 自動紋理映射成果
基于實景三維的航線精細規劃是指在場景mesh模型上,進行交互式的航線規劃。由于具有可視性,可以直觀地選擇航點,設置拍攝云臺角度,預覽拍攝范圍,并進行刪改編輯,增加室內影像采集的質量。此外,通過將航點連接而成的航線與三維模型的緩沖區運算,可以檢查出航線與障礙物的沖突,提高室內復雜環境下的飛行安全性。
基于實景三維的室內無人機航線規劃可以繼承室外航線規劃方法,在室內空曠環境中,使用航帶法設計航線。結合相機參數和影像重疊度等數據,根據式(1)計算攝影航點間距,從而設計較為規則的航線[9]。這種情景下的航線設計較為簡單,航線規整且拍攝視角無太大變化,適合空曠場景的影像采集任務。
(1)
其中d為兩航點間的距離,c%為航向重疊度,w為相機底片寬度,a為像元尺寸,GSD為地面分辨率。
在復雜環境下,無人機的飛行風險增加,在航線規劃時,需根據無人機的尺寸設計安全緩沖距離,并通過與實景三維模型的空間運算,檢查航線上的障礙物。同時,需要人工選擇影像拍攝的興趣部位,且由于興趣部位的空間姿態存在較大差異,在航線設計時需針對性地設置云臺角度,調整拍攝視角。這種情景下航線設計較為復雜,適合多障礙物的復雜環境,無人機室內航線規劃如圖7所示。

圖7 無人機室內航線規劃
AR-Explorer室內航線規劃流程為:
①創建航線規劃工程,導入三維場景,開啟室內航線規劃作業。
②選擇航點編輯窗口,設置航高、站點密度和相機參數。
③點擊窗口中的“選擇航點”圖標,在三維場景中繪制“關鍵”航點。
④設置所有“關鍵”航點后,點擊“生成航線”,根據航高、站點密度和相機參數內插生成攝影航點,并生成航線表。
⑤檢查及修改航線表中的攝影航點航線表。
⑥勾選“安全檢查”,在三維窗口中顯示半透明緩沖區,檢查航線安全性。
⑦室內航線規劃完成,如圖8~圖12所示,導出航線Json文件。

圖8 創建工程

圖9 繪制關鍵航點

圖10 內插航點

圖11 安全檢查

圖12 輸出航線Json文件
2.3.1 飛行控制
無人機的自主飛行需要使用無人機開發工具包(SDK)對無人機進行飛行控制,根據上文航線規劃方法所得的室內航線飛行。然而,由于無人機底層控制、通信鏈路、環境作用力等因素的影響,無人機在執行飛行任務時難以避免地存在誤差。因此,需要輔助定位手段,在無人機飛行的過程中不斷修正無人機的運動。使無人機能夠按照規劃航線飛行,并通過無人機的相機開發工具包設置拍攝模式及參數,完成影像采集任務。
本文采用大疆Mobile SDK進行無人機手機端飛行控制平臺的開發。實現了無人機的坐標飛行功能。同時,飛行控制平臺可直接讀取AR-Explorer生成的航跡規劃jason文件,從而使無人機按照預先規劃的航線自主完成飛行及攝影任務,控制界面如圖13所示。

圖13 控制界面
其中,坐標飛行功能是指,在設置無人機的航高和初始坐標后,向無人機提供一個目標點的坐標和飛行速度,在程序內部,通過API調整無人機的飛行姿態角——俯仰角(Pitch)、翻滾角(Roll)和偏航角(Yaw),配合時間控制,使無人機完成到達目標點所需的三維空間運動。
然而這種通過無人機自身角度和速度傳感器控制的飛行會產生飛行誤差。如圖14是在模擬器上,沒有環境作用力干擾下,無人機從初始位置(0,0)(單位:m),以 5 m/s速度飛往(0,10)的結果。由模擬器上的坐標信息可知,無人機并未準確到達(0,10)位置,而是在X軸方向產生了 0.026 8 m的位移誤差,在Y軸方向產生了 0.692 6 m的位移誤差。根據實驗發現,無人機的距離誤差隨著飛行速度和飛行距離的增大而增大。

圖14 模擬飛行
分析其原因在于程序內位移的計算方式,如式(2),由于無人機存在加速和減速的過程,利用瞬時速度代替平均速度使Si產生了誤差,且隨著速度變化的增大和總位移的增長,誤差也在增大和累積。
(2)
其中vi為第i段時間間隔△t的初始速度,Si為第i段時間間隔內的位移。
此外,在實際飛行過程中,外部環境作用力的影響,都會使無人機產生飛行誤差,如圖15所示。因此,無人機在室內飛行情況下,需要采用定位方法不斷修正無人機的位置,減小無人機飛行的誤差。

圖15 飛行誤差
2.3.2 位姿估計
位姿估計主要包含兩個關鍵步驟,一是待解算影像與已知的場景信息建立關系,即場景三維模型的特征點與二維影像的特征點匹配[10]。二是基于三維與二維特征點的對應關系,使用空間后方交匯的方法求解影像的外方位元素,從而獲得無人機的位姿[11]。
(1)場景三維模型與二維影像進行特征點匹配
①將三維點云相關聯的二維影像點的SIFT特征描述符作為其特征描述符。三維場景的構建是通過處理一系列多視影像,經特征提取、特征匹配、影像位姿初始估計、三角化生成稀疏點和光束法平差等步驟獲得。以此方法得到的稀疏點云都有對應的二維影像特征點,故可將二維影像點的128維SIFT向量作為三維特征點描述符。
②對待解算影像采用相同的SIFT算法進行處理,提取出二維特征點的128維SIFT向量,作為特征描述符。
③建立場景三維特征點與待解算影像二維特征點的匹配關聯。獲得新影像的二維特征點及其特征描述符,和三維場景地圖中三維特征點及其特征描述符,再利用FLANN(Fast Approximate Nearest Neighbor Search Library)算法,找到二者特征點的對應關系。
(2)單像空間后方交會
單像空間后方交會問題也可稱為PnP(Perspectiven Points)問題,即對于一副影像,已知圖像內容n個參考點的圖像二維坐標和世界坐標系中對應的三維坐標,以及攝像頭內參,求解影像外方位元素[11]。由共線條件方程式3可知,一組3D-2D匹配點可以列兩個未知數方程,有XS、YS、ZS、φ、ω、k六個外方位元素未知,所以至少需要4對匹配點才能進行平差解算[12]。
(3)

在實現無人機的自主飛行應用中,由于無人機機載運算能力有限,所以將無人機獲取的單張定位影像傳輸至地面站,在地面站中進行單像的位姿估計,再將定位信息傳輸至無人機,以修正無人機的位置。


圖16 航線修正
為驗證位姿估計對無人機飛行誤差修正的作用,進行了一組利用位姿估計信息修正無人機航線和不利用位姿估計信息修正無人機航線的對比實驗。根據2.1和2.2所述的場景快速重建方法和航線規劃方法,首先利用Gopro全景推車和DP-Smart軟件構建了實驗場地的三維場景模型,隨后利用AR-Explorer軟件規劃了無人機的航線,最后進行了兩組飛行實驗。
第一組飛行實驗中,無人機僅利用自身的慣性導航傳感器、陀螺儀和氣壓計等機載設備控制飛行方向和距離,自主按照規劃航線飛行。第二組飛行實驗中,無人機除利用機載傳感器控制飛行方向和距離外,還會使用在各航點實時獲取的位姿估計數據修正飛行方向和距離。
在實驗中,為獲取無人機的真實軌跡,兩組飛行實驗無人機均在完成一段飛行任務后拍攝一張影像,并實時進行位姿估計。區別在于第一組實驗的估計位姿用于記錄無人機的真實航跡,第二組實驗的估計位姿既用于記錄無人機的真實航跡,也用于修正無人機航線。
如圖17所示,為飛行實驗中部分真實航點與規劃航點點位中誤差折線圖,其中A點不為起飛點。在無人機真實航點與規劃航點間的點位中誤差方面,修正航跡點位中誤差整體小于未修正航跡,且中誤差并未呈增長趨勢。說明利用位姿估計信息修正無人機航線的方法可以有效減小飛行過程中的誤差累積。表1為該部分航線的坐標記錄。

圖17 點位中誤差對比

航線點位坐標及誤差 表1
圖18是兩組飛行實驗的真實航線與規劃航線對比圖。經過對比可以發現,未經修正的真實航線雖然在形狀上更接近規劃航線,但各真實航點與規劃航點相差逐漸變大。經過位置修正航線的航點顯著接近規劃航點。

圖18 航線對比
本文介紹了一種室內環境下無人機利用三維場景信息輔助飛行的方法。首先,通過Gopro全景推車和DP-Smart軟件,可實現室內場景的快速且低成本建模,獲得場景的粗略模型,構建場景信息。其次,在粗略模型的基礎上進行無人機攝影測量任務的航線交互式規劃,提升無人機攝影測量的效率及安全性。最后,結合飛行控制程序和位姿估計模塊,操控無人機準確地完成影像采集任務。此種方法可應用于大型室內場景由粗略到精細的建模任務,以及室內場景的設備巡檢和安保巡邏任務等,具有一定的應用前景。