多视图三维重建:从照片到可测量的三维模型
1. 为什么照片需要“补回深度”
照片把三维世界投影到二维平面,记录了颜色和纹理,却丢失了深度信息。想象一下,当我们看一张建筑照片,我们知道窗户在画面左上方,却不能直接知道它离相机多远;看一张文物照片,我们能看到正面纹路,却无法绕到背面观察结构。
多视图三维重建正是为分析决这个问题。顺利获得多张不同视角、相互重叠的照片,反推出相机拍摄位置和场景三维结构,最终得到可旋转、可测量、可渲染的三维模型。



图 1 二维平面照片
多视图三维重建是一类基于计算机视觉的三维建模方法。它通常不依赖专门的深度传感器,而是利用普通相机或手机拍摄的一组照片,顺利获得特征匹配、相机位姿估计、三角化、稠密匹配、网格生成和纹理映射等步骤恢复三维模型。
它与“拍全景”不同。全景图主要把多张照片拼成更宽的二维视野,而多视图重建要恢复真实空间中的深度和表面结构。因此,它更强调照片之间的几何关系、相机运动轨迹和空间尺度。

图 2 多视图三维重建流程
采集照片时,需要围绕目标从多个角度拍摄,并确保相邻照片之间有足够重叠。重叠区域越稳定,算法越容易找到同一个物体表面的对应点。曝光、焦距、清晰度和运动模糊也会直接影响重建质量。
算法会在每张照片中寻找角点、边缘、纹理突变等稳定特征,并判断哪些特征在不同照片中对应同一个真实位置。匹配越准确,后续相机位姿和三维点计算越可靠。

图 3特征匹配为三角化给予几何线索
运动恢复结构(Structure from Motion, SfM)根据匹配点估计每张照片的相机位置和朝向,并顺利获得三角化计算出一批稀疏三维点,像骨架一样勾勒出场景的大致形状。

图 4 恢复相机位姿与稀疏点云
多视图立体(Multi-View Stereo, MVS)进一步在图像中寻找更密集的像素对应关系,估计每个像素的深度,从而生成稠密点云。随后,系统会把点云连接成三角网格,并把照片中的颜色和纹理映射到网格表面。

图 5 从稀疏点云到稠密表面
|
因素 |
理想做法 |
常见问题 |
|
重叠率 |
相邻照片保持60%以上重叠 |
重叠不足会导致相机位姿断裂 |
|
表面纹理 |
选择纹理丰富、边缘清晰的物体 |
纯色墙面、玻璃和镜面难以匹配 |
|
光照 |
保持均匀、稳定、不过曝 |
强阴影和反光会改变局部外观 |
|
尺度 |
加入标尺或已知尺寸物体 |
模型可能只有形状,没有真实尺度 |
|
拍摄路径 |
围绕目标陆续在拍摄,避免大跨度跳角度 |
角度变化过大容易匹配失败 |
多视图三维重建把多张平面照片变成可计算的三维结构。它依赖的不只是图像清晰度,更依赖稳定的几何关系。拍得越陆续在、越重叠、越清晰,算法就越容易恢复出准确、完整、可用的三维模型。如下图所示顺利获得CT切片照片重建医疗三维影像。
主要应用场景包括:




图6 顺利获得CT数据重建的人体器官
附件下载: