Computer vision 当刚性运动应用于多摄像机系统时,如何更新多摄像机系统的协方差?
例如,对于6自由度相机状态,两个相机具有Computer vision 当刚性运动应用于多摄像机系统时,如何更新多摄像机系统的协方差?,computer-vision,kalman-filter,slam,Computer Vision,Kalman Filter,Slam,例如,对于6自由度相机状态,两个相机具有12状态参数和12*12协方差矩阵(假设高斯分布)。当6自由度刚体运动应用于相机时,协方差如何变化 如果六自由度也是高斯分布呢?你可以使用“正向传播”定理(你可以在Hartley和Zisserman的《多视图几何》一书第5章第139页中找到) 基本上,如果你有一个随机变量x,其均值x_m和协方差C,并且你对x应用了一个不同的函数f,那么f(x)的均值将是f(x_m),其协方差C_f将大约是JCJ^t>,其中,^t表示转置,J是f在xum处计算的雅可比矩阵
12
状态参数和12*12
协方差矩阵(假设高斯分布)。当6自由度刚体运动应用于相机时,协方差如何变化
如果六自由度也是高斯分布呢?你可以使用“正向传播”定理(你可以在Hartley和Zisserman的《多视图几何》一书第5章第139页中找到)
基本上,如果你有一个随机变量x
,其均值x_m
和协方差C
,并且你对x
应用了一个不同的函数f
,那么f(x)
的均值将是f(x_m)
,其协方差C_f
将大约是JCJ^t>,其中,^t
表示转置,J
是f
在xum
处计算的雅可比矩阵
现在考虑摄像机位置和摄像机方位的协方差传播问题。
- 首先看看在你的例子中相机的平移参数会发生什么变化,让我们用
x\u t
来表示它们。在你的例子中,f
是一个刚性变换,这意味着
f(x_t)=Rx_t+T //R is a rotation and T a translation, x_t is the position of the camera
现在关于x\u t
的f
的雅可比矩阵就是R
,因此协方差由下式给出
C_f=RCR^T
这是一个有趣的结果:它表明
协方差仅取决于旋转。这是有道理的,因为
直观地说,转换(位置)数据实际上不会更改轴
沿着它变化(关于主成分的事情
分析)
还要注意,如果C
是各向同性的,即对角矩阵
lambda*Identity
,然后C\u f=lambda*Identity
,这也是有意义的,
因为直觉上我们并不期望各向同性协方差发生变化
旋转
现在考虑方向参数。让我们使用
SO(3)
群的李代数。在这种情况下,偏航、俯仰、缩放
将参数化为v=[alpha_1,alpha_2,alpha_3]^t
(它们基本上是李代数系数)。在下面,我们将使用从李代数so(3)
到组so(3)
的指数和对数映射。我们可以把函数写成
f(v)=log(R*exp(v))
在上面的例子中,exp(v)是相机的旋转矩阵,R
是刚性变换的旋转。
请注意,平移不会影响方向参数。计算关于v
的f
的雅可比矩阵涉及数学。我怀疑你可以使用伴随或李代数,或者你可以使用,但是,你必须限制精度。在这里,我们将采用快捷方式并使用中给出的结果
所以,我们的协方差是
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
的协方差也是各向同性的
编辑:回答您在评论中提出的问题
- 为什么假设平移/旋转之间存在条件独立性
在许多作品中,平移/方向参数之间的条件独立性经常被假设(特别是在姿势图示中,例如,see),我总是发现在实践中,这效果更好(我知道这不是一个非常令人信服的论点)。然而,我承认我在写这个答案的时候并没有考虑太多(如果有的话),因为我的主要观点是“使用正向传播定理”。您可以将其联合应用于方向/位置,所有这些更改都是您的雅可比矩阵的外观
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)
是刚性变换的空间,包括平移。因为我已经处理了位置参数,所以使用它对我来说没有意义
- 两个摄像机之间的协方差呢
我认为我们仍然可以应用同样的定理。现在的区别是刚性变换将是一个
12
参数的函数M(x\u 1,x\u 2)
,而雅可比矩阵将看起来像[J\u R\u 1 J\u R\u 2 J\u T\u 1 J\u T2]
。正如您所知,计算这些可能会很繁琐,所以如果您可以尝试数字或自动微分
感谢您的详细解释。但我有一个问题,你考虑的位置和方向分开,如果它们是对应的呢?你为什么用so3而不是se3。更重要的是,如果我有两个摄像头作为我的问题的解释,我认为转换会影响它们之间的协方差,如何推断这种变化?@Guo先生,我很高兴,感谢这些观察!我尽可能地更新了答案以解决您的问题。如果您发现一些不合理的地方,请不要犹豫,纠正我。谢谢您的补充,我认为se3可能是刚性转换的更紧凑的表达式。但在实践中,大多数slam使用so3+位置参数化而不是se3,如中的等式(21),我不知道这个参数化方法是否与您的推断相同?看起来很像:)@Guo先生哦,不,又不是那张纸了!在过去的几周里,我经历的xD是如此之多,以至于当我看到它时,我只想自杀。但是什么是SVO2?它是一个开源的实现还是什么的(如果是的话,你能分享一下链接吗)?无论如何,我可能弄错了,但我认为SO(3)+翻译与SE(3)完全相同,所以哪一个都不重要
J=[J_R J_T]//J_R Jacobian w.r.t orientation , J_T Jacobian w.r.t position