多樓層室內(nèi)環(huán)境下的三維幾何重建
引導(dǎo)語:本文為“3D視覺創(chuàng)新應(yīng)用(三維重建)競賽”作品集系列之一,該作品由來自湖南大學(xué)團(tuán)隊(duì)完成,團(tuán)隊(duì)成員:彭以平,陶梓銘,袁毓聰,王世勛,談暢。全文約3088個(gè)字,閱讀時(shí)長約8分鐘,旨在為更多開發(fā)者提供學(xué)習(xí)參考。
一、背景介紹
在智能制造、AR、機(jī)器人、室內(nèi)導(dǎo)航等領(lǐng)域,三維重建都有很廣泛的應(yīng)用前景。隨著消費(fèi)級(jí)RGB-D相機(jī)的普及,三維重建的應(yīng)用場景也得到了進(jìn)一步的擴(kuò)展。奧比中光自主研發(fā)的深度相機(jī)Astra Pro的成本相對(duì)較低,同時(shí)也可以方便、快捷地對(duì)物體進(jìn)行3D成像,并且具有精度高的優(yōu)點(diǎn)。針對(duì)三維重建相關(guān)技術(shù)進(jìn)行研究和加以應(yīng)用,必將極大程度地促進(jìn)計(jì)算機(jī)視覺等領(lǐng)域的發(fā)展,并進(jìn)一步深度影響工業(yè)生產(chǎn)活動(dòng)以及人們的生活方式。
注1:文末附【三維重建】交流群
注2:整理不易,請(qǐng)點(diǎn)贊支持!
轉(zhuǎn)載自:3D視覺開發(fā)者社區(qū)| 作者:彭以平
應(yīng)用場景
目前,室外場景的導(dǎo)航已經(jīng)非常普及,而諸如火車站、商場、超市等多樓層室內(nèi)場所通常規(guī)模很大,造成衛(wèi)星定位信號(hào)衰減,很難做到精確定位和導(dǎo)航。并且,該類場所的內(nèi)部路線很復(fù)雜,人們會(huì)有較強(qiáng)的室內(nèi)導(dǎo)航需求。基于藍(lán)牙信標(biāo)和WiFi信號(hào)的室內(nèi)定位需要在室內(nèi)場所部署和維護(hù)基站,并且建筑同樣會(huì)對(duì)信號(hào)進(jìn)行衰減。對(duì)多樓層的室內(nèi)環(huán)境進(jìn)行三維重建,建立室內(nèi)地圖,可以進(jìn)行基于視覺的室內(nèi)定位、導(dǎo)航,具有精度高、易維護(hù)等優(yōu)點(diǎn)。此外,混合現(xiàn)實(shí)(MR)、室內(nèi)裝修等領(lǐng)域需要三維模型為基礎(chǔ),通過三維重建得到的室內(nèi)場景模型可以很大程度地提高應(yīng)用的擬真度,提供更好的用戶體驗(yàn)。
項(xiàng)目概述
本項(xiàng)目的計(jì)算平臺(tái)和RGB-D相機(jī)分別使用奧比中光研發(fā)的Zora P1開發(fā)板和Astra Pro深度相機(jī)?;贠RB-SLAM2框架進(jìn)行位姿估計(jì)并進(jìn)行擴(kuò)展,構(gòu)建了一套完整的多樓層大型室內(nèi)環(huán)境稠密重建的系統(tǒng),完成了室內(nèi)三維模型的獲取,重點(diǎn)對(duì)以下方面進(jìn)行了考慮:全局一致性模型。相機(jī)位姿估計(jì)的誤差會(huì)隨著掃描的進(jìn)行而累積,若不對(duì)累計(jì)誤差進(jìn)行消除,重建的三維模型將出現(xiàn)失真。為了獲取全局一致的三維模型,本項(xiàng)目使用BoW(Bag-of-Words)進(jìn)行回環(huán)檢測(cè),使用位姿圖優(yōu)化和全局BA(Bundle Adjustment)對(duì)位姿漂移和地圖點(diǎn)坐標(biāo)誤差進(jìn)行修正。模型更新。三維重建輸入的是圖像序列,不僅需要算法能夠選擇關(guān)鍵幀,而且還需要在檢測(cè)到新關(guān)鍵幀時(shí),能夠根據(jù)其位姿融合到三維模型中。我們使用TSDF(truncated signed distance function)地圖來分別對(duì)三維模型進(jìn)行基于體素的融合和更新。高質(zhì)量表面重建。RGB-D相機(jī)獲取的是深度圖,根據(jù)相機(jī)內(nèi)參生成點(diǎn)云,然而完成三維重建最終需要獲得連續(xù)的表面而非離散的三維點(diǎn)。我們采用Marching Cube算法對(duì)離散的空間點(diǎn)進(jìn)行重建獲得三角面片。
二、系統(tǒng)構(gòu)成
本項(xiàng)目硬件系統(tǒng)由Zora P1開發(fā)板、Astra Pro深度相機(jī)、11.6寸液晶屏,以及為其供電的鋰電池和逆變器組成,如圖 1所示。

Zora P1開發(fā)板具有2個(gè)USB3.0和USB2.0接口,且具有MIPI-CSI接口和以太網(wǎng)口等,接口豐富,可以方便地連接相機(jī)等外設(shè)。開發(fā)板自帶Armbian操作系統(tǒng),該系統(tǒng)為ARM開發(fā)板專門發(fā)行并重新編譯,因此使用Ubuntu的開發(fā)者也可以快速上手。Astro Pro深度相機(jī)的3D成像方式為單目結(jié)構(gòu)光,適用于近距離和中遠(yuǎn)距離的室內(nèi)場景,具有精度高、功耗低等優(yōu)點(diǎn)。可以基于該相機(jī)實(shí)現(xiàn)多種功能,例如面部識(shí)別,手勢(shì)識(shí)別,人體跟蹤,三維測(cè)量,環(huán)境感知和三維地圖重建,可應(yīng)用于客廳娛樂、安防監(jiān)控、測(cè)量、3D掃描、體感交互、商顯等多種場景。
三、算法概述
本項(xiàng)目主要實(shí)現(xiàn)多樓層大型室內(nèi)環(huán)境的三維重建。以O(shè)RB-SLAM2開源算法作為基礎(chǔ)框架,通過ORB特征描述子獲取包含相機(jī)位姿、時(shí)間戳在內(nèi)的關(guān)鍵幀信息,根據(jù)關(guān)鍵幀信息匹配對(duì)應(yīng)的位姿、RGB和深度信息后通過TSDF實(shí)現(xiàn)三維點(diǎn)云重建。為復(fù)現(xiàn)真實(shí)的、帶紋理且空間連續(xù)的三維環(huán)境,本算法采用統(tǒng)計(jì)濾波優(yōu)化點(diǎn)云的質(zhì)量,通過Marching Cube算法在不丟失環(huán)境細(xì)節(jié)的前提下實(shí)現(xiàn)三角面片的重建。本算法的具體設(shè)計(jì)描述如下所述:S1:本算法在ORB-SLAM2框架上進(jìn)行擴(kuò)展,構(gòu)建了一套完整的多樓層大型室內(nèi)環(huán)境稠密重建的系統(tǒng)。原理示意圖如圖 2所示:

