3

例如,对于 6 自由度相机状态,两个相机具有12状态参数和12*12协方差矩阵(假设高斯分布)。当对相机应用 6 自由度刚性运动时,该协方差如何变化?

如果 6 自由度也是高斯分布怎么办?

4

1 回答 1

3

您可以使用“前向传播”定理(您可以在 Hartley 和 Zisserman 的多视图几何书,第 5 章,第 139 页中找到它)。

基本上,如果您有一个x 具有均值x_m和协方差的随机变量,以及一个应用于C的微分函数,则 的均值将是,其协方差将近似为,其中 表示转置,并且是在 处评估的雅可比矩阵。fxf(x)f(x_m)C_fJCJ^t^tJfx_m

现在让我们分别考虑相机位置和相机方向的协方差传播问题。

  • 首先看看在你的情况下相机的平移参数会发生什么,让我们用 来表示它们x_t。在你的情况下,f是一个刚性变换,这意味着

    f(x_t)=Rx_t+T //R is a rotation and T a translation, x_t is the position of the camera
    

    现在关于 的雅可比行列式f 是x_t简单R的,所以协方差由下式给出

    C_f=RCR^T
    

    这是一个有趣的结果:它表明协方差的变化仅取决于旋转。这是有道理的,因为直观地说,翻译(位置)数据实际上并没有改变它改变的轴(关于主成分分析的事情)。

    还要注意 ifC是各向同性的,对角矩阵 lambda*Identity, then C_f=lambda*Identity,这也是有道理的,因为直觉上我们不期望各向同性协方差会随着旋转而改变。

  • 现在考虑方向参数。让我们使用SO(3)群的李代数。在这种情况下,yaw, pitch, scale 将被参数化为v=[alpha_1, alpha_2, alpha_3]^t(它们基本上是李代数系数)。下面,我们将使用从李代数so(3)到群的指数和对数映射SO(3)。我们可以把我们的函数写成

    f(v)=log(R*exp(v)) 
    

    在上面,exp(v) 是相机的旋转矩阵,R是刚体变换的旋转。请注意,平移不会影响方向参数。在数学上涉及f 计算的雅可比行列式。v我怀疑您可以使用伴随或李代数来做到这一点,或者您可以使用Baker-Campbell-Hausdorff 公式来做到这一点,但是,您将不得不限制精度。在这里,我们将采取捷径并使用此问题中给出的结果。

    jacobian_f_with_respect_to_v=R*inverse(R*exp(v))
    =R*exp(v)^t*R^t
    

    所以,我们的协方差将是

    R*exp(v)^t*R^t *  Cov(v) * (R*exp(v)^t*R^t)^t
    =R*exp(v)^t*R^t * Cov(v) * R * exp(v) * R^t
    

    同样,我们观察到同样的事情:如果 Cov(v) 是各向同性的,那么 的协方差也是f

编辑:回答您在评论中提出的问题

  • 你为什么假设平移/旋转之间的条件独立?

    在许多作品中通常假设平移/方向参数之间的条件独立性(尤其是在姿势图文学中,例如参见Hauke Strasdat 的论文),我一直发现在实践中,这效果更好(不是一个很有说服力的论点,我知道)。但是,我承认在写这个答案时我并没有考虑太多(如果有的话),因为我的主要观点是“使用前向传播定理”。您可以将它联合应用于方向/位置,所有这些变化都是您的雅可比行列式看起来像

    J=[J_R J_T]//J_R Jacobian w.r.t orientation , J_T Jacobian w.r.t position
    

    然后协方差矩阵的“致密化”将作为传播的结果发生J^T*C*J

  • 你为什么用SO(3)而不是SE(3)

    你自己说的,我把平移参数和方向分开了。SE(3)是刚性变换空间,包括平移。使用它对我来说没有意义,因为我已经处理了位置参数。

  • 两个相机之间的协方差呢?

    我认为我们仍然可以应用相同的定理。现在的区别是您的刚性变换将是参数的函数M(x_1,x_2)12并且您的雅可比行列式看起来像[J_R_1 J_R_2 J_T_1 J_T2]. 如您所知,这些计算可能很繁琐,所以如果您可以尝试数字或自动微分。

于 2018-03-08T23:25:34.340 回答