一、重点单词理解

repetitive 重复的
ill-posed 不适应
restrictive 约束 限制
tentative 假设、不确定的
equivalent 相等的
density 密度
indirect 间接
scalable 可扩展的
intersect 交叉
interval 间隔

二、Image-Based Localization

转自大佬的论文阅读,使我受益匪浅,至少能够明白图片定位和相机姿态估计的一些基础知识。参考博客链接:https://blog.csdn.net/yc461515457/article/details/51605353
首先介绍一下什么是Image-Based Localization。随着计算机视觉的发展,现在人们可以利用 SfM(structure from motion) 技术利用场景的图片集合来进行三维重建,得到场景的点云模型。这类软件有几种开源实现,比如 Bundler, VisualSfM。基于图像的定位系统就是利用已知的场景三维模型,通常是点云模型,来对新的图像进行定位,得到拍摄这副图像的相机在三维空间中的位置和朝向。

图1 Imaged-based Localization Standard Pipeline

如上图所示,右边是场景的点云模型的一部分,左上角是查询图像, 基于图像的定位就是要求得对应的相机的位置和姿态(点云中红色锥形表示了相机的位置和朝向)。

三、《Camera pose voting for largescale image-based localization》

    在该文中作者指出,随着模型尺寸的增加,在场景模型中查找查询图像特征和3D点之间的正确2D-3D匹配变得更加困难。与基于外观的滤波相比,作者研究了的空间验证的好处和局限性,并且作者提出了一种基于投票的姿态估计策略,比之前的方法能获得更多的匹配,在匹配数量方面呈现了O(n)的复杂度。
    基于图像的定位系统就是利用已知的场景三维模型,通常是点云模型,来对新的图像进行定位,建立图像的2D特征和点云模型中3D点的对应关系,可以通过在RANSAC循环内应用n点姿势求解器,最终得到拍摄这副图像的相机在三维空间中的位置和姿态朝向。但由于RANSAC的运行时间随着错误匹配的百分比呈指数增长,因此避免接受太多错误匹配至关重要。
    作者的贡献如下:①将空间验证表示为姿势参数空间中的霍夫投票问题,运行时间仅在匹配数量上呈线性增长。②证明了使用简单有效的基于局部(图像)几何形状的过滤操作,可以检测出大部分错误匹配。③结合了姿态先验知识,例如从GPS数据,惯性测量或消失点信息(如果可用)中获得有用信息。④可以在相机姿势上产生多模式的分布,而不会造成任何额外开销,因此非常适合处理重复场景。⑤研究了不同匹配策略的适用性以及允许一对多匹配的影响。

(1)基于投票的相机姿态估计

图2 基于线性过滤和位置投票过程的概述

    在本文中,我们放宽了匹配滤波器,并旨在利用几何线索。为了处理大量的异常值,需要一种快速且可扩展的异常值滤波器。图2.6所示就是本文中提出的线性异常值滤波器概述流程图,首先对查询图像image shape,得到每个特征一对多的匹配关系,然后把所有这些匹配关系通过一系列的几何滤波,滤除掉大部分错误的匹配关系,然后再构建文章中提出的投票形状 Voting Shape,因为作者还考虑位置的先验信息(比如GPS位置),如果有,就可以进一步约束投票形状。这里对每一个2D-3D匹配关系都可以构建出一个 投票形状,对区域进行一个投票,最后票数最多的区域所表示的姿态就认为是真实的相机姿态,然后得到局内点,最后对这些局内点通过RANSAC算法,求得最终的姿态。它减少了发现相机姿势的问题,该姿势最大化了几个2D投票问题的内部数量。

①将姿态估计作为注册问题

    结合公式(1):
c(x,r)=v⋅(x+u),∀u∈R2,∥u∥=r,v∈R≥0(公式1)c(x,r)=v\cdot(x+u), \forall u \in R^2, \left \| u \right \| = r,v \in R \ge 0 \tag{公式1}c(x,r)=v⋅(x+u),∀u∈R2,∥u∥=r,v∈R≥0(公式1)
    给定旋转矩阵R和转换后的齐次坐标系,这将姿势估计问题从6DoF减少到找到绕重力方向的旋转Rϕ∈R2×2R_{\phi} \in R^{2 \times 2}Rϕ​∈R2×2和平移t∈R3t \in R^3t∈R3。对于一个2D-3D匹配关系,光心、2D像点、3D点并不能同时准确地在一条直线上,考虑到一定的误差,可以认为把3D点反投影到像平面上,会和2D像点的误差在r个像素内。通过连接光心和像平面上以像点为圆心、 r为半径的圆上的点,可以得到一个圆锥,圆锥无限延伸下去,那么在三维空间中对应的3D点就应该会落入到这个圆锥体中,把这个圆锥体称为误差圆锥,也就是上一篇论文中提及的,如图3所示。

