雷 蕾,朱思雨,駱漢賓
(華中科技大學 土木與水利工程學院, 湖北 武漢 430074)
隨著中國城市化進程的不斷推進,城鎮老舊小區改造需求日益凸顯,城市的發展從傳統城市向信息化、智慧化城市邁進[1]。準確、及時的數字化工程信息的采集是推動建筑業數字化、智能化的重要支撐工具[2]。相較于傳統的圖片、視頻等二維數據采集,三維數據的收集與分析也受到越來越多的重視。包含建筑幾何形狀和特征信息的三維模型使建造過程可視化、可分析,有助于緩解涉及多個參與方的建設項目中的沖突,解決傳統施工中信息獲取不連續、信息丟失、信息存儲困難等問題[3]。在實際工程應用中,以日或周定期獲取施工現場的三維模型代替傳統的手工編制在工程進度管理、現場管理方面的作用愈發顯著。特別是室內裝修工程,其施工工作面有限而且施工內容復雜,因此對施工次序和進度安排較為敏感,基于三維模型的實時自動化進度監測可避免資源不必要的浪費[4]。
在生成建筑三維信息模型方面,國內外學者做出了相關的研究。研究主要分為兩個方向:(1)基于BIM(Building Information Modeling)的參數化三維建筑模型,輔助建筑工程的設計管理、進度管理;(2)利用激光掃描儀、數碼相機、深度相機等設備獲取數據重建基于點云的場景模型,用于施工進度管理、現場管理和建筑物損傷測定。BIM技術是最早應用于三維建筑模型的數字技術,在工程領域應用最為廣泛。BIM模型包含了建筑物整個生命周期的信息,能有效提高工程全壽命周期管理水平。Matthews等[5]研究了BIM在信息傳遞方面的有效性,設計實時面向使用對象的雙向系統,實現鋼筋混凝土結構施工進度監控和管理。林佳瑞等[6]針對工程施工進度與資源均衡的關鍵需求,建立一個基于4D-BIM模型解決進度-資源均衡問題,通過4D-BIM模型進度及資源信息與離散事件仿真模型的轉化機制,實現進度-資源均衡模型的自動構建。隨著三維建模技術的不斷發展,一些專家學者應用基于點云的三維建模方法于工程中,利用數碼相機、激光掃描儀獲取點云數據對目標建筑物進行三維建模。Golparvar-Fard等[7]提出自動化進度監控模型,針對既有建筑,將基于現場圖片建立的室內場景三維模型和設計的BIM模型進行對比,自動識別建筑構件,進行自動化進度追蹤和偏差分析。三維激光掃描技術能夠快速、全面、海量地獲得原始點云數據,完整高精度地重建被測實體,從而真實描述掃描對象的整體結構及形態特性,具備建模效率高、精度高等優點。王代兵等[8]將三維激光掃描技術應用于天津周大福金融中心幕墻工程中,結合BIM技術與三維激光掃描儀對施工環節進行逆向設計、施工,提高了深化設計、生產施工的精確度,節約了施工成本。
BIM技術和基于點云的三維建模方法為建筑工程現場數據可視化、可分析提供技術支持,幫助提高管理效率。但目前上述方法應用于室內仍存在一定局限性:
(1)BIM模型的創建是一個單調耗時且易錯的工作,實際工程中一旦發生變更需要對BIM模型進行及時更新,更新過程會耗費較多的資源和人力。利用BIM模型對室內建筑工程進行進度監測,無法保證建模的實時性。
(2)利用激光掃描儀可較快獲取三維點云,但掃描設備昂貴,掃描數據量大、數據處理速度較慢,需專業人員操作。
(3)基于照片的三維建模方法,適應于圖像中可獲取較多特征點的特定場景,對無紋理信息的構件或場景建模能力較差。然而室內工程存在較大面積的無紋理構件,如墻面、地面等易導致模型中的空洞甚至建模失敗,因此僅利用彩色圖片的三維建模方法不適應于室內環境。
隨著深度相機(例如Microsoft?Kinect)的出現,為室內三維信息采集提供了一種新的思路。深度相機是一種可同時獲取中分辨率的彩色圖和深度圖的傳感系統。但由于傳感距離有限,深度相機多被用來識別和跟蹤建筑工人狀態[9]。Zhu等[3]通過融合視覺和空間數據生成室內三維點云模型,但這種方法需多個位置的數據采集與配準融合,不精確的配準易使模型出現偏移誤差。
針對上述方法的局限性,本文提出一種基于深度相機的實時室內場景重構方法。利用BundleFusion的改進算法,建立基于稀疏特征點匹配和稠密深度圖與圖片像素匹配并行的優化框架。在此框架內可實現實時全局優化的姿態,支持重定位的同時增強實時跟蹤的魯棒性,使之能夠適用于室內施工場景建模,輔助工程進度監測,現場材料管理,并進行實驗驗證。
基于深度相機的室內場景重構方法可應用于室內工程建設過程多個階段。利用深度相機建立基于機器視覺的實景快速重構模型,在工程施工階段,可動態識別、量化設計模型和實際施工模型之間的偏差,以減少返工造成的損失;另一方面可視化、可分析的圖像及三維環境模型有利于提高工程各參與方的溝通效率,提高施工現場管理水平。在工程竣工交付階段,不同于傳統交付書面文字或基于文字數據的電子存檔,圖像、視頻、空間三維模型作為數字產品驗收憑證,可實時記錄施工過程中的關鍵部位,使施工過程關鍵節點可回溯,可追蹤。利用深度相機采集施工現場數據,生成三維模型具有完整性好、細節還原度高、用戶友好度高等優點,可以為工程數據記錄不完善、不完整等問題提供解決方案,為項目后續運營維護提供數據支撐。
基于深度相機的室內場景重構方法是一種利用點云和深度圖像融合的場景重建技術,通過前端設備獲取深度圖像和彩色圖像,生成結構化的點云模型。基于深度相機的室內場景重構方法由以下四個主要步驟組成,分別是數據的獲取和處理、點云計算、點云配準及場景重建,如圖1所示。

