dso

1.1. Motivation

本文提出的单目视觉测距法的直接和稀疏公式是出于以下考虑因素;

(1)直接:

关键点的主要优点之一是它们能够为使用现成的商品相机拍摄的图像中存在的光度和几何失真提供稳健性。例如自动曝光变化,非线性响应功能(伽马校正/白平衡),镜头衰减(渐晕),去连接伪像,或甚至由滚动快门引起的强烈几何失真。

同时,对于介绍中提到的所有用例,数百万台设备(并且已经)配备了专门用于为计算机视觉算法提供数据的摄像机,而不是为人类消费捕获图像。这些摄像机应该并且将被设计为提供完整的传感器模型,并以最能为处理算法提供服务的方式捕获数据:例如,自动曝光和伽马校正不是未知的噪声源,而是提供更好图像数据的功能 - 可以合并到模型中,使获得的数据更具信息性。由于直接方法将完整的图像形成过程建模为像素强度,因此它可以从更精确的传感器模型中获益。直接公式的主要好处之一是它不需要一个点本身可以识别,从而允许更精细的几何表示(像素反向深度)。此外,我们可以从所有可用数据中进行采样 - 包括边缘和弱强度变化 - 生成更完整的模型,并在稀疏纹理环境中提供更强大的稳健性。

(2)稀疏:

添加几何体之前的主要缺点是引入几何参数之间的相关性,这使得实时统计上一致的联合优化不可行(参见图2)。

2.2模型公式

我们将在目标帧I j中观察到的参考帧I i中的点p∈Ωi的光度误差定义为在小的像素邻域上的加权SSD。我们的实验表明,以略微扩展的模式排列的8个像素(见图4)在评估所需的计算,运动模糊的稳健性和提供足够的信息之间进行了良好的权衡。请注意,就所包含的信息而言,在如此小的像素邻域上评估SSD类似于为中心像素添加一级和二级辐照度导数条件(除了辐照度恒定性)。 让

其中N p是SSD中包含的像素集; t i,t j图像I i,I j的曝光时间; 和k·kγ胡贝尔范数。 此外,p 0代表p的投影点位置,具有反向深度d p,由下式给出

为了使我们的方法能够在没有已知曝光时间的情况下操作序列,我们包括由e -a i(I i -b i)给出的附加仿射亮度传递函数。注意,与大多数先前的配方[13,6]相反,标量因子e -a i是对数参数化的。这既防止了它变为负面,又避免了由乘法(即指数增加)漂移引起的数值问题。除了使用强大的Huber惩罚之外,我们还应用了渐变相关的加权w p

对具有高梯度的像素进行缩减。 该加权函数可以概率地解释为在投影点位置p 0上添加小的,独立的几何噪声,并且立即使其边缘化 - 近似小的几何误差。总而言之,误差E pj取决于以下变量:(1)点的逆深度dp,(2)相机本征c,(3)所涉及的帧的姿势T i,T j和(4)它们的 亮度传递函数参数ai,bi,aj,bj。

所有帧和点的全光度误差由下式给出

其中i遍历所有帧F,p遍在帧i中的所有点P i,并且j遍及所有帧obs(p),其中点p是可见的。图5显示了结果因子图:与经典重投影误差的唯一区别是每个残差对主机帧姿态的附加依赖性,即每个项依赖于两个帧而不是一个帧。虽然这会将非对角线条目添加到Hessian的姿势 - 姿势块中,但是在应用Schur补码来边缘化点参数后,它不会影响稀疏模式。因此,可以将所得系统解析为间接配方。 注意,关于两个帧的姿势的雅可比行列式通过它们的相对姿势的伴随线性相关。实际上,在计算Hessian或其Schur补码时,可以从总和中拉出该因子,从而大大减少由更多变量依赖性引起的附加计算。

如果曝光时间已知,我们进一步添加先前将仿射亮度传递函数拉到零:

如果没有可用的光度校准,我们设置t i = 1并且λa=λb= 0,因为在这种情况下,他们需要对相机的(未知的)改变曝光时间进行建模。作为旁注,应该提到的是,如果x i和y i都包含噪声测量,则多个因子a * = argmax a i(ax i-y i)2的ML估计量是有偏差的(参见[7]); 导致a在无约束情况下漂移λa= 0。

虽然这通常对估计的姿势几乎没有影响,但如果场景仅包含很少的弱强度变化,则可能引入偏差。
 
3.2. Point Management
大多数现有的直接方法都专注于尽可能多地利用图像数据。为了实现这一目标,他们积累早期的次优估计(线性化/深度三角测量),并忽略 - 或近似 - 不同参数之间的关系。在这项工作中,我们采用不同的方法,而是对数据进行大量子采样,以便在联合优化框架中实时处理数据。事实上,我们的实验表明,图像数据是高度冗余的,简单地使用更多数据点的好处很快就会变平。请注意,与间接方法相比,我们的直接框架仍允许从所有可用数据中抽取样本,包括弱纹理或重复区域和边缘,这确实提供了真正的好处(参见第4节)。
我们的目标是在优化中始终保持固定数量的N p个活动点(我们使用N p = 2000),在空间和活动帧中均匀分布。在第一步中,我们在每个新关键帧中识别N p个候选点(步骤1)。