图3 误差圆锥(error cone)和误差形状(error shape)

    结合公式2,配准问题进一步限制在偏移Xz−hX_z-hXz​−h,即C的圆锥部分cx(x,r)=Xz−hc_x(x,r)=X_z-hcx​(x,r)=Xz​−h,因为相机的高度不确定,有一个变化的区间[hmin,hmax][h_{min},h_{max}][hmin​,hmax​] ,那么3D点相对于光心的高度变化范围就是,这时3D点就会落在相对光心的高度为[h1,hu][h_1,h_u][h1​,hu​]的两个平面截取error cone 所得到的立体中。如果把此时的立体和3D点都投影到水平面上,会得到上图中蓝色梯形所示区域,3D点也应该在蓝色梯形中。把蓝色区域和图3表示的四边形称为error shape。

[Rϕ001]X+[t′−h]∈c(x,r),t=[t′,−h]T(公式2)\begin {bmatrix} R_{\phi} & 0 \\ 0 & 1 \\\end {bmatrix}X+ \begin {bmatrix} t' \\ -h \\ \end {bmatrix} \in c(x,r),t= \begin {bmatrix} t' , -h \end {bmatrix}^T \tag{公式2}[Rϕ​0​01​]X+[t′−h​]∈c(x,r),t=[t′,−h​]T(公式2)

    因为在空间中,3D 点的位置是已经确定的,所以把 error shape 转换到相机的位置上,这样的话相机可能的位置就不再是只在一个圆的边上了,而应该是在一个圆环内。对于每一个2D-3D匹配对,都可以构建出这样一个圆环区域表示相机可能的位置,如果所有2D-3D匹配关系都考虑,得到相交最多的位置就是相机最有可能的位置了,如图4(右)所示黄色局域。
    计算每个圆环的位置,然后通过对平面进行划分,对每一个小区域投票,得到投票计数最多的区域就是相机的位置了,最后可以通过此时的内点再进行一个RACSAC+PnP的操作,得到更精确的位置和姿态。

图4 误差圆锥生成error shape(左)以及基于多次相交的相机定位(右)

②线性时间姿势投票

    作者提出从不同的角度看待问题,并将误差形状转换为全局坐标系。即,对于给定的对应关系,将投影的3D点位置设置为固定,然后将不确定性转换为相机位置,转换后的误差形状error shape(也称为Voting Shape)的位置也取决于摄像机的方向。
坐标系变换的证明如下:考虑一个2D-3D匹配关系m=(x,X)m=(x,X)m=(x,X),M‾\overline{M}M是M的中心,通过Minkowski difference得到相机的位置的 Error ShapeMc(m)={0−p+M‾∣p∈M}M_c(m)=\left\{0-p+\overline{M} | p \in M \right\}Mc​(m)={0−p+M∣p∈M},t′=X′−M‾t'=X'-\overline{M}t′=X′−M,其中是点X在xy平面的投影,t′t't′是相机坐标系到世界坐标系的平移。因此世界坐标中的Voting Shape 就是V(m)=Mc+t′V(m)=M_c+t'V(m)=Mc​+t′。如果考虑不同的方向,则需要考虑执行之前本地坐标系旋转的角度,公式更新为:
V(m,ϕ)=RϕMc+tϕ′={X′−Rϕp∣p∈M}(公式3)V (m, \phi) =R_\phi M_c+t'_\phi= \left\{X'-R_{\phi}p|p \in M \right\} \tag{公式3}V(m,ϕ)=Rϕ​Mc​+tϕ′​={X′−Rϕ​p∣p∈M}(公式3)

    作者利用这一事实来设计线性时间相机姿态估计算法(如图2.6右),迭代一组固定的旋转,每个2D-3D匹配对其投票形状中包含的区域投票。在几个2D投票空间中累积这些投票,每个摄像机方向一个,这使得能够单独处理每个匹配。最终根据获得最多选票的方向和位置来定义最佳摄像机姿势,并在投票点最最集中的地方,使用RANSAC循环内的3点求解器计算最终的6DoF姿势。
    通过以下三步得到O(n)的时间复杂度。首先,给定旋转角度,对所有n个对应关系的单次迭代足以聚合2D摄像机位置的投票。第二,在判别摄像机角度时,需要对k个离散角度分别执行该过程。第三,为了相机高度的大变化以及传播的不确定性导致导致较少的判别性投票,作者还将量化的高度范围量化为1个较小的间隔,并对每个间隔进行测试。也就是说对于多个匹配对,都这样构建一个Voting Shape,所有的这些Voting Shape 重叠部分最多的就是相机最有可能的位置。

(2)高效相机投票

    作者首先计算在相机坐标系下误差形状Error Shape的表达式。这里是用一个四边形来拟合首先来计算在相机坐标系下Error Shape的表达式。这里是用一个四边形来拟合Error Shape,需要得到Error Shape距离摄像机中心的最近距离dnd_ndn​和最远距离dfd_fdf​,以及xy平面上的最左和最后的射线rrr_rrr​,rlr_lrl​,具体Voting Shape的构建如图5(a)和(b)所示。
此外还需要考虑重力方向的不确定度,因为重力方向是通过垂直消隐线计算出来的,会有一定的不确定性。

图5 投票形状构建(a)和先验定位约束(b)

(3)基于几何约束的滤波器

    作者提供了一组可以单独应用于每个匹配的滤波器。它们基于3D模型的属性与局部描述符之间的几何关系,旨在减少投票的总票数。分为以下四小点进行描述。
    ①相对特征方向Relative Feature Orientation:局部描述符是相对于特征方向定义的。给定已知的重力方向,那么就可以得到所有特征的方向相对于重力方向的夹角,在固定的参考系中表达查询特征方向,并将其与数据库图像的特征方向进行比较。如果查询方向与属于匹配3D点的区间中的方向相差超过固定阈值,则剔除匹配。
    ②SFM中的3D点可见性3D Point Visibility from SfM Model:局部描述符对于视点变化不是不变的。对于一个3D点,能够确定可见3D点的最小和最大旋转角度,数据库中观测到这个点的相机的位置是已知的,那么查询相机如果也能看到这个3D点,那么视角应该也保持一定的一致性。
    ③特征尺度Feature Scale:作者还利用在图像中检测到特征的尺度来推断对应的可行性。给定具有焦距 f 的数据库图像,观察属于具有尺度 SI 的 3D 点 P 的特征,使用类似三角形的概念来获得 3D 点的尺度。公式为S3D=SI∗d/fS_{3D}=S_I*d/fS3D​=SI​∗d/f,其中d是p的深度,同一个3D点S3DS_{3D}S3D​计算出来的的分布也应该是保持一致性。
    ④先验位置Positional Prior:即如果有GPS这种先验位置的信息,可以直接限制投票区域。作者将测量的位置和其不确定性的上限表示为投票空间中的圆形区域。对于每个匹配,只需要考虑其投票形状与此先前区域的交集,
这样能在消除一些错误的匹配。作者也指出查询相机的方向与其可能的位置之间存在强烈的关系,使用姿势先验来限制可行摄像机位置的集合也限制了落在不确定区域之外的每个匹配3D点的可行旋转集合。

(4)反思与总结

    在本文中,作者提出了一种基于Hough投票的新型相机姿态估计技术,包括一组简单的滤波操作,所有操作均采用强几何约束,方法运行时间随着匹配的数量线性增长(时间复杂度降低为O(n)O(n)O(n)),因此允许在合理的时间内处理大量的对应关系(1:N)。结果也表明,仅使用更多匹配项并不一定会带来更好的本地化性能,可以去使用额外的滤波器或者更好的描述符实现进一步的改进。
    我重点理解PNP、基于2D-3D匹配的实现原理的基础知识,明白了基于图像定位的大致过程,能够对之前看的论文有一个新的认知,但现在看这种相机姿态定位的论文还是较吃力,许多先验知识还未完全掌握,需要进一步的努力学习,反思总结。该篇文章的特点是在基于图形定位的基础上,使用相机姿态投票Voting的方法,使得在扩大图片的尺寸的基础上,反而能使得原本越来越困难的2D-3D匹配变得简单,并且还缩小了时间复杂度。

论文阅读《Camera pose voting for largescale image-based localization》相关推荐

  1. 《基于卷积神经网络的深度迁移学习,用于燃气轮机燃烧室的故障检测》论文阅读

    目录 突出 抽象 引言 1.1动机 1.2文献综述获得的结论 1.3贡献 1.4组织 2方法 2.1燃汽轮机组故障知识共享 2.2迁移学习 2.3 基于卷积神经网络的深度迁移学习 2.4用于燃气轮机燃 ...

  2. 基于卷积神经网络和投票机制的三维模型分类与检索 2019 论文笔记

    作者:白静 计算机辅助设计与图形学学报 1.解决的问题 由于三维模型投影得到的视图是由不同视点得到,具有相对独立性,这种像素级的融合运算并没有直接的物理或者几何意义,更有可能造成图像有益信息淹没和混淆 ...

  3. TextCNN——基于卷积神经网络的文本分类学习

    1.CNN基础内容 CNN的全称是Convolutional Neural Network,是一种前馈神经网络.由一个或多个卷积层.池化层以及顶部的全连接层组成,在图像处理领域表现出色. 本文主要学习 ...

  4. 读懂深度迁移学习,看这文就够了 | 赠书

    百度前首席科学家.斯坦福大学副教授吴恩达(Andrew Ng)曾经说过:迁移学习将是继监督学习之后的下一个促使机器学习成功商业化的驱动力. 本文选自<深度学习500问:AI工程师面试宝典> ...

  5. 一种基于卷积神经网络的图像去雾研究-含matlab代码

    目录 一.绪论 二.去雾卷积网络 2.1 特征提取 2.2 多尺度映射 2.3 局部均值 2.4 非线性回归 三.实验与分析 四.Matlab代码获取 一.绪论 雾是一种常见的大气现象,空气中悬浮的水 ...

  6. 机械臂论文笔记(一)【基于卷积神经网络的二指机械手 抓取姿态生成研究 】

    基于卷积神经网络的二指机械手 抓取姿态生成研究 论文下载 摘要 第1章 绪论 1.1 抓取生成国内外研究现状 1.1.1已知物体抓取生成 1.1.2相似物体抓取生成 1.1.3 未知物体抓取生成 1. ...

  7. 毕业设计 - 基于卷积神经网络的乳腺癌分类 深度学习 医学图像

    文章目录 1 前言 2 前言 3 数据集 3.1 良性样本 3.2 病变样本 4 开发环境 5 代码实现 5.1 实现流程 5.2 部分代码实现 5.2.1 导入库 5.2.2 图像加载 5.2.3 ...

  8. 基于卷积神经网络与迁移学习的油茶病害图像识别

    基于卷积神经网络与迁移学习的油茶病害图像识别 1.研究思路 利用深度卷积神经网络强大的特征学习和特征表达能力来自动学习油茶病害特征,并借助迁移学习方法将AlexNet模型在ImageNet图像数据集上 ...

  9. Python深度学习实例--基于卷积神经网络的小型数据处理(猫狗分类)

    Python深度学习实例--基于卷积神经网络的小型数据处理(猫狗分类) 1.卷积神经网络 1.1卷积神经网络简介 1.2卷积运算 1.3 深度学习与小数据问题的相关性 2.下载数据 2.1下载原始数据 ...

  10. 基于卷积神经网络实现图片风格的迁移 1

    卷积神经网络详解 一.实验介绍 1.1 实验内容 Prisma 是最近很火的一款APP,它能够将一张普通的图像转换成各种艺术风格的图像.本课程基于卷积神经网络,使用Caffe框架,探讨图片风格迁移背后 ...

最新文章

  1. 一个关于hashCode的追问!
  2. 谈谈document.ready和window.onload的区别
  3. TP5_接口开发之全局异常控制
  4. 云炬WEB开发笔记2-5 chrome调试工具
  5. lamda list 分组_java8lambda表达式对集合分组并且排序(记一次性能优化案例)
  6. 搜索推荐中的召回匹配模型综述(一):传统方法
  7. react hooks实例演示
  8. linux中yum与rpm区别
  9. mysql 数据修改时间_怎样修改mysql数据中的具体时间
  10. 挂载硬盘问题:mount: wrong fs type, bad option, bad superblock on /dev/sdb,
  11. (转) 淘淘商城系列——使用SolrJ查询索引库
  12. 【Flink】Flink 状态恢复报错 StateMigrationException For heap backendsthe new state serializer must not be
  13. 常用的色彩名、色彩值的对照表
  14. javahost:使用虚拟DNS省掉开发环境配置hosts文件
  15. Linux信号量详解
  16. 随机信号分析学习笔记(3)
  17. 无线通信中存在的远近效应、多普勒效应、多径效应以及其应对策略
  18. 拉取maven项目如何跑起来
  19. VUE基础用法(四)
  20. Qt开发QtQuick程序在编译时报错:0x00007FFE4E60BB6B (ig9icd64.dll) 处有未经处理的异常: 0xC0000005: 读取位置 0xFFFFFFFFFFFFF

热门文章

  1. 基于Anki+Vocabulary的英语单词记忆法
  2. java 合并excel单元格
  3. 基于Python的发票识别与机器学习(保姆式教程)
  4. 最全的Windows10强制永久关闭自动更新方法!
  5. Codeforces 633H. Fibonacci-ish II【莫队+线段树+公式】
  6. 【LeetCode每日一题】633. 平方数之和
  7. 带你深入理解矩阵乘法
  8. 软件架构-redis特性和集群特性(下)
  9. ubuntu 安裝deb_ubuntu安装deb
  10. deamon(大鹅模拟器steam)