孫慶偉,晁建剛,陳 煒,楊 進,林萬洪,許振瑛,張洪波
(1.國防科技大學空天科學學院,長沙410073;2.中國航天員科研訓練中心,北京100094)
在航天員地面混合現(xiàn)實訓練中,為了輔助航天員進行空間場景理解并指導操作訓練任務,需要對地面航天飛行訓練場景進行三維重建。以往的做法是通過三維繪圖軟件對整個場景進行構建。這種做法需要提供全部CAD模型,耗費大量時間,效率低下,在緊急情況下無法采用。
通過實時三維重建的技術,可以將訓練場景進行掃描并快速重建,滿足緊急情況下混合現(xiàn)實的需要。但艙內結構錯落復雜,傳統(tǒng)三維重建技術結果較為粗糙,重建結構為整體空間,不利于混合現(xiàn)實操作。通過語義三維重建技術,將重要部件進行分割并賦予語義信息,構造出能夠智能理解的虛擬結構。借助混合現(xiàn)實技術,重建模型可以增強在不同工作場景,航天員可以沉浸在與實際場景高度逼真的工作環(huán)境。這種方式可以省去建造模擬器所需要耗費的人力財力,針對不同環(huán)境可以快速建模并投入使用,并且三維模型可以進行移植,滿足多名航天員同時訓練的需求。
針對航天器艙內場景語義重建,SemanticFusion的思路是:結合卷積神經網絡(Convolutional Neural Network,CNN)與三維重建,在每一個三維空間點上存儲語義信息;CNN作為數(shù)據驅動的分割方法,可以較準確的獲得每個像素點的語義類別概率,即時定位與地圖構建(Simultaneous Localization and Mapping,SLAM)過程會獲得圖像的位姿,利用位姿將二維語義信息映射到三維空間;同一個三維空間點會被不同時間的圖像觀測到,對不同時間的語義信息進行融合更新,獲得最優(yōu)的語義類別;同時采用全連接條件隨機場(Conditional Random Field,CRF)進行后端優(yōu)化,使語義信息在整個三維空間分布更加合理。
二維語義分割近幾年發(fā)展非常迅速,F(xiàn)CN是第一次用卷積神經網絡實現(xiàn)語義分割的工作,它將傳統(tǒng)用于分類的卷積神經網絡VGG16的全連接層用卷積層替換,并采用反卷積對分類結果進行上采樣,可以實現(xiàn)像素級別的分類。Seg-Net采用Encoder-Decoder的方式,將Encoder階段的池化索引應用在Decoder的上采樣階段,可以大幅提高語義分割的精度。DeconvNet與SegNet類似,不同之處在于上采樣采用反池化和反卷積進行Decoder,也取得了不錯的效果。UNet將Encoder和Decoder不同階段的特征進行拼接,可以在少量數(shù)據集上訓練得到很好的分割效果,并且分割速度更快。DeepLab提出空洞卷積以提高網絡的感受野,使用CRF進行后處理,較好地恢復圖像邊緣。
稠密三維重建借助圖像和深度信息恢復物體的三維結構。KinectFusion是第一個實現(xiàn)實時稠密三維重建的工作,它采用ICP算法進行位姿計算,用截斷的帶符號距離函數(shù)(Truncated Signed Distance Function,TSDF)表示三維表面,但是需要固定空間的大小,不利于大場景重建。ElasticFusion采用Surfel表示空間中的三維點,結合ICP算法和直接法計算相機位姿,整合局部和全局回環(huán)檢測優(yōu)化整體結構,適用于大場景,并且是最適合作為語義三維重建的重建方法。BundleFusion采用SIFT關鍵點進行幀間匹配,將圖像幀分成不同的塊,每個塊內做局部位姿優(yōu)化,不同的塊之間做全局位姿優(yōu)化,是目前重建效果最好的算法。
語義三維重建作為對場景理解的有效形式近年來也得到較快發(fā)展。3D-SIS利用BundleFusion進行重建,對重建模型進行分割并賦予語義信息,但是此算法無法實時進行。MID-Fusion構建八叉樹語義地圖,與基于surful的模型相比不需要對空白區(qū)域進行建模,運行效率較高,在CPU上即可運行。MID-Fusion結合幾何信息、光度信息、語義信息進行分割,提高了分割精度,利用測量不確定性進行加權并重置目標追蹤使得魯棒性更好。MaskFusion實現(xiàn)了實例級語義地圖構建,重建采用Elasticfusion,通過Mask RCNN和基于幾何物體的邊緣檢測算法進行實例分割,對場景中的動態(tài)剛性物體重建和跟蹤性能較好,忽略非剛性動態(tài)結構。
本文與SemanticFusion和Hermans的工作類似,都是采用語義分割與三維重建相結合的方式。Hermans采用隨機決策森林獲得像素的語義信息,本文與SemanticFusion采用卷積神經網絡,與其不同的是本文僅使用RGB信息,不使用Depth信息輔助分割。文獻[2,17]采用貝葉斯濾波的方式融合語義信息,CRF進行后端優(yōu)化,本文則試驗采用加權融合的方式進行語義信息的融合,并在CRF過程中添加時間約束,從而更好地實現(xiàn)語義優(yōu)化。
算法結構如圖1所示。
圖1 算法結構總覽Fig.1 Overview of the algorithm structure
考慮到語義分割和三維重建都是非常耗時且占用計算資源,分割方法基于DeconvNe進行設計。將兩個1×1×4096的卷積層改成1×1×512和1×1×1024,減少模型參數(shù)量。在第12-13卷積層之間添加通道注意力為不同通道之間分配合理的權重,全連接層用1×1的卷積層替代。1×1×32的卷積將通道數(shù)壓縮,1×1×512的卷積將通道數(shù)還原,用Sigmoid函數(shù)計算通道之間的權重,并與輸入層相乘,通過殘差結構作為下一層的輸入。其計算公式為式(1):
其中u(i,j)為輸入圖像某通道的素值,w為學習得到的通道權重,u′(i,j)為輸出像素值。網絡結構如圖2所示。
圖2 語義分割網絡結構圖Fig.2 Network structure of sematic segmentation
系統(tǒng)將輸入圖像下采樣為224×224并送入網絡,分割結果上采樣到640×480并映射到重建好的三維空間點。
重建算法采用ElasticFusion,對輸入圖像,通過2種方式計算位姿:一是利用直接法計算當前幀與前一幀的位姿,二是重建好的模型在上一幀視角下的投影與當前幀利用ICP計算位姿。空間三位點用Surfel模型表示,除了存儲空間點的坐標,顏色,法向量,時間戳,還存儲其類別概率??臻g結構由變形圖表示,在小范圍內通過不同時間內得到的點云配準尋找局部回環(huán)約束,在大范圍內通過隨機蕨尋找全局循環(huán),利用局部回環(huán)和全局回環(huán)得到的幾何約束優(yōu)化變形圖,使重建結果更加精確。
算法最關鍵的部分是圖像之間位姿的計算,將所有圖像的坐標系統(tǒng)一到世界坐標系下,圖像的位姿包括相對于世界坐標系的旋轉矩陣R∈SO和平移向量t∈R,用變換矩陣T表示,如式(2),其中g,c表示從相機坐標系(camera)到全局坐標系(global)的變換:
不同ElasticFusion的是,本算法考慮每一對匹配點之間的差異,為它們分配相應的權值。主要包含兩個方面的差異。
2.2.1 Kinect測量精度造成的影響
Kinect的測量精度與圖像上的點距光心的距離有關,越接近光心,精度越高。試驗中發(fā)現(xiàn),越接近光心,點到平面的殘差計算越準確,因此應分配較高的權值,本文采用類似文獻[20]對頂點和法向量的處理方式如式(4):
其中γ是深度圖像上像素點與光心的距離除以圖像對角線長度的二分之一,σ取0.6。所以ICP公式為式(5):
2.2.2 點匹配精度造成的影響
在尋找當前圖像與模型反投影之間的匹配點時,采用ElasticFusion所述方式,對點對的篩選主要使用了兩種策略,如式(6)所示:
其中d是兩幀圖像對應的空間點在全局坐標系下的坐標差閾值(threshold),θ為空間點法向量的夾角閾值。
坐標差或夾角閾值的大小不同會導致點的計算精度不同,因此對匹配精度高的點分配較大的權值,方法如式(7)~(9):
其中w衡量距離精度帶來的影響,w衡量法向量因素帶來的影響,因此ICP公式為式(10):
2.2.3 綜合考慮Kinect測量精度和點匹配精度
綜合考慮傳感器測量精度與匹配誤差的影響如式(11):
通過二維語義分割,得到圖像中每個像素的類別概率P(u=c),而像素與空間三維點聯(lián)系,即u(pixel)與s(surfel)對應,因此可以在surfel中存儲類別信息P(s=c),其中c∈C表示某個類別,i=1,2,…,n為類別編號,為方便表示,下文將P(s=c)記為P(s)。
其中P(s)為前一時刻surfel的類別概率,P(s)為當前幀獲得的概率分布,取w為0,w為固定值(fixed)1。通過不斷地加權平均,新的分割結果與之前的結果融合,當最后觀測到這個空間點的圖像被融合后,更新結束。這樣可以去除極端結果的影響,得到整個序列上的最優(yōu)分布。
采用3種高斯核函數(shù)組成二元項,其中2種與SemanticFusion相同,式(18)考慮位置和顏色對語義類別的影響,(19)考慮位置和法向量對語義類別的影響。
同時,充分利用SLAM獲取的信息,即每個surfel存儲了這個像素點獲取的時間戳,而時間戳的記錄相對其他特征更加準確,因此加入第3種高斯核函數(shù):
式(20)表示在相近時間內觀測到的點應該具有相近的語義類別。其中k、k參數(shù)的取值與SemanticFusion相同,分別為θ=0.05、θ=0.1、θ=20、w=10、w=3。 Kinect的幀率為30 fps,將θ設置為一幀的間隔,即θ=1/30 s,其中w=3效果最好。
3.1.1 航天器艙內數(shù)據集
選取航天器艙內常見5種結構放置平臺上,模擬艙內環(huán)境,用Kinect在不同角度、不同焦距拍攝60 s,分別獲取1800幀RGB和Depth圖像,每隔10幀抽取一幀進行標注,艙內結構加平臺一共6類。手持Kinect進行語義重建會不可避免地發(fā)生輕微旋轉和焦距改變,試驗中將標注數(shù)據集在±10范圍內隨機旋轉,并以scale0.8進行隨機裁剪。最后獲得1500張訓練集數(shù)據和300張測試集數(shù)據,覆蓋實際運行中的各種情況。
3.1.2 網絡訓練
試驗電腦GPU為GeForce RTX 2080 Ti,CPU為Intel i7-7700 K,網絡訓練基于caffe框架。使用隨機梯度下降策略,初始學習率為0.001,每隔15 k次迭代學習率降為上一次的10%,以bach size 8在DeconvNet的基礎上進行微調,一共進行5×10次迭代。為了對比網絡的性能,以同樣的策略用航天器艙內數(shù)據集對DeconvNet進行訓練。
3.1.3 分割結果
分割結果如圖3,可以看出,與DeconvNet相比,本算法的分割結果更精確,邊緣更清晰。同時從像素精度(PA),平均像素精度(MPA),平均交并比(MIoU),頻權交并比(FW loU),模型權重大小(Weights)和分割時間(Time)幾個方面進行比較,如表1所示。
圖3 語義分割結果Fig.3 Results of semantic segmentation
可以看出,本算法不僅在分割結果上優(yōu)于原方法,模型參數(shù)量減少73%,平均分割時間減少到大約50%,這對耗時、占用計算資源的語義三維重建來說是非常重要的。
表1 語義分割性能對比Table 1 Comparison of semantic segmentation performance
3.2.1 重建數(shù)據集
為了便于比較,減少試驗變量,用Kinect實時運行20 s,采集668幀圖像制作重建數(shù)據集,并通過時間戳將RGB圖像與Depth圖像對應。在運行中輕微抖動相機以驗證算法的魯棒性。
3.2.2 常數(shù)確定
1)w中常數(shù)α和β的確定。對于式(9),選取TUM數(shù)據集中的Desk1場景進行實驗,α和β按表2中選取,分別比較它們的ATE和RPE,其結果如下:
表2 不同α和β的精度比較Table 2 Com parison of accuracy of differentαandβ\m
橫軸為α的取值。當α小于0.5時,軌跡精度呈上升趨勢;當α大于0.5時,軌跡精度呈降低趨勢;當α和β都取0.5時,ATE和RPE最小,本文中α和β都取0.5進行后續(xù)實驗。
2)E中常數(shù)μ和η的確定。對于式(11),同樣選取TUM數(shù)據集中的Desk1場景進行實驗,μ和η按表3中選取,分別比較它們的ATE和RPE,其結果如下:
當μ小于0.2時,軌跡精度呈上升趨勢;當μ大于0.2時,軌跡精度呈降低趨勢;當μ取0.2和η取0.8時,ATE和RPE最小,本文中取μ為0.2和η為0.8進行后續(xù)實驗。
表3 不同μ和η的精度比較Table 3 Com parison of accuracy of differentμandη\m
3.2.3 重建結果
在SLAM基準數(shù)據集TUM上對重建結果進行測試,TUM數(shù)據集提供了相機位姿的基準,選取絕對軌跡誤差(Absolute Trajectory Error,ATE)和相對位姿誤差(Relative Pose Error,RPE)進行評估,這兩個標準可以較準確地驗證SLAM系統(tǒng)的性能。在數(shù)據集里選取不同類型的場景進行測試,其結果如表4、表5所示。
表4 ATE對比Table 4 Comparison of ATE \m
表5 RPE對比Table 5 Com parison of RPE \m
表中ICP表示ElasticFusion中使用的ICP算法,ICP表示在原ICP上添加測量精度權重,如公式(5),ICP表示添加匹配點對權重,如公式(8),ICP表示2種權重結合,如公式(9)。
3種權重方式都使SLAM精度優(yōu)于原算法,其中添加ICP效果最好,僅在cabinet場景漂移量略差于其余2種,2種權重相結合并沒有得到較大改善。本文選擇添加ICP的ICP作為重建方法。圖4可視化ElasticFusion和ICP絕對軌跡誤差,圖5可視化相對誤差軌跡??梢郧逦赜^察到本文算法比原算法更加精確。
圖4 絕對軌跡誤差Fig.4 Absolute trajectory error
圖5 相對軌跡誤差Fig.5 Relative trajectory error
圖6 不同分割間隔的運行幀率和M pa比較Fig.6 Com parison of frame rate and MPA at different segmentatiob intervals
采用NYUv2 dataset數(shù)據集進行試驗,NYUv2主要采集室內的生活場景,本文采用13類標簽進行標注。在SemanticFusion的基礎上,只將語義融合改成加權平均的方式。在特定幀將融合更新后的surfel映射到相應的像素,將其保存成一張語義類別圖像,并與此幀圖像的語義基準進行比較。為了找出最優(yōu)的分割間隔,每k幀進行一次語義分割,對數(shù)據進行二次插值以擬合曲線,k= {1,2,4,8,10,12,16,24}。 圖6分別記錄了本文方法和貝葉斯濾波取不同間隔運行語義分割并融合更新后,surfel相對于基準的平均像素精度(Mpa)和算法的運行效率(fps)。
由圖6可以看出,2種方法隨著分割間隔的增加,運行效率都呈上升趨勢,這是因為語義分割過程比較耗時,減少這一過程可以加快運行速度。特別注意的一點是,當間隔10幀進行一次語義分割時,運行效率有一個小的躍升,大于間隔10幀時效率變化不大。加權平均最優(yōu)的分割間隔是24,運行效率為21.0844 fps,Mpa為0.5562。貝葉斯濾波最優(yōu)的分割間隔是10幀,運行效率為20.9887 fps,Mpa為0.5547。本文方法在Mpa上比貝葉斯濾波高了0.27%,運行效率上高了0.46%,證明本文方法的有效性
同樣在NYUv2數(shù)據集上進行試驗,語義更新的方法采用貝葉斯濾波,每隔10幀進行一次語義分割,每隔k幀運行一次CRF,k={10,40,80,120,200}。 因為運行CRF是非常耗時的過程,試驗中不比較算法的運行效率,只比較Mpa,圖7記錄了本文方法和SemanticFusion方法的運行結果。
圖7 地圖優(yōu)化結果比較Fig.7 Com parison ofmap regularization results
當間隔80幀進行一次CRF時,2種算法的Mpa都達到最大值,SemanticFusion的方法為0.5562,本文方法為0.5872,比SemanticFusion的提高了5.57%,證明本文方法是有效的。
圖8 不同方法語義地圖對比Fig.8 Semantic map between differentmethods
將算法應用在航天器艙內場景。對于本文方法,每隔24幀進行一次語義分割,每隔80幀運行一次CRF。對于SemanticFusion每隔10幀進行一次語義分割,每隔80幀幀運行一次CRF。結果如圖8??梢钥吹奖疚乃惴ㄝ^完整地獲取語義地圖,目標結構語義信息分布準確,背景噪聲過濾較好。
如圖9、圖10所示為2種算法不使用FCRF時對GPU和CPU的占用情況,其中,SemanticFusion占用CPU3.8 GB,占用GPU4745 MB;與之相對,本算法占用CPU2.9 GB,占用GPU3319 MB,CPU使用率減少23.68%,GPU使用率減少30.05%,這對算法將來部署到混合現(xiàn)實設備上是非常有意義的。
圖9 SemanticFusion GPU和CPU占用Fig.9 The usage of SemanticFusion
圖10 本文方法GPU和CPU占用Fig.9 The GPU and CPU usage of this algorithm
1)首次將語義三維重建應用于航天員訓練領域,聚焦混合現(xiàn)實訓練所需的艙內結構,為混合現(xiàn)實提供相應的技術輔助。
2)輕量化語義分割網絡,用SE模塊增強分割精度,分割效果更加精確,運行時間更少。
3)考慮傳感器測量誤差和點匹配精度誤差,設計加權ICP算法計算位姿,提高計算精度。
4)對不同時間獲取的語義分割結果,用加權平均的方法融合更新,提高語義精度。
5)運用surfel模型存儲特點,將圖像幀的時間戳作為優(yōu)化語義信息的約束,增強CRF的性能。