📜 论文阅读 | Pop-up SLAM:面向低纹理环境下的单目平面语义SLAM
文章目录
Pop-up SLAM:面向低纹理环境下的单目平面语义SLAM
Yang S, Song Y, Kaess M, et al. Pop-up slam: Semantic monocular plane slam for low-texture environments[C]//2016 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). IEEE, 2016: 1222-1229.
作者:YangShichao:个人主页 Google Scholar Github
卡内基梅隆大学机器人研究所:The Robotics Institute of CUM
演示视频:https://www.youtube.com/watch?v=TOSOWdxmtkw
Pop-up SLAM: Semantic Monocular Plane SLAM for Low-texture Environments
0. 摘要
- 问题:
- 在具有挑战性的低纹理环境中由于缺少显著的特征,现存的 SLAM 算法不够鲁棒;由此而产生的稀疏的或半稠密的地图对运动规划提供的信息也比较有限;
- 虽然有些工作利用平面或场景布局来进行稠密地图正则化,但需要从其他来源进行适当的状态估计;
- 方法:
- 本文提出一个实时的单目 SLAM,以验证场景理解可以改善状态估计和稠密建图,尤其是在低纹理情况下;
- 平面的测量数据从应用于每个单视图的立体 3D 平面模型(pop-up 3D plane) 中获得;并将平面与基于点的 SLAM 相结合,提高鲁棒性;
- 通过 TUM 公共数据库验证,本文算法能生成一个稠密的语义3D模型,其中像素点深度误差为6.2厘米,而在同样情况下现有的SLAM 算法则运行失败;
- 在一个 60 米长带回环的数据库上测试,本文算法能够创建一个更好的三维模型,状态估计误差为0.67%。
1. 介绍
- SLAM 介绍;单目相机以小体积、低成本提供丰富的视觉信息,特别适用于重量受限的微型飞行器;故本文致力于用单目图像来估计环境中的位姿和地图;
- 一方面现存的许多视觉 SLAM 方案使用点信息,比如 LSD-SLAM,ORB-SLAM,这些方法通过跨帧跟踪特征点或高梯度值的像素来找到对应的关系和三角测量的深度;在特征丰富的环境中表现良好,但在走廊等常见的低纹理环境下无法工作,此外地图点是稀疏或者半稠密的,不足以为运动规划提供太多信息。
- 另一方面,人类能够从单张图像中理解场景布局、估计深度并从中检测障碍物;很多方法利用几何线索和场景假设来构建简单地三维模型;近年来随着卷积神经网络(CNN)的出现,视觉理解的性能得到了很大的提升。
- 在本文中,将场景理解和传统视觉 SLAM 相结合,以提高状态估计的精度和稠密建图的性能,尤其是在低纹理的环境中;
- 本文使用单个图像的立体平面模型(pop-up plane model)[4] 在 SLAM 中生成平面地标测量;
- 通过适当的平面关联和闭环,在 SLAM 框架中同时优化场景布局和多帧位姿;
- 在图 1 所示的低纹理环境下,本文算法仍然可以生成稠密的 3D 模型和适当的状态估计,而其他 SLAM 算法则运行失败;
- 但是平面 SLAM 容易受到约束,因此本文将其与基于点的 LSD-SLAM 结合,提高鲁棒性。
- 主要贡献
- 提出一个结合场景布局理解的单目平面 SLAM;
- 使用点和平面集成的方式提高鲁棒性;
- 在低纹理环境下优于现有方法,并在几个带有闭环的大型数据集下验证了其实用性。
2. 相关研究
- 本文研究牵涉两个研究领域:单帧图像的场景理解和多视图的视觉 SLAM。 ### 2.1 单帧图像理解
- 有很多研究视图从单张图像中模拟世界环境,两个代表性的研究是基于消失点的立方体房间模型 [5] 和基于线段的固定建筑模型集合 [6];
- 本文之前的研究 [4] 提出了立体 3D 平面模型(pop-up 3D plane model),将 CNN 与几何建模相结合,结果表明与现有方法相比,这种方法在各种走廊和照明环境下效果稳健。 ### 2.2 多视图 SLAM
- 基于点的 V-SLAM
- 通过多帧跟踪特征点或像素值,并通过优化构建全局一致的 3D 地图;
- 代表性的有直接法的 LSD-SLAM 和特征点法的 ORB-SLAM2,但由于视觉上几何上信息的稀疏性,在低纹理情况下表现不佳。
- 基于平面的 V-SLAM
- 文献 [8] [9] [10] 中使用平面或超像素,在低纹理环境下提供稠密的建图;但他们假设相机的位姿是从其他来源提供的(比如基于点的 SLAM),但同样在无纹理的条件下无法正常工作;
- 近期文献 [11] 也提出使用房间布局信息来生成稠密地图的深度先验,但不进行跟踪和更新房间局部,只适用于小工作空间;
- 场景理解
- 有些工作侧重于使用多个图像的场景理解,特别是在曼哈顿世界中;
- 文献 [12] 使用单目和 3D 特征将其表示成贝叶斯框架;
- 文献 [13,14] 生成许多候选的 3D 模型假设,然后通过特征跟踪和点云匹配更新其概率;
- 但这些方法不使用平面世界来约束状态估计,因此不能解决低纹理华景下的 V-SLAM 问题。
3. 单视图中立体平面提取
- 本节拓展了之前的工作 [4] ,以便从单个图像中创建立体的 3D 平面模型; ### 3.1 Pop-up 3D 模型
- 在文献 [4] 中主要有三个步骤来生成 3D 世界: CNN 网络地面分割(可以选择 CRF 来优化),折线拟合和 Pop-up 3D 平面模型;
- 在个中数据集下均表现良好,但存在下面的一些局限:
- ① 文献 [4] 沿检测到的地面区域拟合折线,有可能不是真正地墙-地边缘,从而产生无效的 3D 场景模型;比如在图 2 中上面三幅图,无法模拟向右转弯的走廊,将导致在 SLAM 框架在使用这些平面的时候出现问题,因为即使在相邻帧中,拟合出的线段也可能不同,但是 SLAM 中要求路标(比如这里的平面路标)在帧与帧之间是不变的;
- ② 文献 [4] 中使用零旋转姿态的假设,不具有普适性,不同的旋转角度可以生成不同的 Pop-up 3D 模型。
- 在下面两节中将解决上述问题,并生成更精确的 3D 地图,如图 2 底部的三张图所示。 ### 3.2 最优边界检测
- 本文选择检测真正的地-墙边缘,而不是使用拟合多边形作墙-地边界,首先使用文献 [15] 中的 LSD 算法提取所有的线段;
但 LSD 算法也存在噪声,比如长直线可能被检测为两条断开的线段,本文提出一种优化算法来选择和合并边缘作为墙-地的边界,如图 2 下面中间的图所示。 - 数学表达上,假如给定了一组检测到的边缘 \(V = \left ( e_{1},e_{2},\cdots , e_{n} \right )\) ,希望能找到最佳的边缘子集 \(S \subseteqq V\) ,定义边缘子集的得分为公式 1:
- 其中, F 是边缘子集的得分函数, I 是约束;
- 由于现实场景中情况复杂,没有标准的方式来表达 F 和约束 I,本文更直观地设计它们并使之能适应各种环境,不仅限于曼哈顿世界(因为在文献 [11] [13] 中已经相应的解决了)
- 第一个约束距离约束:检测到的边缘应该接近 CNN 检测到的在一定阈值内的边界曲线 ,如图 2 左上方图中红色曲线所示,定义约束为:
- 约束要求最优线段子集 S 中的每条子线段 e 与 CNN 检测的边界的距离小于一定值。
- 第二个约束重叠约束:在图像的水平方向上(水平投影),边缘之间彼此的不重叠(overlap)如图 3a 所示或小于一定的阈值,这符合正常的情形;
但要是在 如图 3b 构造的地面中本算法也能有效运行;
定义约束为: - 同时希望在水平 x 方向上最大化边缘覆盖长度,定义得分函数为:
- 其中 C 是 子集 S 线段的水平覆盖长度;
- 从而得到得分函数 F 和约束 \(I = I_{close} \bigcap I_{ovlp}\),问题变为对子模块集优化(详见附录);
本文采用贪心算法 [16] 来按顺序选择边缘;
首先从一个空的边集合 S 开始,然后用公式(5)迭代地添加边,直到没有可用的边缘。 - 在得到集合 S 之后需要进行后期处理,比如去除细小边缘并将相邻边缘合并为类似于 [5] 的较长边缘。 ### 3.3 从任意姿态中 Pop-up World
- 符号说明:
- 用下标 \(w\) 表示世界坐标系;\(c\) 表示相机坐标系;\(gnd\) 是地平面的缩写;
- 一个平面可以用一个齐次向量表示:\(\pi = \left ( \pi _{1},\pi _{2},\pi _{3},\pi _{4} \right )^{T} = \left ( n^{T},d \right )^{T}\) ,其中 n 是平面的法向量,d 是它到原点的距离 [17,18] ;
- 相机的位姿由从 local 到 global 帧的 3D 欧式变换矩阵 \(T_{w,c} \in \mathbf{SE}\left ( 3 \right )\) 表示;
- 可以将相机帧中的点 \(p_c\) 通过 \(p_{w} = T_{w,c}\cdot p_{c}\) 转换到世界系中;
- 相机系中的平面与世界系平面的转换关系为: \[ {\color{Blue} \pi _{w} = \left (T^{-}_{w,c} \right )^{T} \cdot \pi _{c} \quad (6)} \]
3.3.1 创建 3D 模型
- 如何计算点 \(p_{c}\):对于每个所属于某个局部平面 \(\pi _{c}\) 的图像像素 \(u \in \mathbb{R}^{3}\) (齐次形式),其相应的 3D pop-up 点 \(p_c\) 是像素的反投影射线 \(K^{-1}u\) 与平面 \(\pi _{c}\) 的交点(其中 K 是相机内参矩阵):
- \(u\) 是点的齐次化像素坐标,通过 K 将其反投影到相机坐标系得到 \(p_c\) ;
- 如何计算平面 \(\pi_{c}\) :将世界坐标系建立在由 \(\pi _{gnd,w} = \left ( 0,0,1,0 \right )^{T}\) 表示的地平面上;
- 假设地面边缘的边界像素是 \(u_{0},u_{1}\),它们对应的 3D 点 \(p_{c0},p_{c1}\) 可以通过公示(6)(7)来计算;
- 假设墙壁垂直于地面,用公式(8)来计算墙面的法线:
- 同样可以用这两个 3D 点在墙壁上的约束来计算距离 \(d_{wall,c}\)
3.3.2 相机位姿估计
- 相机的位姿 \(T_{w,c}\) 可以由其他传感器或状态估计方法确定,本文中,在 SLAM 初始化阶段使用单个图像的位姿估计方法;
- 在曼哈顿世界中,存在三个正交的主导方向 \(e_{1} = \left ( 1,0,0 \right ),e_{2} = \left ( 0,1,0 \right ),e_{3} = \left ( 0,0,1 \right )\),分别对应齐次坐标系中的三个消失点 \(v_{1},v_{2},v_{3}\in \mathbb{R}^{3}\),若相机的旋转矩阵表示为 \(\mathbf{R}_{w,c} \in \mathbb{R}^{3\times 3}\),那么消失点可以通过以下的公式计算 [5,19]:
- 每个消失点可以计算出三个自由度的旋转,三个消失点即可以恢复相机的变换矩阵。
4. Pop-up Plane SLAM
- 文献 [18] 中使用 RGBD 图像解决了平面 SLAM 的问题,本文将其拓展到单目 pop-up SLAM 的情况中。
4.1 平面 SLAM 公式化
- 平面 SLAM 的因子图如图 4 所示;
- 目标是通过平面测量 \(c_{0},\cdots ,c_{m}\) ,里程计测量 \(u_{0},\cdots ,u_{m}\) 和初始位姿 \(p\) 来估计 6 自由度的相机位姿 \(x_{0},\cdots ,x_{m}\) 和平面路标 \(\pi_{0},\cdots ,\pi_{m}\);
- 平面地标也含有一个标签(墙面或者地面),地面路标 \(\pi_{0}\) 与所有的位姿节点相连。
- 齐次平面用 \(\pi = \left ( n^{T},d \right )^{T}\) 实际上过参数化,因此 SLAM 中的信息矩阵是单数的,不适用于高斯牛顿求解器和增量式求解器,比如 iSAM [20] ;
- 本文使用文献 [18] 中的最小平面来将平面表示为四元数 \(\mathbf{q} = \left ( q_{1}, q_{2}, q_{3}, q_{4} \right )^{T}\in \mathbb{R}^{4} \quad st.\left \| q \right \|=1\) 的形式,比如 ,因此,本文可以李代数和指数映射在优化中进行平面更新。
4.2 平面测量
- 大多数平面 SLAM 使用 RGBD 相机 [18,21] 从点云分割中获得平面测量 \(c\);本文的平面测量 \(c\) 来自于 3.3 节的 pop-up 平面模型;
- 注意 pop-up 过程取决于相机的位姿,确切说是旋转和高度 z ,因为水平面的 x 和 y 不会影响局部平面测量;所说需要重新 pop-up 3D 平面模型,并在平面 SLAM 优化相机位姿后更新平面测量 \(c\) ;在第 3.3 节中解释了,这一步可以通过简单的矩阵运算来求解,速度很快,更新百位级的平面测量时间不到一毫秒。
4.3 数据关联
- 使用以下三种几何信息进行平面匹配
- 平面法线之间的差异;
- 平面彼此之间的距离;
- 平面之间投影的重叠;
- 用于投影的平面边界多边形来自于 pop-up 过程。
- 异常值匹配首先按照三个指标的阈值删除,然后基于他们的加权选择最佳的匹配。
4.4 闭环
- 采用 BoW 地点识别的方法 [22] 进行闭环检测;每一帧都被 ORB 特征描述为视觉世界的一个矢量,以便计算两帧之间的相似度得分;一旦检测到闭环,搜索两帧中的所有成对的平面并找到具有最小图像空间距离的平面对;
- 本文测试了保留每个平面的 BoW 视觉词汇,但并不稳定,特别是在无纹理的图像中;与点路标不同,平面路标在不同视图中具有不同的外观和大小,因此可能会在路标被创建和观察后识别出相同的平面;
- 在检测后,\(\pi_{n},\pi_{2}\) 是图 6 中相同的平面,将平面 \(\pi_{n}\) 的所有因子移到另一个平面 \(\pi_{2}\) ,并从因子图中删除路标 \(\pi_{n}\)。
5. 点-面融合 SLAM
- 与基于点的 SLAM 比较,平面 SLAM 通常包含更少的路标以至于容易不受约束;比如在图 5 所示的长走廊中,左右墙面是平行的,如果没有其他的平面约束,沿着走廊有一个自由的无约束的方向 \(t_{free}\);
- 本文通过结合点的 SLAM,特别是 LSD SLAM 来解决这样的问题,以提供沿着自由方向的光度测量约束,提出了以下两种组合方式。
5.1 Depth Enhanced LSD SLAM
- 本节说明了场景布局理解可以提高传统 SLAM 的性能;
- LSD SLAM 含有三个主要的线程(如图 7 所示):相机跟踪线程,深度估计线程和全局优化线程。
- 其中深度估计部分是核心,决定了其他部分的质量;
- 在 LSD-SLAM 中,在创建关键帧的新深度图时,将从前一个关键帧中传播一些可用的像素深度,然后使用 multiple-view stereo (MVS) 通过新的帧连续更新深度图
- 由于本文在第 3 节中单个图像的 pop-up 模型提供了每个像素的深度估计,通过以下的方式将其集成到 LSD 深度图中:
- 如果像素没有传播深度或 LSD-SLAM 深度的方差超过了阈值,则直接使用 pop-up 模型的深度;
- 如果来自 LSD 的像素具有传播深度 \(d_{l}\),且其方差为 \(\sigma _{l}^{2}\),则使用滤波的方法 [23] 将其与 pop-up 中方差为 \(\sigma _{p}^{2}\) 的深度 \(d_{p}\) 融合;
- 其中 \(\sigma _{p}^{2}\) 可以在 pop-up 阶段通过误差传播规则计算得到。
5.2 LSD Pop-up SLAM
- 在文献 [21] 中基于 RGBD 相机的 SLAM 框架中,已经有联合使用点和面作为路标的工作了;
- 本文提出了一个简单的版本来运行两个阶段的 SLAM 方法
第一阶段是 5.1 节中的 Depth Enhanced LSD SLAM,然后利用其输出的位姿作为测距约束以运行第 6 节中的平面 SLAM;
基于光度误差最小化的帧间测量跟踪可以沿着无约束方向提供约束,并且可以获得更精细的运动状态。 - 图 8 中展示了本文中三种 SLAM 方法的关系:
- 蓝色框是改进的 LSD-SLAM:Depth Enhanced LSD SLAM(具有来自 pop-up 模型深度融合的 LSD-SLAM);
- 绿色和红色的是两种平面 SLAM,LSD Pop-up SLAM(在 Depth Enhanced LSD SLAM 的基础上添加了额外的里程计测量) 具有额外的里程计测量
- Pop-up Plane SLAM(使用来自于单视图的 pop-up 模型的平面测量) 没有,并通常使用恒定速度假设。
6. 实验与结果
- TUM 数据集和两个采集的走廊数据集,评估准确性和计算成本;
- 将状态估计和三维重建的质量与两种基于点的单目 SLAM 对比:LSD-SLAM 和 ORB-SLAM。
6.1 TUM 数据集
TUM fr3/structure notexture far
数据集由 5 面白墙和一个地平面组成,如图 1 所示;仅适用 RGB 图像进行实验,并使用深度图进行评估;- 定性比较
- LSD-SLAM 与 ORB-SLAM 在这种环境下无法工作,由于缺少特征点和高梯度像素;
- 对于第四节中的 Pop-up Plane SLAM,使用地面真实位姿进行初始化,将恒定速度运动假设用作里程计测量;
- 由于提供了初始真实高度, pop-up 模型具有绝对尺度,因此可以不需要缩放直接将位姿与地图估计与 ground truth 比较。
- 定量比较
- 绝对轨迹如图 9 所示,该数据集总长 4.58 米,平均误差为 0.18 ± 0.07 m,端点误差为 0.1 米;
- 如图 9 所示,本文算法能捕获整体的运动,但无法精确获得中间小扰动的运动;
- 因为这里只有很少的平面路标,并且 pop-up SLAM 没有帧到帧的里程计跟踪,这通常是基于点的 SLAM;
- 在后面的实验中,证明了在获得里程计测量之后,LSD Pop-up SLAM 状态估计得到了很大的改善。
- 建图质量评估
- 为评估地图质量,采用 PCL RANSAC 算法在提供的深度图中进行点云平面分割计算出 ground truth 平面位置,平面法线误差仅为 2.8°,如表 1 所示;
- 然后将 3D 平面模型重新投影到图像上以获得每个像素的深度估计,评估结果如图 10 和表 1 所示,平均像素深度误差为 6.2cm ,且 86.8% 的像素深度误差在 0.1m 内。
6.2 大型室内环境
- 使用手持式单目相机(分辨率为640 * 480)在两个大型的低纹理的走廊环境中进行实验;相机具有大视场(90°),这也是 ORB 和 LSD SLAM 比较适合的场景;
- 由于没有地面的实况深度和位姿,只评估闭合误差和定性的地图重建;位姿初始化使用 3.3 节中单图像旋转估计,并假设高度为 1 米。
- 走廊数据集 1:
- 数据集如图 11 所示,LSD-SLAM 上排中间图表现不佳,ORB-SLAM 最好的结果如右上角所示;
- 实验发现即使使用相同的数据集,ORB-SLAM 通常无法完成初始化地图,并且无法跟踪相机;随机性来自于 ORB-SLAM 的 RANSAC 地图初始化;
- Depth Enhanced LSD SLAM 能更生成更好的地图,与原始 LSD-SLAM 相比,虽然只是半稠密但可以清晰地辨别走廊和弯道;
- 在此基础上,LSD Pop-up SLAM 生成了具有不同门和支柱的稠密 3D 模型。
- 走廊数据集 2:
- 60 平方米的走廊数据集,包含如图 2 所示的大环;
- ORB-SLAM 生成的地图比 LSD-SLAM 更好,但不会从一开始就跟踪,需要有足够的特征点和足够的视差空间;
- 本文算法如图 13 所示,其中红色的是 Depth Enhanced LSD SLAM ,绿色的是 LSD Pop-up SLAM;
- 通过闭环检测,LSD Pop-up SLAM 可以生成最佳的 3D 地图和最小的闭环误差;图 13 中的网格尺寸为 1 * 1 米,闭环定位误差在 60 米长的轨迹中为 0.4 米;
- 闭环位置误差为 0.67%,闭环发生在左上角。
6.3 运行时间分析
- 在走廊数据集 2 中的数据分析如表 2 所示,所有时序测量都在 CPU (Intel i7, 4.0 GHz) 和 GPU (仅在 CNN 时) 上;代码基本上都用 C++ 实现;
- CNN 分割,边缘检测和选择耗时约 30ms,与文献 [4] 相比,本文将全连接层从 4096 改为 2048,以将分割时间减少一半又不至于影响精度;
- iSAM 增量式更新需要 17.43ms,批量优化需要 45.35ms,因此当检测到闭环时,仅适用批量优化来重新分解信息矩阵;
- 总之,本文的平面 SLAM 算法可以使用单线程编程达到超过 20HZ 的实时运行。
- 与点作为路标不同,本文方案可以在许多相邻帧中观察到平面,实际上不需要为每帧都 pop-up 平面;
因此,在上述的 pop-up 实验中,以 3HZ/10帧图像的频率来处理图像也足以捕获所有的平面;
这类似于许多基于点的 SLAM 中使用的关键帧技术。
6.4 讨论
- 高度对地图尺度的影响
- 不像基于 RGBD 的平面 SLAM 其平面测量实际上有深度传感器生成,本方案的平面测量和尺度由 3.3 节的 pop-up 过程和相机高度决定;
- 而相机高度不受平面测量的约束,因此只能受其他测量(比如 IMU 测量)的约束,如果信息不准确或无法获取,则地图的尺度和相机的高度可能仅依赖于平面 SLAM 从而产生漂移;
- 在本文的实验中由于保持相机的高度恒定几乎没有产生漂移。
- 地面对地图复杂性的影响
- 由于在 pop-up 过程中需要对地面可见,因此地平面路标需要连接所有的相机位姿,如图 4 的因子图所示,这将减少信息矩阵的洗属性并在理论上增加计算的复杂度;
- 但可以通过矩阵分解之前进行变量重新排序来解决这个问题,比如使用 COLAMD 算法将变量强制转向最后一个块列,从而降低其影响(详见文献 [20]);
- 实验中,这个影响并不是十分明显,地平面通常增加填充(fill-in)(添加的非零条目)仅约 10%。
7. 总结
- 本文提出一个 Pop-up Plane SLAM,一个结合场景布局理解的实时的单目 SLAM,其尤其适用于低纹理的环境,甚至可以从单视图中生成粗糙的 3D 模型;
- 首先通过检测地-墙边缘和估计相机旋转来拓展之前的文献 [4] 的工作,以从单个图像中 pop-up 3D 平面世界;
- 然后定制平面 SLAM 方案,跨多个帧构造一致的基于平面的地图,并提供良好的状态估计;
- 平面路标来自于单个图像的 pop-up 模型,利用最小化平面表示进行优化,并实现平面 SLAM 的闭环。
- 由于平面 SLAM 在某些环境中很容易受到约束,本文将其与基于点的 LSD-SLAM 以两种方式结合起来
- Depth Enhanced LSD SLAM :将 pop-up 像素深度集成到 LSD-SLAM 的深度估计中;
- LSD Pop-up SLAM :使用来自 Depth Enhanced LSD SLAM 的位姿作为测距约束并单独地运行 Pop-up Plane SLAM。
- 实验结果
- 在 TUM 数据集上,Pop-up Plane SLAM 能生成稠密的 3D 地图,深度误差为 6.2cm,状态估计误差为 3.9%,而 LSD-SLAM 和 ORB-SLAM 则运行失败;
- 在采集的走廊的数据集中, LSD Pop-up SLAM 在 60 米长的数据集上闭环误差为 0.67%,大大优于其他两种方案,运行时间表明可以接近 10 HZ 实时运行。
- 在 TUM 数据集上,Pop-up Plane SLAM 能生成稠密的 3D 地图,深度误差为 6.2cm,状态估计误差为 3.9%,而 LSD-SLAM 和 ORB-SLAM 则运行失败;
- 展望
- 将在统一的 SLAM 框架中联合点、边和平面路标;
- 并在机器人上进行测试;
- 在可能存在地-墙边界遮挡的杂乱的走廊中还存在较大的挑战性。
【R】 参考文献
- [1] Engel J, Schöps T, Cremers D. LSD-SLAM: Large-scale direct monocular SLAM[C]//European Conference on Computer Vision. Springer, Cham, ECCV 2014: 834-849.
- [4] Yang S, Maturana D, Scherer S. Real-time 3D scene layout from a single image using convolutional neural networks[C]//Robotics and Automation (ICRA), 2016 IEEE International Conference on. IEEE, 2016: 2183-2189. 作者之前的研究,使用卷积神经网络从单个图像进行实时3D场景布局;立体平面模型(pop-up plane model)
-
[5] Hedau V, Hoiem D, Forsyth D. Recovering the spatial layout of cluttered rooms[C]//Computer vision, 2009 IEEE 12th international conference on. IEEE, 2009: 1849-1856.
基于消失点检测的立方体房间模型;消失点的计算公式 -
[6] Lee D C, Hebert M, Kanade T. Geometric reasoning for single image structure recovery[C]//Computer Vision and Pattern Recognition, 2009. CVPR 2009. IEEE Conference on. IEEE, CVPR 2009: 2136-2143.
基于线段的固定建筑模型集合 -
[8] Furukawa Y, Ponce J. Accurate, dense, and robust multiview stereopsis[J]. IEEE transactions on pattern analysis and machine intelligence, 2010, 32(8): 1362-1376.
低纹理稠密建图 -
[9] Concha Belenguer A, Civera Sancho J. DPPTAM: Dense piecewise planar tracking and mapping from a monocular sequence[C]//Proc. IEEE/RSJ Int. Conf. Intell. Rob. Syst. 2015 (ART-2015-92153).
单目稠密分段跟踪与建图;开源!!相关研究:基于超像素的单目 SLAM Using Superpixels in Monocular SLAM -
[10] Pinies P, Paz L M, Newman P. Dense mono reconstruction: Living with the pain of the plain plane[C]//Robotics and Automation (ICRA), 2015 IEEE International Conference on. IEEE, 2015: 5226-5231.
生活场景下单目平面 SLAM -
[12] Flint A, Murray D, Reid I. Manhattan scene understanding using monocular, stereo, and 3d features[C]//Computer Vision (ICCV), 2011 IEEE International Conference on. IEEE, 2011: 2228-2235.
可代码可能是这个:https://github.com/alexflint/manhattan-vision -
[15] Von Gioi R G, Jakubowicz J, Morel J M, et al. LSD: A fast line segment detector with a false detection control[J]. IEEE transactions on pattern analysis and machine intelligence, 2010, 32(4): 722-732.
本文所使用的线检测方法 LSD -
[18] Kaess M. Simultaneous localization and mapping with infinite planes[C]//ICRA. 2015, 1: 2.
基于无限平面的 SLAM;RGB-D相机直接获取平面测量;定义了对数四元数的平面误差 -
[19] Rother C. A new approach to vanishing point detection in architectural environments[J]. Image and Vision Computing, 2002, 20(9-10): 647-655.
建筑环境消失点检测,消失点的计算公式 -
[20] Kaess M, Ranganathan A, Dellaert F. iSAM: Incremental smoothing and mapping[J]. IEEE Transactions on Robotics, 2008, 24(6): 1365-1378.
增量式平滑 SLAM :iSAM;因子图 -
[21] Taguchi Y, Jian Y D, Ramalingam S, et al. Point-plane SLAM for hand-held 3D sensors[C]//ICRA. 2013: 5182-5189.
RGBD 传感器,点-平面联合路标 -
[22] Gálvez-López D, Tardos J D. Bags of binary words for fast place recognition in image sequences[J]. IEEE Transactions on Robotics, 2012, 28(5): 1188-1197.
BoW 词袋模型 -
[23] Engel J, Sturm J, Cremers D. Semi-dense visual odometry for a monocular camera[C]//Proceedings of the IEEE international conference on computer vision. 2013: 1449-1456.
SVO;半稠密;滤波方法深度融合
【Q】 问题
- 3.3 节中 \(p_{c0},p_{c1}\) 是指怎样的两个点?为什么可以通过这两个点计算出两个平面的关系呢?
- 4.1 节中平面测量 \(c_{0},\cdots ,c_{m}\) ,里程计测量 \(u_{0},\cdots ,u_{m}\) 是怎么表示和计算的?
- 4.4 节关于闭环的部分,系统不是基于 LSD 做的吗?为什么还有 ORB 特征呢?
- 4.4 节中关于闭环,好像并没有说是如何检测平面闭环的啊,还是依然使用特征点来检测闭环,再比较着两帧之间的平面?低纹理的情况下如何检测闭环呢?
- 6.1 节中提到 “Pop-up Plane SLAM 使用地面真实位姿进行初始化,将恒定速度运动假设用作里程计测量”,为什么要用 ground truth pose 进行初始化,要是 ORB 也提供这样的初始化并减小程序中设定的初始化特征点的数量是否可以工作呢?恒定速度运动假设是什么作用呢?为什么要这么假设?
- 6.1 定量实验中了解一下 PCL RANSAC 算法进行点云平面分割 和 将 3D 平面模型重新投影到图像上以获得每个像素的深度估计代码上怎么做的;
- CNN 进行分割只是在选择最优的边界中作为约束使用吗?
【T】 思考
- 3.2 节中提到没有具体的方式来定义子集得分函数 F 和约束 I,可以考虑一下定义跟他不一样的方式;
- 3.2 节中的第二个约束,使集合中线段水平投影覆盖面积最大作为评分依据,有理论依据吗?是否可以换一种方式?
- 4.1 节中提到平面过参数化用四元数表示,思考一些典型的问题通过修改变量的表示形式来优化;
- 6.1 节中定量比较可以发现总体误差虽然不大,对整体的估计效果也不错,但对中间的状态估计偏差很大,是由于平面测量没有提供基于点的里程计测量,考虑一下是否可以解决这个问题,如何构造基于平面的里程计测量!!;
- 本文使用的是高度恒定假设,只存在平面的情况下高度无法收到约束,需要额外的测量(比如IMU),这是一个可以做的点;
- 在因子图优化过程中,地面要求一直可见并保持为同一个地平面,可以考虑跨楼层的多平面问题;
- 考虑小型化环境,从走廊室内到桌面级,大型物体到小型物体,多平面物体;
2019.01.11
wuyanminmax@gmail.com