圖1 基于深度相機的場景重構流程
(1)數據獲取:使用深度相機采集目標場景數據,其中利用RGB(Red,Green,Blue)攝像頭獲取彩色圖像,利用深度傳感器獲取深度圖像。
(2)數據處理:對獲得的深度圖像進行濾波處理以降低噪聲。
(3)點云計算:計算相機坐標系深度數據,計算各點坐標及法向量,生成三維點云數據。
(4)點云配準:以初始化深度圖生成點云模型對應的世界坐標系作為基準坐標系。隨著深度相機的移動,基于深度數據的最近點迭代算法求解當前相機坐標系與世界坐標系之間的轉換關系。通過矩陣變換使不同視角下生成的點云模型轉換至同一世界坐標系下。
(5)點云融合:當深度相機的移動未超出當前重建立方體的范圍時,通過最近點迭代算法最小化對應特征描述符間的歐式距離實現點云的融合。當深度相機的移動超出當前立方體的范圍時,將原始重建立方體與新的立方體中重合部分的顯存數據拷貝至新的重建立方體中,同時重建新的重構立方體與重合區域的截斷符號距離函數,以實現全局點云的融合。
(6)紋理映射:將獲取的彩色圖像作為紋理輸入,映射到三維點云模型中,得到可視化的真實三維模型。
實驗利用深度相機采集數據,該深度相機是微軟公司推出的一款游戲體感周邊外置設備—Kinect V1(第一代Kinect)。該設備攜帶彩色攝像頭和紅外攝像頭,可同時獲得640×480彩色圖像(RGB)、320×40深度圖像(Depth)信息,實現RGB-D數據的同步獲取及圖像生成。
在研究初始階段,嘗試采用KinectFusion方法實現室內場景重建。該方法通過Moving Volume算法實現重建立方體范圍的動態擴展,進而擴大建模范圍[10]。基于KinectFusion方法的室內場景重構流程如圖2所示。

