直接法(Direct Method)计算相机位置和姿态

直接法是一种不依赖特征点提取,通过比较同一物体在不同帧中的像素块灰度值来估算相机位置和姿态变化的技术。误差模型是优化问题,最小化两帧间像素块灰度值差异。使用高斯牛顿法或列文伯格法求解最优变换矩阵T,涉及李群和李代数的导数计算。
摘要由CSDN通过智能技术生成

1. 直接法的思想

我们在<LK光流法跟踪特征点>这篇文章介绍了如何跟踪某个像素并形成轨迹。事实上跟踪这些特征点的最终目的还是为了计算相机的位置和姿态变化。今天我们要介绍的直接法就是不先计算像素的轨迹而是直接计算出相机的位置和姿态。直接法的思想是:“同一个块它的灰度值是不会发生变化的(这和光流法非常像)。比如说我们相机绕着一个球去拍摄。那么时刻t的这帧里面球所在的那块像素的灰度值,与它在时刻t+dt这帧图片中球所在的那块像素灰度值相同。唯一变化的是球所在的那个像素块在图片中的相对位置发生了变化。变化了的原因是因为相机的位置和姿态发生了变化。我们要做的是求出相机怎么位置和姿态怎么发生了怎样的变化。那么怎么求呢?我们先假设相机发生了某种变化 R R R,假设球在时刻t的那帧图片中的位置是 p 1 p_1 p1(看看后面那张图)。那么在t+dt时刻那帧图片中球的位置就是 p 2 = R p 1 p_2=Rp_1 p2=Rp1。现在已知 p 1 p_1 p1 p 2 p_2 p2处的像素灰度值一样,要求得 R R R。我们可以遍历 R R R的各种取值,如何评价这个取值好不好呢?我只需要比对用选定的那个R计算出的 p 2 p_2 p2那个地方的灰度值与 p 1 p_1 p1处的灰度值是否接近。直接法的思想就是这么简单。”。我们知道LK光流法它是需要先提取特征点,但是直接法是不需要提取特征点的所以计算复杂度更低适合嵌入式这种计算资源有限的场合

2. 直接法的推导

2.1误差模型

在这里插入图片描述
我们假设相机发生了某种旋转和平移变换,旋转矩阵是R平移量是t。我们可以用一个变换矩阵T来表示旋转R+平移t。我们要做到的就是求出T。根据什么求出T?根据第1帧上 p 1 p_1 p1所在的那块像素的灰度值,应该与第2帧 p 2 p_2 p2所在的那个块的像素的灰度值一样来计算矩阵T。那 p 1 p_1 p1 p 2 p_2 p2又是什么关系?答:是同一个物体在不同视角下拍摄到的像素块。举个例子解释下:假设 p 1 p_1 p1那个像素块是个球,我希望相机进行了变换T之后( p 1 p_1 p1那个点就变成了 p 2 = T p 1 p_2=Tp_1 p2=Tp1),我希望 p 2 p_2 p2这个像素块也是个球。当然我们只会比对 p 1 p_1 p1 p 2 p_2 p2这两块像素灰度值是否一样。很明显这是个优化问题,因为 T T T设置一个值,那么就会计算出一个 p 2 p_2 p2。计算出一个 p 2 p_2 p2那么我就得看看它是否是与 p 1 p_1 p1那个块足够相似。我们假设 p 1 p_1 p

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值