S2:在ORB-SLAM2的框架中,通過ORB特征描述子實(shí)現(xiàn)跟蹤、局部建圖與閉環(huán)功能,根據(jù)制定的規(guī)則確定關(guān)鍵幀,并在地圖構(gòu)建的同時(shí)插入關(guān)鍵幀并進(jìn)行篩選,最后獲取稠密三維重建所需的關(guān)鍵幀信息。
S3:根據(jù)篩選后的關(guān)鍵幀信息,對(duì)位姿、RGB圖、深度圖及時(shí)間戳信息進(jìn)行匹配。在傳統(tǒng)點(diǎn)云融合與重建中,大多優(yōu)先通過深度圖與RGB圖計(jì)算點(diǎn)云數(shù)據(jù)再根據(jù)位姿信息進(jìn)行點(diǎn)云與點(diǎn)云之間的融合,但這種方式存在計(jì)算復(fù)雜度高、點(diǎn)云累加所引起的密度爆炸以及位姿計(jì)算的累計(jì)誤差等缺陷。為避免上述問題,本算法采用TSDF根據(jù)關(guān)鍵幀信息對(duì)點(diǎn)云數(shù)據(jù)集進(jìn)行重建,通過預(yù)先構(gòu)建一個(gè)三維立體空間來實(shí)現(xiàn)可控的點(diǎn)云密度并減少不必要的重復(fù)計(jì)算。
S4:對(duì)重建后的三維環(huán)境點(diǎn)云進(jìn)行統(tǒng)計(jì)濾波以優(yōu)化點(diǎn)云質(zhì)量。從數(shù)據(jù)采集到重建的過程中,盡管在ORB-SLAM2框架中通過ORB描述子避免噪點(diǎn)和離群點(diǎn)對(duì)位姿估計(jì)的影響,但由于傳感器采集的數(shù)據(jù)本身存在噪點(diǎn)和離群點(diǎn),重建結(jié)果將不可避免的引入這些所謂的‘壞點(diǎn)’。為解決上述重建后點(diǎn)云的質(zhì)量問題,本算法通過對(duì)點(diǎn)云空間中任意點(diǎn)的鄰域進(jìn)行統(tǒng)計(jì)學(xué)分析,繪制鄰域特征表征的統(tǒng)計(jì)直方圖,根據(jù)所謂‘壞點(diǎn)’與正常點(diǎn)存在的特征差異對(duì)直方圖進(jìn)行裁剪,實(shí)現(xiàn)對(duì)點(diǎn)云的統(tǒng)計(jì)濾波。
S5:通過Marching Cube對(duì)重建后的點(diǎn)云實(shí)現(xiàn)三角面片重建。由于點(diǎn)云數(shù)據(jù)在三維空間為離散表示,難以直觀反映環(huán)境的紋理,在保留紋理的細(xì)節(jié)的前提下,以Marching Cube復(fù)現(xiàn)真實(shí)的帶紋理的多樓層大型室內(nèi)環(huán)境,最終實(shí)現(xiàn)完整的多樓層大型室內(nèi)環(huán)境稠密重建系統(tǒng)。
四、技術(shù)優(yōu)勢(shì)分析
基于ORB特征點(diǎn)的視覺前端
ORB特征點(diǎn)由改進(jìn)的FAST關(guān)鍵點(diǎn)和BRIEF描述子組成,具有旋轉(zhuǎn)不變性和尺度不變性。相比于SIFT和SURF等特征點(diǎn),ORB特征點(diǎn)擁有計(jì)算耗時(shí)低,在CPU上耗時(shí)小于33ms(30FPS),實(shí)時(shí)性高的優(yōu)點(diǎn)。FAST關(guān)鍵點(diǎn)對(duì)中心點(diǎn)周圍像素的灰度值與中心點(diǎn)灰度值進(jìn)行比較,最后使用非極大值抑制來避免角點(diǎn)在一定區(qū)域內(nèi)過于稠密的現(xiàn)象。由于步驟簡單,F(xiàn)AST關(guān)鍵點(diǎn)可以滿足視覺前端所需的實(shí)時(shí)性要求。此外,通過構(gòu)建圖像金字塔,在金字塔的各層進(jìn)行FAST關(guān)鍵點(diǎn)檢測(cè)可以滿足尺度不變性的需求。采用灰度質(zhì)心法則可以構(gòu)建主方向,從而實(shí)現(xiàn)旋轉(zhuǎn)不變性。BRIEF描述子采用二進(jìn)制的描述向量對(duì)關(guān)鍵點(diǎn)的周圍像素進(jìn)行描述,特異性強(qiáng),適用于特征匹配和基于外觀的場景識(shí)別來進(jìn)行回環(huán)檢測(cè)。
基于TSDF的點(diǎn)云融合
針對(duì)傳統(tǒng)的深度圖到點(diǎn)云融合步驟存在點(diǎn)云密度爆炸、計(jì)算復(fù)雜及累計(jì)誤差等缺陷,本項(xiàng)目利用選取的關(guān)鍵幀信息匹配位姿、RGB圖和深度圖,通過截?cái)嘤蟹?hào)距離函數(shù)TSDF(Truncated Signed Distance Function)實(shí)現(xiàn)三維點(diǎn)云融合。TSDF地圖是基于體素的重建方法,由三維體素組成一個(gè)三維立方體,如圖 3所示。TSDF地圖可以運(yùn)行在GPU上,各個(gè)體素由GPU并行更新,所以具有更新速度快的優(yōu)點(diǎn),可以滿足實(shí)時(shí)重建的要求。其每個(gè)體素內(nèi)存的是-1到1的值,負(fù)數(shù)表示該體素在物體內(nèi)部,正數(shù)表示該體素在物體內(nèi)部,且絕對(duì)值的越大代表距離物體表面越遠(yuǎn)。由此,點(diǎn)云經(jīng)過TSDF地圖融合后,提取表面的過程就是提取零等值面的過程。

