肖愛群,姜鴻翔
1. 北京宇航系統(tǒng)工程研究所,北京 100076 2. 北京航空航天大學 宇航學院,北京 100191
隨著航天技術的發(fā)展,依托于運載火箭的各類航天項目,如對月球采樣、火星軟著陸巡視等不斷開展了規(guī)劃實施。由于航天發(fā)射具有高風險性,有必要在火箭發(fā)射的各個環(huán)節(jié)監(jiān)控其運動狀態(tài)的變化。助推器分離是運載火箭發(fā)射的重要動作之一,精準測量助推器的位姿變化是分析其動力學特性的依據(jù),這對于監(jiān)測發(fā)射過程的異?,F(xiàn)象、開展助推器分離裝置設計任務、提升火箭發(fā)射的成功率與穩(wěn)定性都有著重要意義。
常用的位姿測算技術包括激光雷達、單目視覺、雙目視覺等[1],例如趙高鵬等基于激光成像雷達對自由翻滾運動狀態(tài)下的火箭箭體進行了運動參數(shù)的估計[2]。魏亮設計了基于特征點云的雙目視覺位姿測量方案[3],獲取了火箭噴管的位姿信息。高燕等提出了基于正交迭代的多目視覺位姿估計算法[4],進而開展了火箭起飛過程的研究。但是激光雷達成像效果不直觀、人眼判讀性差且在火箭發(fā)射過程中易受到外界因素干擾,傳統(tǒng)的基于視覺信息的方法則受成像質量影響,參數(shù)計算精度有待提高。
近年來,深度學習方法相關的理論研究和工程應用逐漸增多,取得了比人工判斷或傳統(tǒng)方法更優(yōu)異的效果,因此被廣泛應用于航天領域[5-7]。其中,楊名基于深度學習的三維點云重建方法[8],利用可見光圖像完成了對空間非合作目標的三維建模,在復雜的空間環(huán)境中仍能恢復完整的點云數(shù)據(jù)。
在計算機視覺中,這種三維重建的方法指根據(jù)圖像重建三維信息的過程。重建的數(shù)據(jù)格式主要包括四種:深度圖、點云、網格以及體素。其中點云數(shù)據(jù)具有簡單、無需排列和組合連接、在幾何變換和變形時更容易操作的特點,因此更利于重建并還原模型的位姿特征,適用于不考慮重建結果紋理、外觀因素的任務場景。
三維點云重建網絡使用的圖像包括單視圖或多視圖,其中利用多視圖的三維重建相對更容易實現(xiàn),例如Point-MVSNet通過對不同角度的圖片進行點云特征提取再融合的方法,生成了最終的點云[9]。但是基于多視圖的方法往往不適合處理實際僅有一臺攝像機的情況,且計算復雜,實時性較差。而單視圖僅使用單一攝像頭作為采集設備,具有成本低,易于配置等優(yōu)點,但由于信息不完全,重建難度較大,會產生不確定的結果。為了解決該問題,F(xiàn)an等人生成了多個重建結構,并通過結構的對比與融合,得到了最優(yōu)點云[10]。后續(xù)的大量研究則專注于提高單視圖重建點云的精確性,包括將單階段的點云預測轉化為分階段處理的DensePCR[11]模型與利用圖卷積網絡實現(xiàn)特征解碼過程的PCDNet[12]等。由于真實場景下助推器圖像數(shù)據(jù)采集設備單一,本文使用了一種基于單視圖的三維點云重建網絡,實現(xiàn)了助推器目標關鍵點云的精確生成。
三維點云重建廣泛應用于醫(yī)學、地質、航空航天等各項領域[13-16]。實際應用時,往往會對重建的點云進行配準、拼接、特征分析等進一步的操作。在航天領域中,利用三維點云重建進行目標的運動參數(shù)估計就是一項關鍵的技術應用。本文利用神經網絡強大的擬合能力,尋找到了一個模型來逼近圖像到點云的映射,實現(xiàn)了火箭助推器的點云重建及位姿估計的完整流程??偨Y來說,本文的貢獻在于:考慮真實環(huán)境構建了助推器分離仿真數(shù)據(jù)集;提出了一種利用三維點云重建進行助推器位姿估計的新的流程,并得到了精確的估計結果。
本文借助Blender三維設計軟件與Python編程語言完成了火箭助推器圖像與點云的對應數(shù)據(jù)采集。
首先對火箭助推器進行了模型建立,參考公開的助推器模型進行了刪減、修改以及尺度的調整,具體包括直徑、長度等,完成建模過程后將模型導入了Blender軟件。Blender具有腳本自動采集數(shù)據(jù)的功能,可以通過編寫Python代碼控制助推器在世界坐標系下的位置與歐拉角姿態(tài)。每次助推器位姿變化后,采集當前攝像機的拍攝畫面以及模型的點云,即可獲得一對圖像與點云的對應數(shù)據(jù)。助推器的點云默認為整個助推器的稠密點云,為了加速訓練,從中篩選出了3 373個可反映目標位姿的關鍵點構成了新的點云,同時保持了原有模型對稱結構的特性。圖1給出了助推器模型以及最終保留的點云示例。
為使數(shù)據(jù)集中的圖像更符合真實條件下的相機成像結果,我們添加了背景,將助推器質心的水平、豎直、深度坐標分別控制在[-79.1 m,-2.1 m],[0.3 m,57.1 m],[26.7 m,400 m],俯仰角和偏航角分別控制在[-π/2,π/2],[-4π/3,4π/3],同時通過隨機加噪的方式進行了數(shù)據(jù)增強,在數(shù)量和類型上都保持了豐富性。最終獲得的數(shù)據(jù)集共包含12 800張尺寸為128×128像素的圖像,即12 800對數(shù)據(jù)。圖2給出了部分數(shù)據(jù)集的圖像示例。
圖1 火箭助推器的模型與關鍵點云Fig.1 Model and key point cloud of rocket booster
可以看到,數(shù)據(jù)集圖像中既包括不同位置與姿態(tài)的助推器,也包括遮擋(下2,下3)、部分超出視野范圍(上3,下1)等特殊場景下的圖像,有利于魯棒性的模型訓練。
為了緩解輸入數(shù)據(jù)不同維度差別較大產生的影響,避免隨機梯度下降法趨于局部鞍點,可對圖像數(shù)據(jù)進行簡單的歸一化處理,采用公式如下:
式中:ir,g,b表示原始圖像三通道的像素值,Ir,g,b表示歸一化的像素值。
本文選擇的基本三維點云重建網絡框架為PointOutNet[10],該模型可以端到端地完成從單視角的RGB圖像到三維點云的重建。圖3展示了模型的整體結構,其中編碼器用于提取輸入圖像I∈128×128的特征,解碼部分同時將特征分別送入反卷積和全連接兩種結構中。建立編碼器-反卷積支路時,采取了沙漏結構,即連接不同尺度的多層編碼結果與反卷積結果,并重復進行編碼-解碼的過程。編碼器-全連接支路則直接對編碼特征進行了解碼。對比兩個支路,反卷積結構更擅長捕獲目標的主體部分,而全連接則更擅長補充細節(jié)形狀部分,兩者在點云重建方面具有互補的效果。因此最終通過直接連接兩部分的解碼結果構成了輸出的點云集合S∈N×3。
圖3 三維點云重建網絡結構Fig.3 3D point cloud reconstruction network structure
在構建損失函數(shù)時,模型使用倒角距離(chamfer distance,CD)進行了生成點云和真實點云的距離計算,它的計算公式如式(1)所示,是對稱形式的CD,滿足作為度量的定義。
(1)
式中:S1和S2表示兩個不同的點集,點的數(shù)目可以不同,x和y分別表示來自這兩個點集中的點。實際計算時,將真實點云和模型生成的點云數(shù)量均控制為3373,即S1,S2∈3373×3。
三維點云重建網絡基于最小化式(1)進行模型的訓練與參數(shù)的更新。為了防止模型過擬合,在實際訓練過程中額外添加了L2正則化損失項。該項將促進對模型參數(shù)較大時的懲罰,控制模型的權重參數(shù)保持在較小的范圍內。結合兩部分損失函數(shù)的總體損失函數(shù)如下式:
式中:G表示建立的神經網絡,I和S表示圖像與對應的真實點云,w表示網絡G中的權重參數(shù),α和β為兩個超參數(shù),分別控制了點云重建損失項與正則化損失項。
基于2.2和2.3節(jié)獲得的點云重建結果將包含目標全部點的三維坐標。為了進一步得到助推器的位姿參數(shù),本文基于這些數(shù)據(jù)進行了主方向的計算,根據(jù)火箭助推器的形狀特點,它的主方向將近似對應于頭尾連線方向。
主方向的計算方法為主成分分析(principal components analysis,PCA),該算法用于對高維數(shù)據(jù)降維,它將高維數(shù)據(jù)投影到低維超平面,最大化投影后的點方差,使信息量達到最大。
具體實現(xiàn)時,將三維點云數(shù)據(jù)降為一維,即尋找到一個主方向u=(u1,u2,u3)T,令點云數(shù)據(jù)在該方向上的投影方差盡量大。其中,u1,u2,u3分別表示水平、豎直、深度方向上的值,根據(jù)u即可估計助推器的位姿參數(shù),如下所示:
式中:pmin和pmax分別表示主方向上的兩個投影端點對應的原始三維點,據(jù)此得到了中心點p0。即助推器的位置參數(shù)可由x0,y0,z0表示,而θ,ψ分別表示俯仰角和偏航角,由于助推器模型為對稱結構,因此無需計算滾轉角,θ和ψ即可代表完整的姿態(tài)參數(shù)。
試驗所用數(shù)據(jù)集為2.1節(jié)介紹的圖像-點云數(shù)據(jù)集,其中12 160張圖像用于訓練,640張圖像用于測試。訓練時設置batchsize為128,訓練輪數(shù)epoch為5 000,優(yōu)化器為Adam優(yōu)化器,初始學習率為3×10-3并隨訓練輪數(shù)增加進行衰減,隨機種子設置為1 029。為了便于判斷點云重建的精度是否足夠高,同時防止正則化部分損失過大,分別將超參數(shù)α和β設置成10 000和0.1。考慮全連接解碼器和反卷積解碼器分別擅長重建細節(jié)和整體的特點,它們輸出的點云數(shù)目比例應遠小于1。實際的配置中,我們將它們輸出的點云個數(shù)分別設置為301和3 072,比例約為1∶10。全部試驗在Linux系統(tǒng)下使用NVIDIA 1080 Ti GPUs完成,所用深度學習框架為tensorflow。
基于2.1、2.2和2.3節(jié)的方法,對圖像中的助推器目標完成了點云的重建,測試圖像與對應的重建結果如圖4所示。通過觀察重建點云的不同視角可以看出,訓練后的模型可以關注圖像中的助推器目標并重建其點云,而不會受到背景或遮擋等外界因素的干擾,主觀上重建效果較準確。
圖4 測試圖像與點云重建結果Fig.4 Test image and reconstruction result of point cloud
為了定量評估以上點云重建網絡的準確率,根據(jù)最終訓練得到的模型,計算了全部測試圖像對應的真實點云與生成點云的點距離均值、標準差、最大值與最小值,并將它們作為點云重建準確率的評價指標。根據(jù)2.2中點云數(shù)量相同的設置,可以對真實點云與生成點云進行一對一的匹配,具體來說分別將兩組點云按三維坐標升序排列,即可按順序一一對應。每對點的距離使用歐式距離計算,進一步可以得到每張測試圖像的均值、方差等四項指標。對全部測試圖像的指標取均值的結果如表1所示。
表1 重建結果的誤差
根據(jù)表1可以看出,在本試驗的數(shù)據(jù)范圍下,重建點云與真實點云的點距離平均值、標準差、最大值、最小值分別約為8.1 m,17.39 m,3.1 m,7.8 m。說明點云重建誤差較小,但相對波動較大,整體分布可能存在差異,影響后續(xù)的位姿估計。經分析,這可能與篩選后的真實點云并不連續(xù)有關,導致網絡難以訓練,最終生成的圖像更類似于圖4所示的助推器整體而非圖1(b)的多個圓環(huán)。
根據(jù)2.4節(jié)的方法,我們進一步得到了助推器目標的主方向如圖5所示,直觀上主方向與助推器朝向(頭尾連線方向)一致。根據(jù)主方向我們完成了對位置與姿態(tài)的估計,并在全部測試集上進行了真實位姿與估計位姿的對比。圖6是水平位置x、豎直位置y、深度z、俯仰角θ、偏航角ψ的仿真值與估計值的曲線,其中每組曲線的橫坐標無單位,表示圖像排列后的序號,排列方法為按照當前位姿量的真實值升序排列。
圖5 測試圖像與點云主方向Fig.5 Test image and main direction of point cloud
從圖6中可以看出,位置的估計值與真實值基本重合,說明估計較為準確,而姿態(tài)的估計值雖然存在抖動現(xiàn)象,但變化趨勢與真實值基本相同。
為了進一步定量說明估計的精確程度,我們計算了回歸問題中常用的平均絕對值誤差(mean absolute error,MAE)與決定系數(shù)R2 score兩個指標,并依據(jù)計算結果對位姿的估計進行了評估與分析,MAE和R2 score的計算方式如下:
圖6 位姿估計值與真實值對比Fig.6 Comparison curve of estimated pose and true pose
續(xù)圖6Fig.6 Continued
表2、3給出了多個位姿量在兩項指標下的計算結果??梢钥闯觯贛AE指標下,不同維度的三維坐標誤差存在差距,最低在1.1 m左右,而最高在5.2 m左右,俯仰角誤差約為12.9°,偏航角誤差約為29.9°。由于試驗中,俯仰角和偏航角的誤差相差較大,額外添加了姿態(tài)平均誤差用于計算二者的均值,綜合考量了助推器姿態(tài)估計的準確程度,計算得到的姿態(tài)平均誤差在21.4°左右。實際上,相對于數(shù)據(jù)范圍而言,MAE指標下的估計誤差反應出了較精確的結果,但該項指標的計算較簡單,不便于對比不同數(shù)量級的數(shù)據(jù),因此不同維度的誤差值之間偏差較大。
與MAE不同,R2 score可理解為將均值作為了誤差基準,基于預測誤差和基準誤差的相對值進行了指標計算。R2 score考慮了數(shù)據(jù)本身的范圍,最終的誤差具有相同的范圍與衡量標準,便于對比。而我們在R2 score下,位置估測結果均取得了0.98以上的分數(shù),且?guī)缀鯚o偏差,反應了在各自的坐標估計量下,預測值與真實值基本一致;對歐拉角估測結果的平均分數(shù)在0.81左右,且俯仰角與偏航角相差較小,表明了最終對目標姿態(tài)的估計結果也較為準確;對不同維度的R2 score進行算數(shù)平均與按方差加權平均的結果分別約為0.92和0.90,說明了整體上我們的方法具有較強的位姿估測能力,能精確預測需要估計的全部未知量。
表2 估測結果的誤差
表3 估測結果的平均決定系數(shù) R2 score
本文提出了一種基于三維點云重建的助推器位姿估計方法,與現(xiàn)有方法不同,本文基于深度學習的方法實現(xiàn)了助推器三維點云的重建,并利用主成分分析完成了位姿的估計。最終通過定量觀察與定量評估,展示了本文方法在位姿估計上的精確性。具體結論如下:
1)本文方法采集了充足的圖像與點云仿真數(shù)據(jù),數(shù)據(jù)集具有多樣性,能夠支撐后續(xù)的網絡訓練與測試。
2)本文方法訓練的神經網絡可以生成出單張RGB圖像中助推器目標的點云,即使目標部分被遮擋、不完整或存在背景干擾,也能精確重建。
3)本文方法可以通過PCA尋找與助推器實際方向一致的主方向,并進一步實現(xiàn)精確的位姿估計,具有良好的性能。例如在R2 score指標下,全部測試集的三維坐標預測準確率均達到0.98以上,俯仰角和偏航角的預測準確率均達到0.80以上,平均預測準確率為0.92。
在未來的工作中,為了使本文方法可對實際或仿真的助推器運動視頻進行位姿估計,除了直接使用已有模型與方法對每幀圖像進行處理外,仍需要進行多方面的優(yōu)化,例如針對實際場景下拍攝的圖像擴充數(shù)據(jù)集,考慮多幀位姿預測值的平滑,根據(jù)視頻序列的相關性對模型進行修改等。