光束平差法: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>。
根据之前的博文中推导过程可以得知,物体的世界坐标和像素坐标之间是存在一个关系的。即:

uijvij1=Pixjyjzj1 [ u i j v i j 1 ] = P i [ x j y j z j 1 ]
<script type="math/tex; mode=display" id="MathJax-Element-5"> \begin{bmatrix} u_{ij}\\v_{ij}\\1 \end{bmatrix}= P_i \begin{bmatrix} x_j \\y_j\\z_j\\1 \end{bmatrix} </script>
在重投影之后,我们还可以获得一个物理世界坐标(经过计算得出的世界坐标,并不一定为真实坐标)和像素坐标(并不一定为真实的像素坐标)。即:
uijvij1=MiPixjyjzj1 [ u i j ′ v i j ′ 1 ] = M i P i [ x j ′ y j ′ z j ′ 1 ]
<script type="math/tex; mode=display" id="MathJax-Element-6"> \begin{bmatrix} u'_{ij}\\v'_{ij}\\1 \end{bmatrix}= M_iP_i \begin{bmatrix} x'_j \\y'_j\\z'_j\\1 \end{bmatrix} </script>
那么由此,就可以得到两次投影的误差了:
ei=||(uij,vij)(uij,vij)|| e i = | | ( u i j ′ , v i j ′ ) − ( u i j , v i j ) | |
<script type="math/tex; mode=display" id="MathJax-Element-7"> e_i= ||(u'_{ij},v'_{ij}) -(u_{ij},v_{ij})|| </script>
从而可以得到优化的目标函数:
minRi,ti,Cji,jσijeij min R i , t i , C j ∑ i , j σ i j e i j
<script type="math/tex; mode=display" id="MathJax-Element-8"> \min_{R_i,t_i,C_j} \sum_{i,j} \sigma_{ij}e_{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

[1] Bundle Adjustment简述
[2] 单目视觉(4):SFM之相机模型(二)

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