TUM-多视图几何-多视图几何中的重建问题1
本次探讨了多视图几何中的重建问题,重点在于如何从两幅图像中恢复相机运动和三维场景。通过讨论基本假设、相机运动的估计方法、极几何约束、以及八点算法等内容,系统地介绍了重建过程中的核心概念和挑战。
1. 重建问题的基本假设
在多视图几何中,重建问题涉及从两个视图中恢复相机的运动和三维场景。为了解决这一复杂问题,通常需要做出以下基本假设:
- 对应点假设:假设在两幅图像中存在一组已知的对应点,这些点来自同一场景的不同视角。尽管在实际应用中,匹配可能不完美,但初步分析时假设匹配是正确的。
- 静态场景假设:假设场景是静态的,即场景中的三维点在从一幅图像到另一幅图像的过程中没有移动。尽管这个假设在动态场景中可能不成立,但在初步分析中保持静态假设有助于简化问题。
- 固定相机参数假设:假设相机的内在参数已知且固定。这意味着在拍摄过程中,相机的焦距、光圈等参数不发生变化,这一假设简化了模型的复杂性。
2. 相机运动和三维位置的估计
在计算机视觉中,估计相机运动和三维点的位置是重建问题的核心挑战。这是一个典型的“鸡与蛋”问题,通过估计相机运动或三维点的位置,可以实现有效的场景重建。
- 相机运动与三维位置的相互依赖:如果能够准确估计相机的运动,那么就可以通过三角测量法恢复三维点的位置,反之亦然。这种相互依赖为重建提供了关键依据。
- 多视角信息的利用:在处理多视图场景时,重建算法可以扩展到多个图像。通过结合多个视角的信息,可以显著提高重建的精度和鲁棒性,从而更全面地理解场景的三维结构。
3. 重建问题中的优化与成本函数
重建问题通常涉及大量未知参数的估计,包括三维坐标和相机运动参数。为了得到准确的重建结果,需要定义适当的成本函数,并通过最小化投影误差来优化这些参数。
- 高维优化问题:在典型的重建问题中,涉及的未知参数可能多达数百个。例如,需要估计100个三维点的坐标和6个相机运动参数,总共306个参数。在这种高维空间中,选择合适的优化算法至关重要。
- 成本函数的选择:通过最小化投影误差,可以获得与观察数据最接近的三维点。然而,如何定义成本函数、是否对误差进行平方处理等因素都会对最终结果产生显著影响。
- 束调整(Bundle Adjustment):这是一种常用的优化策略,能够在多个图像中找到一致的解决方案。尽管该方法可能受到非凸性问题的影响,但它在实际应用中依然是解决重建问题的重要手段。
4. 极几何约束与八点算法
在没有三维参数的情况下,可以通过极线约束来估计相机运动和三维位置。极线约束是将观察到的二维参数与相机参数结合的一种方法,能够在不考虑三维位置的情况下进行相机运动的估计。
- 极线约束:极线约束通过将二维图像中的对应点与相机的旋转和平移参数结合起来,形成一组方程,从而实现相机运动的估计。这种方法特别适用于具有足够数量对应点对的情况。
- 八点算法:八点算法要求至少有八个独立的对应点对,以确保解的唯一性。该算法利用这八个点对,构建出本质矩阵,从而求解相机的旋转和平移。
- 本质矩阵与奇异值分解:本质矩阵将相机的旋转和平移结合在一起,通过奇异值分解可以提取出旋转矩阵和位移向量,进而推导出相机运动信息。
5. 三维几何关系与三重积
三维几何关系中的三重积计算可以帮助理解向量在空间中的关系。通过三重积的定义,可以判断这些向量是否共面,这对于理解相机运动的几何意义非常重要。
- 三重积的几何解释:通过三重积公式 \( T \times (R \cdot X_1) \cdot X_2 = 0 \) 可以确定向量是否共面。共面的向量意味着它们形成的几何结构在同一平面上。
- 本质矩阵的性质:本质矩阵具有特定的奇异值分解形式,通过了解这些性质,可以在实际应用中更准确地估计出相机的旋转和位移。
6. 从极几何约束推导相机位姿
通过极几何约束和本质矩阵,可以推导出相机的位姿(包括旋转和位移)。这一过程可以分离相机运动和三维位置的估计,从而简化三维重建问题。
- 旋转矩阵与位移矩阵:旋转矩阵表示从一个坐标系到另一个坐标系的转动,而位移矩阵表示物体在空间中的移动。通过本质矩阵可以同时获取这两者的信息。
- 多解问题:在估计本质矩阵时,通常存在两个可能的解。通过足够的点对和极几何约束,可以选择最合适的解,从而准确恢复相机运动。
7. 方程的线性化与尺度问题
在处理重建问题时,通过线性化方程可以简化求解过程,同时需要注意“尺度自由”问题,即在仅有两幅图像的情况下无法确定基线的大小。
- 方程的线性化:通过将已知参数与未知参数分离,可以将方程转化为线性形式,这有助于理解和求解问题。尤其是在优化问题中,线性化可以显著提高求解效率。
- 尺度问题:由于缺乏三维信息,仅通过两幅图像无法确定基线的大小。这种“尺度自由”现象在实践中需要通过其他传感器或额外信息来解决。
8. 八点算法的应用与改进
八点算法是解决重建问题的经典方法之一,然而它在某些情况下可能失效,因此需要结合其他信息或算法进行改进。
- 使用惯性传感器:在现代智能手机中,可以使用惯性传感器估算相机的旋转,从而减少需要的关键点数。这种方法能够有效提高重建的准确性。
- 旋转和平移的选择:八点算法存在多个可能的解,通过检查三维重建的深度值,可以选择最合适的解,从而排除不合适的解。
- 处理旋转失效:当相机仅进行旋转而无平移时,八点算法可能失效。但在实际操作中,由于微小的平移通常存在,这种失效情况很少发生。
本博客采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 MM's Journal of Technology!