点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

作者:fishmarch

链接:https://zhuanlan.zhihu.com/p/47914361

本文转载自知乎,作者已授权,未经许可请勿二次转载。

直接法的帧间追踪就是用图像构建光度误差函数,优化位姿使误差最小。

LSD中因为是单目直接法,像素点的深度由深度滤波器给出,相比于RGBD等带有深度信息的直接法中,其深度误差较大且不同,因此构建误差函数时将该部分也考虑进来。

关于LSD的深度滤波,可以参考:

https://zhuanlan.zhihu.com/p/47742232

具体来说,LSD中的光度误差函数为:

这里的分子为对应点的光度差:

分母为对应方差:

也就是对每个像素点带来的光度误差,以深度不确定度做了加权求和。

误差函数分子就是基本的光度误差函数,我们重点看分母。分母中分为了两部分,第一部分是图像的光度方差,是一个与相机等有关的常数,因为有两帧图像,所以存在系数2。第二部分是深度相关方差,通过深度滤波器中得到的逆深度的方差传递获得。

我们简单来看下代码:

在代码中,这部分也比较容易理解,大致按照以下过程:

追踪是按图像金字塔逐层进行的,在每一层中重复上述优化过程。

点云生成

主要是在参考关键帧中找到有效追踪点,并获得这些点的参数信息

光度误差

将参考帧中的有效点投影到当前帧,若可观测到则计算光度误差等;并由误差定义了其权重,以此计算了仿射参数。

误差加权

这部分主要就是在计算权重:

代码中参数较多,乍一看很晕,并且该部分在论文中没有进一步推导。现在我们就来仔细看一下。

在整个式子中,比较麻烦的便是这个导数:

也就是光度误差对逆深度的导数。

其中 为3D点到当前帧的投影函数。

上述方程中,我们将光度误差对逆深度的导数分类了两部分,第一部分 是当前帧的像素梯度,第二部分是当前帧像素坐标对第 帧中对应点的逆深度的导数,两者通过投影函数 相关联。

我们再来看 的具体表达:

在第 帧中,根据相机模型我们知道:(其中 ,逆深度)

其中左侧 是像素坐标,中间为相机内参数,记为 ,右侧 是点在相机坐标系下的坐标。

两边乘上变换一下再乘上变换矩阵:

现在右侧为点在第 帧中的坐标:

最右侧 是在第 帧中的像素坐标,我们记为

上述方程与论文中是不同的,论文中没有相机内参 ,作者把它包含到了像素坐标中,怪怪的,我在这就把它写出来了

所以最后我们获得:

其中(乘上相机参数后展开):

所以现在求导:

现在我们可以来计算方程(1)了, 中有 两个方向,我们现在看一个方向:

第一项为 方向像素梯度,

第二项:

后一项中的 都与 有关,需要分别求导:

我们往回看,方程(2)中有 的关系,再写到这里,同时我们把前面的常数矩阵

因此对于

其实如果计算的话,我们可以发现(2*)中的矩阵 的第四列是 ,其中每个 表示两帧的相对平移,所以:

其中 就是逆深度, 所以:

同理我们可得到:

我们把(12),(13)代回到(10):

同理我们可以获得:

方程(16),(17)代入到(9),(8)我们就获得了最终结果:

该结果是在源代码中对应的计算部分了。

定义好了误差函数后面就清楚了,非线性优化就可以了,程序中使用的是LM方法。


参考文献:

[1]Engel, J., Schöps, T., & Cremers, D. (2014). LSD-SLAM: Large-Scale Direct Monocular SLAM, 8690, 834–849.

推荐阅读:

吐血整理|3D视觉系统化学习路线

那些精贵的3D视觉系统学习资源总结(附书籍、网址与视频教程)

超全的3D视觉数据集汇总

大盘点|6D姿态估计算法汇总(上)

大盘点|6D姿态估计算法汇总(下)

机器人抓取汇总|涉及目标检测、分割、姿态识别、抓取点检测、路径规划

汇总|3D点云目标检测算法

汇总|3D人脸重建算法

那些年,我们一起刷过的计算机视觉比赛

总结|深度学习实现缺陷检测

深度学习在3-D环境重建中的应用

汇总|医学图像分析领域论文

大盘点|OCR算法汇总

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会(ICRA/IROS/ROBIO/CVPR/ICCV/ECCV等)、顶刊(IJCV/TPAMI/TIP等)、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近1000+星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、可答疑解惑、助你高效解决问题

