tft每日頭條

 > 科技

 > 三維重建基礎原理

三維重建基礎原理

科技 更新时间:2024-08-18 09:19:32

本文簡要介紹三維重建的基本流程,列舉若幹常見系統,給出項目和文檔地址,比較它們的工作管線,為深入鑽研系統結構作為鋪墊。

三維重建概述

我們知道,照相機/攝像機的原理是将一個三維場景或物體投影到二維平面上,過去是膠片,現在是經過感光元件再記錄到存儲器。降維的過程通常不可避免地會存在信息的損失,而所謂的重建(Reconstruction),顧名思義就是要從獲取到的二維圖像中複原原始三維場景或物體。

相對照相機的誕生,三維重建的概念本身說年輕也算年輕;但相比從2012年開始比較火的深度學習、神經網絡等概念,三維重建也算是古老的研究領域了,因為第一個基于圖像的三維重建系統誕生于1992年(CMU的Tomasi等人的工作)。

三維重建的流程大緻如下:首先,通過多角度拍攝或者從視頻中提取得到一組圖像序列,将這些圖像序列作為整個系統的輸入;随後,在多視角的圖像中,根據紋理特征提取出稀疏特征點(稱為點雲),通過這些特征點估計相機位置和參數;在得到相機參數并完成特征點匹配後,我們就可以獲得更稠密的點雲(這些點可以附帶顔色,從遠處看就像還原了物體本身一樣,但從近處能明顯看出它們隻是一些點);最後根據這些點重建物體表面,并進行紋理映射,就還原出三維場景和物體了。

圖中從左至右的過程依次是從原始圖像到稀疏點雲、重建稠密點雲、重建表面和紋理映射。對應列的綠色代表該系統具備此功能,紅色反之。

VisualSFM: A Visual Structure from Motion System

是否開源:否

文檔:小規模 (5k詞左右)

兼容性:兼容OS X/Windows/Linux

主要特性:完成從圖像到稠密點雲的重建過程,值得注意的是,VSFM系統的輸出可以放入CMP-MVS(Multi-View Reconstruction Preserving Weakly-Supported Surfaces, CVPR 2011),MVE(by Michael Goesele’s research group),SURE(by Mathias Rothermel and Konrad Wenzel), MeshRecon(by Zhuoliang Kang)等系統中進行後處理。

視頻中展示的稠密點雲精度比較高,但構建速度較慢(講解者在重構一個人形塑像時用了1小時40分鐘)。

三維重建基礎原理(對比幾個三維重建系統)1

Meshlab: the open source system for processing and editing 3D triangular meshes.

是否開源:是

文檔:無詳細文檔,但有視頻教程

兼容性:兼容OS X/Windows/Linux

主要特性:從稠密點雲進行表面重建,并完成紋理映射。

附加:可選取感興趣的區域(Region of Interest, ROI)進行編輯,比如降低面片數量、删除區域外的稀疏點等。

此外,諸多其他系統的點雲結果可在本系統内查看。(下圖紅色區域為用戶選擇的非感興趣區域,可進行删除)

三維重建基礎原理(對比幾個三維重建系統)2

Colmap: a general-purpose Structure-from-Motion (SfM) and Multi-View Stereo (MVS) pipeline with a graphical and command-line interface.

是否開源:是

文檔:有詳細說明,共13章節

兼容性:兼容OS X/Windows/Linux

主要特性:輸入多視角圖像,輸出稀疏點雲并估計相機參數,後續步驟需基于CUDA實現。

實際體驗效果:

三維重建基礎原理(對比幾個三維重建系統)3

可見重建精度還是不錯的,并且整體操作上比較快。

Bundler: Structure from Motion (SfM) for Unordered Image Collections

是否開源:是

文檔:小規模(5k詞左右),無詳細接口說明

兼容性:雖然已發布windows版本,但開發和測試主要集中在Linux平台

主要特性:輸入多視角圖像,輸出稀疏點雲并估計相機參數,與Colmap類似,視頻顯示在實際處理中Bundler速度更快(30-40min)。雖然精度和點雲密度不如colmap和visualSFM高,但本系統可以計算相機參數,因此可放入下面的CMVS系統中進行後處理。

下圖為bundler處理後的結果(在meshlab中查看),能夠明顯看到點雲密度不高。

三維重建基礎原理(對比幾個三維重建系統)4

CMVS: Clustering Views for Multi-view Stereo

是否開源:是

文檔:小規模,無接口說明

兼容性:有windows版本,linux為命令行版本

主要特性:将SfM系統的輸出(稀疏點雲)作為本系統的輸入,本系統可将輸入圖像分解成一組可管理大小的圖像集群。之後可以使用MVS軟件獨立并且并行地處理每個集群。本系統應該與SfM軟件(例如Bundler)和MVS軟件(例如PMVS2)結合使用。

不過視頻作者的例子中,bundler的輸出放在本系統中作為輸入可能會存在問題,使用時還需注意。(下圖為meshlab中查看的處理結果,細節丢失較嚴重)

三維重建基礎原理(對比幾個三維重建系統)5

MVE: a complete end-to-end pipeline for image-based geometry reconstruction.

是否開源:是

文檔:中等規模,有示例,有管線說明。

兼容性:windows/OS X均可運行,文檔說更推薦用OS X系統。

主要特性:包含了SfM, 點雲重建,表面重建。基本上能夠完成三維重建的整個流程。

實際體驗:已編譯運行,未進行完整操作流程。下圖為MVE的用戶界面

三維重建基礎原理(對比幾個三維重建系統)6

MVS-Texturing: 3D Reconstruction Texturing

是否開源:是

文檔:小規模,有用法說明。

兼容性:命令行程序

主要特性:能夠完成大規模圖像輸入的紋理映射。特别是能夠在縮放、模糊、遮擋物、曝光變化的情況下完成高質量的紋理映射。最後的效果比較幹淨。

三維重建基礎原理(對比幾個三維重建系統)7

OpenMVG: open Multiple View Geometry

是否開源:是

文檔:大規模,分8個章節。

兼容性:三大平台

主要功能:精确解決多視圖幾何中的常見問題;保證代碼可讀性和易用性。

OpenMVS: open Multi-View Stereo reconstruction library

是否開源:是

文檔:中等規模,分5節,邏輯比較順暢。

兼容性:三大平台均可編譯

主要功能:稠密點雲重建、表面重建、表面細化、紋理映射。

值得注意的是表面細化(mesh refinement)這一步,是其他系統中比較少見的,效果如下:

三維重建基礎原理(對比幾個三維重建系統)8

三維重建基礎原理(對比幾個三維重建系統)9

雖然OpenMVS和上面的OpenMVG并不是同一個團隊所作,但這兩個系統恰好一起完成了三維重建的整個流程,可以協同使用。


小結:對比現有若幹系統後,我決定從文檔較規範的系統入手,仔細挖掘其中的關鍵函數和對應的作用,試着逐漸理解。比如可視化程度比較好的meshlab,更适合OS X平台的MVE,以及能夠配套使用的完整庫OpenMVG和OpenMVS。順便挖一些有價值的論文一起啃。未來幾個月的任務仍然艱巨,不可懈怠。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved