单目视觉(7):SFM之Bundle Adjustment (六)
光束平差法:Bundle Adjustment引入Bundle Adjustment (BA)的翻译可以看出其利用的一组数据(“光束”)来进行最小化误差(“平差”),其本质就是一种优化算法。在SFM中,我们采用了多个视角的不同图像来计算物理世界的实际位置(三角定位)。那么三角定位得到的物体的三维位置信息肯能是不准确的。我们按照这个信息再次重新在像平面上进行投影(重投影),得到的新的...
光束平差法:Bundle Adjustment
引入
Bundle Adjustment (BA)的翻译可以看出其利用的一组数据(“光束”)来进行最小化误差(“平差”),其本质就是一种优化算法。在SFM中,我们采用了多个视角的不同图像来计算物理世界的实际位置(三角定位)。那么三角定位得到的物体的三维位置信息肯能是不准确的。我们按照这个信息再次重新在像平面上进行投影(重投影),得到的新的投影位置。该位置与第一次投影(相机成像时为第一次投影)可能存在误差。BA模型最小化的误差就是这个重投影误差。
模型
假设物理世界的物体的坐标为 C(x,y,z) C ( x , y , z ) <script type="math/tex" id="MathJax-Element-1">C(x,y,z)</script>,其在像平面上的成像的坐标为 (u,v) ( u , v ) <script type="math/tex" id="MathJax-Element-2">(u,v)</script>。那么在SFM中,如果世界坐标系固定,也就是物体的世界坐标不发生变化。而相机在不同角度进行对物体进行拍摄成像,那么在不同位置 Pi P i <script type="math/tex" id="MathJax-Element-3">P_i</script>中像素位置是不一样的 (uij,vij) ( u i j , v i j ) <script type="math/tex" id="MathJax-Element-4">(u_{ij},v_{ij})</script>。
根据之前的博文中推导过程可以得知,物体的世界坐标和像素坐标之间是存在一个关系的。即:
在重投影之后,我们还可以获得一个物理世界坐标(经过计算得出的世界坐标,并不一定为真实坐标)和像素坐标(并不一定为真实的像素坐标)。即:
那么由此,就可以得到两次投影的误差了:
从而可以得到优化的目标函数:
其中, σij σ i j <script type="math/tex" id="MathJax-Element-9">\sigma_{ij}</script>表示 Cj C j <script type="math/tex" id="MathJax-Element-10">C_j</script>是否在 Pi P i <script type="math/tex" id="MathJax-Element-11">P_i</script>位置的像上是否有投影。
优化方法
当将问题转化为无约束的优化模型后,只需要根据实际的需求选择不同的优化方法来优化目标函数,常用的方法有梯度下降法、最速下降法、牛顿法、拟牛顿法、LM算法等。部分相关算法可以参考:无约束优化。
Reference
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)