LSD-SLAM解读——帧间追踪(详细推导)相关推荐

  1. 3D激光SLAM:LeGO-LOAM---两步优化的帧间里程计及代码分析

    3D激光SLAM:LeGO-LOAM---两步优化的帧间里程计及代码分析 前言 利用地面点优化 利用角点优化 代码部分 gazebo测试 前言 LeGO-LOAM的全称是 Lightweight an ...

  2. 从零开始搭二维激光SLAM --- 基于ICP的帧间匹配

    上一篇文章讲解了如何将激光雷达的sensor_msgs/LaserScan格式转换成pcl::PointCloud< pcl::PointXYZ>格式, 本篇文章将要讲解如何使用这个格式调 ...

  3. 【十六】 H.266/VVC | VVC中帧间预测技术详细总结 | 所有帧间预测技术代码汇总

    前言 ​ 帧间预测是影响视频编码性能的关键环节之一,H.266/VVC帧间预测在传统只能应对简单的平移运动的基础上,采用了仿射运动模型,可以描述更加复杂的缩放.旋转等运动.为了更好的发挥合并模式(Me ...

  4. 视觉SLAM总结——LSD SLAM中关键知识点总结

    视觉SLAM总结--LSD SLAM中关键知识点总结 视觉SLAM总结--LSD SLAM中关键知识点总结 1. LSD SLAM的创新点/关键点是什么? 2. LSD SLAM的整体框架是怎样的? ...

  5. CVPR 2023 | EMA-VFI: 基于帧间注意力提取运动和外观信息的高效视频插帧

    ©作者 | Guozhen Zhang 单位 | 南京大学媒体计算组 本文介绍南京大学媒体计算组最近被 CVPR 2023 接收的视频插帧方向的工作:Extracting Motion and App ...

  6. python如何实现小车行走_[详细推导]基于EKF的小车运动模型的python编程实现

    一.任务介绍 在本任务中,您将使用可用的测量值和运动模型来递归估计车辆沿轨迹的位置.车辆有了非常简单的LIDAR传感器,可以返回与环境中各个地标相对应的范围(range)和方位测量值(bearing) ...

  7. Overview of HEVC之5 帧间预测

    预测块(PB)的划分:与帧内预测的CB相比, HEVC为帧间预测的CB提供了更多的PB划分形状: PART_2N×2N的划分模式表示CB不划分:PART_2N×N的划分模式表示CB水平划分成两个相等尺 ...

  8. FFmpeg的H.264解码器源代码简单分析:宏块解码(Decode)部分-帧间宏块(Inter)

    ===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...

  9. pca各个向量之间的相关度_详细推导PCA算法

    本文主要思路如下: 1 PCA优化目标 PCA(主成分分析)是一种数据降维的方法,即用较少特征地数据表达较多特征地数据(数据压缩,PCA属于有损压缩).PCA推导有两种主要思路: 最大化数据投影后的的 ...

最新文章

  1. 怎么看电脑的hdmi是输出还是输入_HDMI线连接电视电脑常见问题及解决办法
  2. linux备份mysql需要暂停服务吗_【MySQL运维】线上MySQL数据库停服迁移流程
  3. UmiJS CDN 部署之 publicPath
  4. 实现Linux系统外部和容器内部的文件传输
  5. python3ide手机端怎么样_各大Python IDE的优缺点,看看哪种最适合你?
  6. Django数据查询方法总结
  7. 不同公式等号对齐_数学公式编辑器“制作amp;套用公式模板”和“文本对齐问题”的完美解决方案...
  8. 服务器root账号用户名和密码忘记了,宝塔忘记后台管理员账号密码怎么办?教你用这条命令轻松搞定...
  9. w ndows7浏览器网页,win7系统IE浏览器播放网页视频失败的解决方法
  10. 前端网页发布到nginx_通过nginx部署前端代码实现前后端分离
  11. 国内著名高校飞跃手册整理
  12. Postman测试导出导入Excel教程
  13. Unity3D Editor Undo回退效果实现3 Odin相关
  14. asm.jar 安卓手机屏幕在电脑上显示
  15. BFS最短路径的两种打印方法
  16. 海桂嘉积中学2021高考成绩查询,圆梦行动 “我想做记者,我想学计算机” 屯昌文武山村“高考姐妹花”的美好心愿...
  17. kkFiewView代码分析(三)有关CAD文件的转换
  18. 《信息安全保障》一1.3 信息系统安全保障概念与模型
  19. 通过Fiddler Script替换请求/响应内容
  20. MyBatis:根据姓名模糊查询

热门文章

  1. php各种编码集详解和在什么情况下进行使用 [php 字符集 显示]
  2. 管理员必知:服务器基准测试方法与误区
  3. scrum工具四款可参考
  4. leangoo自由配置任务卡片(需求、迭代、bug)自定义字段
  5. 骚操作:不重启 JVM,如何替换掉已经加载的类?
  6. 银行选型和排坑实战:用开源软件自建分布式数据服务平台
  7. 从 Nginx 优秀的核心架构设计,揭秘其为何能支持高并发?
  8. 魅族员工哀叹把青春献给了公司,当年如果选择小米,人生会不一样
  9. 强烈推荐8个很实用的神级软件,让人相见恨晚
  10. 值得安利!推荐7款让人眼前一亮的宝藏软件