劉睿
中煤(西安)地下空間科技發展有限公司,中國·陜西 西安 710000
三維重建經過數十年的發展,已經取得巨大的成功?;谝曈X的三維重建在計算機領域是一個重要的研究內容,主要通過使用相關儀器來獲取物體的二維圖像數據信息,然后對獲取的數據信息進行分析處理,最后,利用三維重建的相關理論技術重建出真實環境中物體表面的輪廓信息。基于視覺的三維重建具有速度快、實時性好等優點,能夠廣泛應用于人工智能、機器人、無人駕駛、SLAM、虛擬現實、3D打印和高精度模型建立等領域,具有重要的研究價值,也是未來發展的重要研究方向。
雖然三維重建技術發展迅速,但對于想使用該技術的普通人員來說,仍有技術與軟硬件設備的壁壘。為此,論文對近些年來基于視覺的三維重建技術方法的主要技術路線進行對比和分析,總結一條個人低成本的三維重構技術路線。
在接下來的章節中,論文從現有技術分析總結和開源軟件的技術路線實現三維重建的兩個方面進行研究。具體安排如下:總結三維重建的方法分類及單目視覺法的優缺點;重點說明開源軟件的三維重建技術研究;總結該技術的優缺點及發展。
從整體上來看,三維重建技術主要通過視覺傳感器來獲取外界的真實信息,然后通過信息處理技術或者投影模型得到物體的三維信息,也就是說,三維重建是一種利用二維投影恢復三維信息的計算機技術。1997年,Varady等[1]將數據獲取方式分為接觸式和非接觸式兩種。2005年,Isgro等[2]又將非接觸式方法分為主動式和被動式兩類。其后,在各自的方式方法中又細分出大量三維重建技術,各個三維重建技術的分類如圖1所示[3]。

圖1 三維重建技術分類
其中,被動視覺法的單目視覺法對比其他的方法研究價值更高,因為該方法法簡單、可靠、靈活、適用范圍廣,克服了立體視覺中視場小、立體匹配難的不足。但是缺點是不能夠得到深度信息,只能通過軟件算法優化,匹配特征點等方式進行自動化重建,常用的算法軟件包括大疆智圖Terra、Context Capture(原Smart3D)、Reality Capture、123D Catch等大場景的三維重建商業軟件與免費的在線重建軟件,商業軟件收費昂貴,免費在線軟件需要登陸外網平臺,但對于想了解三維重建的新人來說,也存在一定學習門檻。
經過不斷地探索研究,最終確定了使用手機攝像頭拍攝照片,利用開源軟件Meshroom自動建模、Instant meshes快速減面和Blender紋理烘焙,來實現低成本的三維重建技術。
物體的重建首先需要采集有效的影像資料,并利用計算機信息處理與自動建模技術建立出所拍攝的物體模型,論文采用Meshroom自動建模。通過這種方式建立出的模型三角面數量與精細程度將會非常高,但有一個問題,高面數且多邊面的模型,就會占用很多計算資源,這對于虛擬現實、3D打印、高精度模型等應用都是不利的。所以,需要對這個精細的高模,在通過自動或手動的方式,制作一個由四邊面構成的,面數非常低的低模,這個過程叫拓撲,論文使用Instant meshes重拓撲。再通過展開低模的UV,通過專業軟件,把高模上的細節用各種貼圖分別映射到低模上,這個過程叫烘焙紋理,論文使用Blender烘焙紋理。
相機設備的準備即可使用專業相機,也可用手機進行拍照。但需注意的是手機拍照應該使用專業模式,鎖定焦距,避免景深的產生,同時配合專業云臺或穩定拍照,確保照片不出現拖影現象,禁止使用閃光燈。
被拍攝物體,首先需要避免陰影、透明、高反射及純色物體,如果涉及該類型物體,可采用如噴涂透明或高反射物體,增加光源或減少地面接觸來減少陰影等方式進行處理。照明推薦柔和光或間接光,避免強光產生陰影。背景需要有一定紋理,方便軟件做對比分析。
拍攝模型重建對象的每一部分應至少3個不同的視點(但比較接近)進行拍攝。一般來說,連續影像之間的重疊部分應該超過60%。物體的同一部分的不同拍攝點間的分隔應該小于15°,如圖2所示。