基于Marching Cube算法的表面重建
點(diǎn)云數(shù)據(jù)在三維空間中為離散表示,對(duì)TSDF地圖使用移動(dòng)立方體(Marching Cube)算法來對(duì)等值面進(jìn)行提取,實(shí)現(xiàn)三角面片重建,復(fù)現(xiàn)真實(shí)的帶紋理的多樓層大型室內(nèi)環(huán)境。Marching Cube算法基本思想是逐個(gè)處理標(biāo)量場中的體素,分離出與等值面相交的體素,采用插值計(jì)算出等值面與立方體邊的交點(diǎn)。根據(jù)立方體每一頂點(diǎn)與等值面的相對(duì)位置,將等值面與立方體邊的交點(diǎn)按一定方式連接生成等值面,作為等值面在該立方體內(nèi)的一個(gè)逼近表示。每個(gè)體素的8個(gè)頂點(diǎn)的值各有高于等值面和低于等值面2個(gè)狀態(tài),因此共有256個(gè)狀態(tài)。在考慮旋轉(zhuǎn)和發(fā)射對(duì)稱性時(shí),總共有15種基本模式,如圖 4所示。

五、測(cè)試結(jié)果
我們使用圖 1中的硬件系統(tǒng),以O(shè)RB-SLAM2開源算法作為基礎(chǔ)框架,進(jìn)行基于ORB特征點(diǎn)的視覺前端和包括位姿圖優(yōu)化和全局BA的后端。隨后提取圖 2中由時(shí)間戳、位姿、RGB和深度圖組成的匹配信息對(duì),采用TSDF融合,并使用Marching Cube算法重建出三角面片,構(gòu)建了一套完整的多樓層大型室內(nèi)環(huán)境稠密重建的系統(tǒng)。重建結(jié)果如圖 5所示。



六、演示Demo
請(qǐng)移步至:多樓層室內(nèi)環(huán)境下的三維幾何重建:https://zhuanlan.zhihu.com/p/346979021
本文僅做學(xué)術(shù)分享,如有侵權(quán),請(qǐng)聯(lián)系刪文。
3D視覺工坊-三維重建交流群
已建立3D視覺工坊-三維重建微信交流群!想要進(jìn)三維重建學(xué)習(xí)交流群的同學(xué),可以直接加微信號(hào):CV_LAB。加的時(shí)候備注一下:三維重建+學(xué)校+昵稱,即可。然后就可以拉你進(jìn)群了。
強(qiáng)烈推薦大家關(guān)注3D視覺工坊知乎賬號(hào)和3D視覺工坊微信公眾號(hào),可以快速了解到最新優(yōu)質(zhì)的3D視覺與SLAM論文。