DSO论文解读的更多相关文章

  1. itemKNN发展史----推荐系统的三篇重要的论文解读

    itemKNN发展史----推荐系统的三篇重要的论文解读 本文用到的符号标识 1.Item-based CF 基本过程: 计算相似度矩阵 Cosine相似度 皮尔逊相似系数 参数聚合进行推荐 根据用户 ...

  2. CVPR2019 | Mask Scoring R-CNN 论文解读

    Mask Scoring R-CNN CVPR2019 | Mask Scoring R-CNN 论文解读 作者 | 文永亮 研究方向 | 目标检测.GAN 推荐理由: 本文解读的是一篇发表于CVPR ...

  3. AAAI2019 | 基于区域分解集成的目标检测 论文解读

    Object Detection based on Region Decomposition and Assembly AAAI2019 | 基于区域分解集成的目标检测 论文解读 作者 | 文永亮 学 ...

  4. Gaussian field consensus论文解读及MATLAB实现

    Gaussian field consensus论文解读及MATLAB实现 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 一.Introduction ...

  5. zz扔掉anchor!真正的CenterNet——Objects as Points论文解读

    首发于深度学习那些事 已关注写文章   扔掉anchor!真正的CenterNet——Objects as Points论文解读 OLDPAN 不明觉厉的人工智障程序员 ​关注他 JustDoIT 等 ...

  6. NIPS2018最佳论文解读:Neural Ordinary Differential Equations

    NIPS2018最佳论文解读:Neural Ordinary Differential Equations 雷锋网2019-01-10 23:32     雷锋网 AI 科技评论按,不久前,NeurI ...

  7. [论文解读] 阿里DIEN整体代码结构

    [论文解读] 阿里DIEN整体代码结构 目录 [论文解读] 阿里DIEN整体代码结构 0x00 摘要 0x01 文件简介 0x02 总体架构 0x03 总体代码 0x04 模型基类 4.1 基本逻辑 ...

  8. 【抓取】6-DOF GraspNet 论文解读

    [抓取]6-DOF GraspNet 论文解读 [注]:本文地址:[抓取]6-DOF GraspNet 论文解读 若转载请于明显处标明出处. 前言 这篇关于生成抓取姿态的论文出自英伟达.我在读完该篇论 ...

  9. 《Stereo R-CNN based 3D Object Detection for Autonomous Driving》论文解读

    论文链接:https://arxiv.org/pdf/1902.09738v2.pdf 这两个月忙着做实验 博客都有些荒废了,写篇用于3D检测的论文解读吧,有理解错误的地方,烦请有心人指正). 博客原 ...

随机推荐

  1. linux一些稍微高级的命令

    cut 命令:提取文件中指定的字段(列).字符内容.单词的默认分隔符为空格. cut [选项]... [文件]... 选项: -b  按照字节切 -c  按照字符切 -d  指定分割符 -f   指定 ...

  2. redis 的消息订阅和消息队列的功能比较

    消息队列常用的有 rabitMQ.kafka等.缓存服务器  redis 也可以做消息队列使用,他们的特点对比如下 消息协议: 消息队列支持包括AMQP,MQTT,Stomp等,并且支持 JMS 规范 ...

  3. php中cal_days_in_month不可用时的替代方法(计算一个月的天数)

    在计算某个月中的天数时,由于PHP编译时没有加上--enable-calendar选项,会导致cal_days_in_month方法不可用. 这时,如果不能更改服务器的编译设置,可以通过以下方法实现该 ...

  4. flash初步尝试

    1.pip install flask  验证  from flask import Flask 2.pip install sqlalchemy 3. pip install flask-sqlal ...

  5. GDB 调试器使用手冊

    使用GDB: 本文描写叙述GDB,GNU的原代码调试器. (这是4.12版1994年一月.GDB版本号4.16) * 文件夹: * 摘要: GDB的摘要 * 实例: 一个使用实例 * 入门: 进入和退 ...

  6. Python中的format()函数

    普通格式化方法 (%s%d)生成格式化的字符串,其中s是一个格式化字符串,d是一个十进制数; 格式化字符串包含两部分:普通的字符和转换说明符(见下表), 将使用元组或映射中元素的字符串来替换转换说明符 ...

  7. 【spark 深入学习 03】Spark RDD的蛮荒世界

    RDD真的是一个很晦涩的词汇,他就是伯克利大学的博士们在论文中提出的一个概念,很抽象,很难懂:但是这是spark的核心概念,因此有必要spark rdd的知识点,用最简单.浅显易懂的词汇描述.不想用学 ...

  8. linux每日命令(15):tail命令

    tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新, ...

  9. android开发(49) Android 下拉刷新的实现。使用 SwipeRefreshLayout 代替 pull-to-refesh

    概述 谷歌官方推出了SwipeRefreshLayout 来实现下拉刷新的效果.对比以前我们常用的 pull-to-refesh ,这个方案显得更加的简单方便. 关联项目引用(管理依赖) 在你的 应用 ...

  10. Gradle依赖的统一管理,解决依赖冲突

    看见别人在用implementation rootProject.ext.dependencies["xxxx"]不知道是什么意思,上网查了一下,原来是为了解决或者说预防gradl ...