圖2 物體拍攝手法
照片的采集是整個三維模型重建過程中非常重要的一步,重建結果的好壞往往與照片采集有很大的關系,而不是軟件操作的問題,影像分辨率高、重疊度大、清晰度高,拍攝光照條件好,建成的三維模型效果就會好。
在MESHROOM官網進行下載及安裝。節點編輯器界面中軟件已自行配置好節點,無需手動添加,只需導入拍攝好的照片組,再點擊開始便可直接進行自動建模,成果可在3d預覽窗口點擊載入模型進行查看。如需設置更加詳細的參數、算力及細節捕捉情況,可進入節點進行逐一了解,如有意見反饋和常規問題可登錄https://github.com/alicevision/meshroom/issues進行查找,這里不做過多說明。
MESHROOM自動建模完成的模型為OBJ格式,文件在紋理節點(Texturing)右鍵打開文件夾中查看,但此模型面數龐大,論文使用Instant meshes開源軟件進行重拓撲。在Instant meshes官網進行下載及安裝。
使用Instant meshes開源軟件重拓撲之前,也可將其導入Blender中對多余面、無效面、破洞等進行刪除與修改,在另存OBJ格式進Instant meshes進行工作。在Instant meshes的載入網格中加載我們需重拓撲的模型,設置一個預期的目標模型頂點數量,點擊定向場與位置場的處理,便可進入導出網格中的提取網格進行查看。該軟件還可設置轉換網格的結構、對齊邊界、調整與修改布線的形態趨勢等功能,同時還會顯示生成奇數點的數量與位置,可對其進行修改與完善。調整完畢之后另存該網格文件,文件類型為OBJ格式,需注意文件名后加入后綴.obj才可保存成功。
使用Instant meshes重拓撲后,物體模型的紋理結構將會丟失,而原始網格自動生成的UV映射也無法直接使用,所以我們需要對其進行紋理烘培,論文使用Blender開源軟件進行紋理烘培。在Blender官網進行下載及安裝。
由于Blender軟件是一款三維圖形圖像軟件,設計的操作與流程較為繁瑣,這里不做過多說明,只提供技術路線作為參考。首先對網格進行UV展開,BLENDER中有UV智能映射,之后給重拓撲后模型添加圖像紋理,新建一個空白圖像,就可以為這個空白圖像烘培紋理。Blender烘培紋理須在Cycles渲染引擎下才可使用,烘培類型為漫射,僅影響顏色,通過所選物體到活動物體的紋理烘培,便可進行烘培,想要進一步提升烘焙效果可以開啟罩體后烘焙。烘培完成后,便會得到我們需要的紋理圖像,如果需要對細節進行更深入的調整,如AO(Ambient Occlusion)、糙度、法線等,也可在Blender中進行設置。
至此,物體的三維重建工作便得以完成。
該技術方法全程使用開源軟件,不僅對比付費軟件能省下一筆資金,還能在深入了解軟件特性后對其進行二次開發,如Meshroom自動建模軟件可通過架設服務器對大場景模型進行自動重建;Blender二次開發的便捷重拓撲插件Quad Remesher等,并且經過對比與測試,該套技術方案無需連接互聯網,運行穩定流暢,操作步驟節點化、規則化,并在中國有中文翻譯的版本,有利于初學者對三維重建技術的探索與學習。
雖然該技術流程十分便利,但也存在一定的局限。單目視覺分類方法體系龐大,分類眾多,但是必須要滿足一些假設條件,而且容易受到光照、紋理等其他一些因素的影響,通用性較差,重建效果與拍攝的照片效果有很大關系,對比其他的三維重建技術重建效果不確定性較大,并且對于非靜態物體該技術基本無法使用。
雖然有著不少的缺點,但是相信隨著硬件技術的升級,如Iphone新加入的基于紅外結構光的深度相機,手機的不斷增加的多攝像頭等,更高效地將視覺傳感器獲取的三維信息與其他多傳感器信息進行融合;在軟件層面將視覺特征的檢測與匹配速度及精度進一步提升,從而滿足基于視覺的三維重建在復雜環境中的應用。相信基于開源軟件的單目視覺三維重建技術一定能夠得到長足的進步。