TUM-多视图几何-BA优化
探讨了多视图几何中的束调整(Bundle Adjustment)技术,重点介绍了如何通过非线性最小二乘法优化3D重建问题。讲师详细解释了如何通过最小化重投影误差来处理2D坐标与真实3D模型之间的关系,并介绍了牛顿法和高斯-牛顿法的迭代优化技术。此外,还讨论了一种混合方法——Levenberg-Marquardt算法,该算法结合了牛顿法和梯度下降法的优点。最后,展示了如何利用互联网图像进行3D重建,并探讨了实时重建技术的发展。
重投影误差的最小化
重投影误差的定义与重要性
重投影误差是将观察到的2D坐标与模型预测的2D坐标之间的差距。通过最小化这种误差,可以有效地重建场景中的3D坐标,解决非线性优化问题。这种误差的定义和重要性在于,通过衡量观察到的2D点与实际3D模型投影之间的距离,可以优化场景重建的准确性。
重投影误差的数学表达式为:
\[
\text{Reprojection Error} = \sum_{i=1}^{N} \left| \mathbf{p}_i - \mathbf{\hat{p}}_i \right|^2
\]
其中,\(\mathbf{p}_i\) 是观察到的2D坐标,\(\mathbf{\hat{p}}_i\) 是由3D模型投影到图像平面的2D坐标。
牛顿法与高斯-牛顿法的应用
在处理非线性最小二乘问题时,迭代优化技术可以有效地找到局部最优解。牛顿法通过考虑更高阶导数来提供更快的收敛速度,适用于需要更精确估计的场景重建任务。牛顿法是一种二阶优化方法,通过在每次迭代中拟合抛物线并移动到其最小值来寻找最优解。这种方法在凸成本函数中表现良好,但在非凸问题中可能会出现误导。
高斯-牛顿法则是一种用于求解非线性最小二乘问题的迭代算法。通过近似海森矩阵(Hessian Matrix),简化了计算过程,只需计算一阶导数。
迭代优化的计算性能
选择合适的迭代方法对性能至关重要。虽然牛顿方法在迭代次数上表现优越,但每次迭代的计算成本可能导致整体运行时间不理想。对于大规模问题,处理Hessian矩阵的存储和计算是一个难题,为了解决这个问题,通常需要采用稀疏矩阵技术。
Levenberg-Marquardt算法
核心思想与应用
Levenberg-Marquardt算法结合了牛顿法和梯度下降法的优点,通过调整参数lambda在牛顿法和梯度下降法之间平滑过渡。小的lambda值使算法更接近牛顿法,而大的lambda值使其更接近梯度下降法。
在实际应用中,通常从梯度下降法开始,帮助找到成本函数的凹部分,随着迭代的进行,逐渐减小lambda值,最终转向牛顿法以更快地接近解决方案。
在多视图重建中的应用
该算法在多视图重建中尤为重要,它允许从多个图像中估计三维点和相机运动。初始化对束调整至关重要,通常使用线性算法进行初步计算,随后通过束调整优化整个系统的参数,从而提高结果的精度。
近年来,实时束调整技术的进步使得从互联网上的图像数据进行3D重建成为可能,极大地拓展了应用范围。
实时重建技术的发展
点云重建与应用
通过点云重建技术,可以从大量图像中恢复出三维场景。这种技术在旅游等热门地点的应用中尤为突出,能够有效提取和复原小型城镇的三维模型。点云重建的技术基础包括使用束调整算法来处理图像数据,使得从互联网上收集的大量照片能够高效地生成三维模型。
实时SLAM技术的发展
近年来,直接视觉SLAM技术的出现使得大规模和实时重建变得更加准确。传统的多视角重建方法依赖于特征点的提取和匹配,而这些方法在处理简单场景时效果较差。直接方法通过保留图像中的颜色信息来提高重建的准确性,并显著改善了性能。
直接方法的优势包括不需要分离的特征点提取过程,能够更快地生成相机运动和场景几何。这种方法通过最小化光度误差来优化几何,而不是几何重投影误差,从而提升了重建的准确性。
近期几何重建方法
2010年与2011年的重要进展
在2010年和2011年间,研究者提出了几种新的几何重建方法,推动了计算机视觉领域的发展。例如,Stumer的工作重新定义了光流方法,使几何信息的提取更加有效。
实时相机跟踪技术
Peetam提出的实时相机跟踪方法对后续的密集重建技术至关重要,通过利用相机参数,研究者能够在CPU上实现实时能力。这一技术为后续算法的发展奠定了基础。
Jakob Engle的最新技术
Jakob Engle及其同事开发的最新技术展示了如何在手持设备上实时计算相机运动和半密集几何,该方法在大规模重建中表现出色,能够处理不同空间尺度的结构重建。