圖2 基于KinectFusion方法的場景重構流程
(1)通過Kinect設備(下文簡稱“設備”)獲取彩色圖像和深度數據,利用雙邊濾波對深度圖進行降噪處理。
(2)依據獲取各幀相機與目標場景各點的距離,計算相機坐標系下各點的深度數據、坐標和法向量。基于獲取的彩色圖像信息和深度相機的內參、外參求解相機坐標系與世界坐標系間的變換矩陣,統一轉化為世界坐標系下的點云數據。
(3)利用最近點迭代算法(Iterative Closest Point,ICP),根據當前幀的點云與上一幀的預測點云,求解相機估計位置姿態。基于相機位姿添加后續幀的深度圖像更新點云模型;
(4)首先預定義一個虛擬立方體(Volume),該立方體是存儲于圖形處理器的三維數組,按照一定的精度將其均勻劃分為k×k×k個體素。每個體素包含兩個屬性,分別為截斷符號距離函數(Truncated Signed Distance Function,TSDF)和權重。三維重建過程中各幀圖像各點的值被映射到相應坐標體素中,即三維數據均保存到數據立方體中。隨著設備的持續移動,當掃描視野大部分超出當前重建立方體的范圍時,生成新的重建立方體隨著設備的移動路徑移動。設備移動過程中,計算當前幀相機位置姿態與重建立方體對應相機位置姿態間的旋轉角度差和平移分量差。若差值超過閾值需重新定位設備,生成新的對應重建立方體,若差值未超過閾值則繼續后續數據融合。
(5)計算重建立方體每個體素的TSDF值,在世界坐標系下完成點云中各點到相應體素的映射,保證立方體間重合區域可以完整重合,最終實現全局點云融合。
(6)最后基于移動立方體算法進行等值面提取,生成模型表面。
一系列基于KinectFusion場景重建方法在室內空間進行測試,利用Kinect采集數據、跟蹤設備生成深度圖像,最終融合生成三維模型。實驗運行條件為:Intel(R) CORE i7-8570H CPU,8G內存,系統獨立顯卡為NVIDIA Quadro P600,4G顯存。重建結果與范圍如圖3所示。

圖3 基于KinectFusion算法的重建模型
實驗結果顯示基于KinectFusion方法重建范圍非常有限,如需重建完整的室內模型后續需進行分塊點云間的二次拼接,但拼接過程易產生較大拼接誤差;另外在墻面、地板等弱紋理部位易出現明顯畸變與偏移,導致重建模型錯誤。
導致上述情況主要在于以下三點原因:
(1)Moving Volume算法雖可迅速切換重建立方體同時跟蹤設備位姿,但該方法占用顯存空間較大,無法通過一次掃描建立完整的房間模型;
(2)深度傳感器獲取的最佳監測距離為0.8~3.0 m,一旦設備到場景表面距離超過這個范圍,設備易出現跟蹤失敗或深度圖像錯誤的情況;
(3)最近點迭代算法通過幾何距離尋找對應點,容易陷入局部最優化,當噪聲較多時配準效果較差。
針對傳統KinectFusion算法存在的局限性,提出一種基于BundleFusion的場景重構方法以提高室內環境下相機跟蹤穩定性,同時擴展建模范圍以適應實際工程建模需求。該方法采用一種穩健的姿態估計策略,利用高效的層次化方法,有效優化RGB-D數據流中每幀對應的相機姿態,最終達到全局最優[11],詳細流程如圖4所示。

圖4 基于Bundlefusion算法的流程
相較于基于KinectFusion的重構方法,基于BundleFusion室內重構方法主要在點云配準及點云融合階段進行了優化改進。在點云配準階段,不同于前者利用最近點迭代(ICP)算法估計相機的位置姿態,基于BundleFusion的重構方法通過提取和匹配各輸入幀的尺度不變特征變換(Scale Invariant Feature Transform,SIFT)特征點建立稀疏對應關系。后續通過幾何一致性及稠密點云驗證優化全局相機的位置姿態。采用分層局部到全局(Local-to-Global)的優化策略,以減少優化變量個數,降低計算復雜度,保證輸入幀全局匹配的實時性。第一層為局部優化,將每個連續n幀組成一個數據塊,每個數據塊的大小相同,實現數據塊內連續幀相機位姿的優化。將完成局部優化的數據塊定義為關鍵幀進入第二層,實現全局關鍵幀的位姿優化。在GPU上利用預處理共軛梯度法求解全局相機的位置姿態,實現數據的高度緩存并生成準確的稠密點云。
在點云融合階段,將全局相機位置姿態映射到TSDF模型中,隨著每個數據塊內相機位姿的更新,TSDF值隨之更新。不同于KinectFusion方法中,將整個立方體(Volume)劃分成體素,該方法采用體素哈希(Voxel Hashing)策略[12],即只在相機測量到的場景表面劃分體素,建立體素與TSDF間的映射關系。計算分層優化后設備位置姿態改變量,將其中變化量最大的10幀數據移除后,重新融合優化后相機位置姿態,更新對應的TSDF模型以提高稠密點云的精度。最后提取對應的像素塊,生成紋理模型。
基于BundleFusion的室內重構方法因其采用SIFT特征點匹配,不嚴格依賴時間的一致性,使其允許自由的掃描路徑,具有操作簡便、可重定位、用戶友好等優勢。通過基于數據塊與相機位姿相互關聯的全局實時優化,增強傳感器遮擋區域和無特征區域跟蹤的魯棒性。針對基于Moving Volume重建方法占用顯存較大,建模范圍較小的局限性,通過分層的二階段優化策略及體素哈希表面重構策略降低占用顯存,擴大室內場景的重建范圍。
基于BundleFusion的建模方法可以通過一次掃描建立完整的室內空間環境,無需二次拼接,場景重構模型與點云結果如圖5所示。

圖5 基于BundleFusion方法重建的模型
通過對同一場景,利用相同的數據采集設備為第一代Kinect及數據處理平臺Intel(R) CORE i7-8570H CPU,NVIDIA Quadro P600 GPU,對比不同建模方法下模型范圍與精度的差異。相較于廣泛應用的KinectFusion,本文采用的基于BundleFusion的室內建模方法,在建模范圍上大幅擴展。
其中前者僅適應于小于7 m3室內空間的三維重建,深度相機掃描軌跡長度不超過16 m,生成點云數量大概為60萬;基于Bundlefusion方法的室內重構模型可擴展至75 m3,掃描軌跡長度可達到80 m,點云數量高達180萬~200萬。對比兩組模型外觀表征,本文使用方法增強了設備跟蹤的魯棒性,在白墻等弱紋理區域建模效果得到了明顯提升,無較大空洞、明顯偏移及錯位等情況,如圖6所示。

圖6 基于不同建模方法實驗結果對比
利用CloudCompare軟件對兩種算法重建點云模型分別進行精度驗證。以實際測量值作為標準,選取特征線上的點測量兩點間距離,為降低偶然誤差的影響,取三次測量的平均值作為模型測量值,且三次測量值間誤差低于0.3 mm。
場景1中門的實際高度為2.11 m,基于KinectFusion算法構建的模型中門高度為2.129 m,模型尺寸和實際尺寸的誤差為0.9%;基于BundleFusion算法構建的模型中門高度為2.116 m,模型和實際尺寸的誤差為0.28%。場景2中畫框的實際尺寸為0.87 m×0.87 m,基于KinectFusion算法構建的模型中畫框尺寸為0.890 m×0.860 m,模型尺寸和實際尺寸的誤差上限為2.30%;基于BundleFusion算法構建的模型中畫框尺寸為0.881 m×0.860 m,模型和實際尺寸的誤差上限為1.26%。
根據兩組實驗結果可知,在紋理信息較少的白墻等處易出現較大的重建誤差(圖7)。基于KinectFusion算法室內建模最大重建誤差為2.3%,基于BundleFusion算法最大重建誤差為1.26%。實驗結果表明基于BundleFusion的建模方法更適應于較大的室內空間,在提升模型精度的同時,在弱紋理區域具有較好的魯棒性。

圖7 不同算法模型精度對比
本文提出一種基于深度相機的室內三維重建方法,結合Kinect設備與BundleFusion算法,針對室內空間掃描一次即可完成實時的三維重建。該方法實現擴展重建范圍,提高相機跟蹤的穩定性,同時保證建模的速度和精度。
(1)首先驗證KinectFusion方法的建模范圍,分析該算法的不足,證明該方法的重建范圍不適應工程實際。
(2)其次針對KinectFusion方法的局限性,提出一種基于深度相機的BundleFusion室內場景重構方法,該方法用戶友好程度高且更適用于實際工程應用。
(3)最后通過定性與定量結合方法對比分析兩種不同方法的重建模型結果,比較兩種方法在建模范圍、建模表觀紋理及建模精度方面的差異。
但是該方法也存在一些局限性,基于視覺的特征提取和匹配仍受環境條件(如照明、陰影,缺乏紋理和顏色信息等)影響,此外對于較為開放的室內環境建模仍有難度。目前建模結果可應用于動態的工程形象進度追蹤,但未包含構件的語義信息。未來研究方向將會集中于:
(1)提高系統在一般環境條件(例如光線條件不足,缺乏紋理、顏色信息等)下的魯棒性。
(2)提高基于深度相機的三維重建技術數據采集的自動化程度,并改進算法提高模型精度。
建立構件層次的點云分割與標定,將語義化信息模型和計劃工程進度鏈接起來,實現工程進度全周期追蹤。