胡君的个人博客

你必须非常努力才能看起来毫不费力


  • 首页

  • 分类

  • 归档

  • 标签

作品展示

发表于 2019-03-19   |   分类于 Video   |  

心血来潮,上传一些曾经做过的小作品,防止数据丢失而失去珍贵的回忆。

TurtleBot2

投稿ROBIO2018的视频材料,用语音指导的方式提高指向导航的效率和准确率

Jun Hu, Zhongyu Jiang, Xionghao Ding, Peter Hall and Taijiang Mu. VGPN: Voice-Guided Pointing Robot Navigation for Humans. ROBIO, 2018.

This video shows the demonstration of our proposed VGPN approach for robot navigation.
It contains Scene 1 (when pointing gesture is unnecessary) and Scene 2 (when pointing direction is inaccurate) mentioned in the paper, showing the advantages of using voice gudance in pointing robot navigation.

右键图片,在新标签页中打开,播放视频:

阅读全文 »

VINS-Mono

发表于 2019-03-09   |   分类于 VSLAM   |  

摘要

由摄像机和低成本惯性测量单元(IMU)组成的单目视觉惯性系统(VINS)构成了用于度量六自由度状态估计的最小传感器套件。然而,由于缺乏直接距离测量,在IMU处理、估计器初始化、外部标定和非线性优化等方面提出了重大挑战。在本文中,我们提出了一种鲁棒的、通用的单目视觉惯性状态估计器VINS-Mono。

阅读全文 »

Lidar SLAM

发表于 2019-03-09   |   分类于 VSLAM   |  

LOAM_velodyne系列学习

loam中文代码注解

主要思路分为:1. 高频的运动估计; 2. 低频的环境建图。

阅读全文 »

SFM Revisited--Colmap

发表于 2019-03-09   |   分类于 VSLAM   |  

泡泡机器人-重新认识SfM (CVPR-16)

是著名SFM开源系统COLMAP的稀疏三维重构部分的论文。

增量式SfM是从无序图像集合中进行三维重建的常用方法。 虽然增量式SfM在所有方面都取得极大的进展,但在鲁棒性,准确性,完整性和可扩展性方面离真正的实用还有一定的差距。

阅读全文 »

Lidar Visual SLAM

发表于 2019-03-09   |   分类于 VSLAM   |  

V-LOAM

VLOAM :Visual-lidar Odometry and Mapping: Low-drift, Robust, and Fast

别人已开源,https://github.com/daobilige-su/loam_velodyne
视觉里程计用DEMO,论文见https://ri.cmu.edu/pub_files/2014/9/IROS_2014.pdf,核心思想是用深度信息来辅助视觉里程计,有深度时可以不需要三角化。用iSAM做因子图优化
雷达里程计用LOAM,高频运动估计,低频L-M非线性优化和建图。

阅读全文 »

滤波

发表于 2018-11-09   |   分类于 VSLAM   |  

高翔总结

KF(卡尔曼滤波)

线性系统,高斯噪声

预测:从上一时刻的状态,根据输入信息预测当前时刻的状态分布,计算系统状态预测值的协方差(先验)
计算卡尔曼增益Kg
更新:然后更新系统状态,再计算系统状态估计值的协方差(后验),为下一次迭代做准备

阅读全文 »

重要VSLAM系统

发表于 2018-11-09   |   分类于 VSLAM   |  

主流的VSLAM

特征点法:MonoSLAM(2003-2007)、PTAM(2007-2008)、ORB-SLAM(2014-2015)

直接法:DTAM(稠密直接法,2011)、LSD-SLAM(稀疏直接,2013-2014)、DSO(LSD改进,稀疏直接VO,2016)

半直接:特征点和直接法混合:跟踪一些关键点,然后像直接法那样进行块匹配。SVO(半直接视觉里程计, 2014)

RGBD稠密法:DTAM(ICCV 2011)、Kinect Fusion(2011)、Kintinous(2012-2014)、DVO-SLAM(IROS 2013)、RGB-D SLAM V2(2014)、Elastic Fusion(2015)、InfiniTAM v3(2017)、BundleFusion(2017)

后端优化:g2o、ceres、GTSAM

数据集:RGB-D SLAM Dataset and Benchmark、KITTI Vision Benchmark Suite、The EuRoC MAV Dataset等。

主流开源方案对比

MonoSLAM(2003-2007)

2007年,A.J.Davison教授提出的第一个实时的单目视觉SLAM系统。

扩展卡尔曼滤波为后端,以相机当前状态和所有路标点为状态量,更新其均值和方差。

追踪前段非常稀疏的特征点。(Shi-Tomasi角点)

缺点:

  • 应用场景很窄
  • 路标数量有限
  • 特征点稀疏非常容易丢失
  • 开发已经停止

PTAM(2007-2008)

2007年,Klein等人提出。基于FAST角点。

论文中提出的关键帧以及多线程处理思想成为之后视觉slam标配;甚至能够实时运行在手机上。不少AR是基于ptam的;

前端线程(Tracking):通过匀速运动模型预测当前帧方位,搜索FAST角点,并根据匹配关系优化帧方位,若跟踪失败开始重定位,跟踪成功则判断是否满足关键帧条件。
后端线程(Mapping):沿极线匹配不同关键帧之间的图像特征点,通过三角化恢复三维位置,并对所有关键帧和三维点运行BA。

特点:
1、提出并实现了跟踪和建图过程的并行化,首次区分出前后端的概念。
2、第一个使用非线性优化,引入了关键帧机制:把几个关键图像串起来,然后优化其轨迹和地图。
3、PTAM同时是一个增强现实软件:根据估计的相机位姿,可以在虚拟的平面上放置虚拟物体。

优点:

  • 跟踪和建图的并行化
  • 第一个使用非线性优化。
  • 同时是一个增强现实的软件

缺点:

  • 缺乏回环检测和重定位
  • 场景小,跟踪容易丢失

ORB-SLAM(2014-2015)

2015年,代表着主流的特征点SLAM的一个高峰,属于稀疏建图。

ORB-SLAM2:支持单目,双目,RGB-D相机

三线程的SLAM方案:
Tracking线程:对新来的图像提取ORB特征点,并与最近的关键帧进行比较,计算特征点的位置并粗略估计相机位姿;
Local Mapping线程:求解BA问题,包括局部空间内的特征点和相机位姿;
Loop Closing (and Full BA)线程:对全局的地图与关键帧进行回环检测,消除累计误差,优化只有相机位姿组成的位姿图。

优点:

  • 支持单目,双目,RGB-D。良好的泛用性。
  • 围绕ORB特征进行计算,包括视觉里程计和回环检测的ORB字典。ORB特征:不像SIFT和SURF那样费时,相比Harris角点又具有良好的旋转和缩放不变性;ORB提供描述子,在大范围运动时能进行回环检测和重定位;
  • 单目具有自动选择系统初始化方案:基于对极几何还是基于单应性;双目和RGBD的初始化很快,且原地不动就能完成。
  • 关键帧的选取:先用宽松的判断条件加入新的关键帧和三维点以保证后续帧的鲁邦跟踪,再删除冗余关键帧和不稳定三维点以保证BA效率和精度。
  • 回环检测是亮点,但要加载很大的ORB字典。
  • 创新式地使用了三个线程:实时跟踪的Tracking,局部BA(小图),全局Pose Graph的回环检测和优化(大图)。
  • 围绕特征点进行了不少的优化。保证了特征点的均匀分布,在优化位姿时使用了一种循环优化4遍以得到更多正确匹配的方法,比PTAM更为宽松的关键帧选取策略。

优点:
1、在静态环境下定位准确,系统非常稳定, 单目和双目版本都可以达到实时;
2、代码可读性强,易扩展, 网上也有实现和imu融合的版本。

缺点:

  • 每副图像计算一遍ORB特征,非常耗时。
  • 三线程结构也给CPU带来了较重的负担,移植到嵌入式设备上有一定的困难。
  • 建图为稀疏特征点,没有开放存储和读取地图后进行重新定位的功能。
  • 稀疏特征点地图只能满足定位要求,无法提供导航,避障,交互等功能,因此仅用ORB-SLAM来处理定位问题太重量级。
  • 对动态物体很敏感,有动态物体时非常容易跟踪失败;
  • 纯旋转也容易丢失。

LSD-SLAM(2013-2014)

2014年,J.Engle等人提出。标志着单目直接法的成功应用,将直接法应用到了半稠密的单目SLAM中。

LSD-SLAM:支持单目,双目,RGB-D相机

1、提出了地图梯度与直接法的关系,以及像素梯度与极线方向在稠密重建中的角度关系;
2、在CPU上实现了实时半稠密场景的重建;
3、具有回环检测功能;
4、一些技巧保证追踪的实时性与稳定性:
在极线上等距离取5个点,度量其SSD;深度估计时,首先用随机数初始化深度,在估计完后又把深度均值归一化以调整尺度;度量深度不确定性时,不仅考虑三角化的几何关系,还考虑了极线与深度的夹角,归纳成一个光度不确定项;关键帧之间的约束使用了相似变换群及与之对应的李代数显式表达出尺度,在后端优化中可以将不同的尺度的场景考虑进来,减小尺度漂移现象。

优点:

  • 直接法是针对像素进行的。有创见地提出了像素梯度与直接法的关系,以及像素梯度与极线方向在稠密重建中的角度关系。
  • 在CPU上实现了实时半稠密场景的重建。
  • 不是利用单个像素,而是在极线上等距离取5个点,度量其SSD。用了很多精妙的手段来保证追踪的实时性和稳定性。
  • 直接法的优点:对特征缺失区域不敏感

缺点:

  • 对相机内参和曝光非常敏感
  • 在相机快速运动时容易丢失
  • 没有基于直接法的回环检测。因此必须依赖于特征点方法来进行回环检测,尚未摆脱特征点的计算。

SVO(Semi-direct Visual Odoemtry,半直接视觉里程计)(2014)

2014年,Forster等人提出。基于稀疏直接法的视觉里程计。特征点和直接法混合:跟踪一些关键点(角点,没有描述子),然后像直接法那样将关键点周围4×4的小块进行块匹配,来估计相机自身的运动。

SVO 2.0 2016年:
C. Forster, Z. Zhang, M. Gassner, M. Werlberger, and D. Scaramuzza.
SVO 2.0: Semi-direct visual odometry for monocular and multicamera
systems. TRO, 2016.

优点:

  • 速度极快。在PC平台上能达到每秒100多帧,后续的SVO 2.0能达到每秒400帧。
  • 非常适用于无人机,手持AR/VR设备这些计算平台受限场合的定位
  • 创新之处:提出了深度滤波器的概念,并推导了基于均匀-高斯混合分布的深度滤波器,用于关键点的位置估计,并使用了逆深度作为参数化形式。
  • 代码清晰易读

缺点:

  • 目标应用平台是无人机的俯视相机,相机运动主要为水平和上下移动,所以在平视相机中表现不佳。如单目初始化时使用了分解H矩阵,需要假设特征点位于平面上;在关键帧选择时,使用了平移量作为确定新的关键帧的策略,而没有考虑旋转量。
  • 为了速度和轻量化,舍弃了后端优化和回环检测,基本没有建图功能。
  • 位姿估计存在累计误差,丢失后不太容易进行重定位,所以SVO只是个VO,误差大。

DSO(直接稀疏VO,2016)

DSO [13]是LSD-SLAM的作者Jakob Engel放出的另一个大杀器,从其展示的实验结果看,无论是robustness,或是accuracy,或是计算速度,都完爆LSD-SLAM和ORB-SLAM。

DSO:单目

慕尼黑工业大学(TUM)计算机视觉实验室发布的一个稀疏直接法的视觉里程计。

后端使用一个由若干个关键帧组成的滑动窗口。除了维护这个窗口中的关键帧与地图点外,还会维护与优化相关的结构。特别地,这里指Gauss-Newton或Levenburg-Marquardt方法中的Hessian矩阵和b向量(仅先验部分)。

提出了光度标定,认为对相机的曝光时间、暗角、伽马响应等参数进行标定后,能够让直接法更加鲁棒。对于未进行光度标定的相机,DSO也会在优化中动态估计光度参数。

优点:可以生成相当稠密的点云,速度在正常运行的时候很快

缺点:
1、对场景光照要求高,要求尽量保持曝光时间的稳定
2、不是个完整的SLAM,它没有回环检测、地图重用、丢失后的重定位。
3、初始化部分也比较慢,当然双目或RGBD相机会容易很多。
4、代码可扩展性比较差

DSO在准确性,稳定性和速度上都比LSD好。LSD的优势在于回环检测。

DTAM(ICCV 2011)

DTAM is a system for real-time camera tracking and reconstruction which relies not on feature extraction but dense, every pixel methods.

直接法的鼻祖,稠密法;

MLM(ICRA 2016)

单目稠密,CPU实时

code-slam(CVPR 2018)

帝国理工2018CVPR论文,基于深度学习的单目Dense SLAM

soft-slam

双目slam,精度和速度比orb-slam好

RGB-D

一起做RGB-D SLAM

qianyi.info这个网站上找robust reconstruction

BundleFusion(2017)

BundleFusion:RGB-D相机
TOG 2017

斯坦福大学、微软研究院和德国mpii共同开发的BundleFusion:实时全局一致的3D重建,使用动态表面重新整合技术。

InfiniTAM v3(2017)

InfiniTAM–github

InfiniTAM an open source, multi-platform framework for real-time, large-scale depth fusion and tracking, released under an Oxford University Innovation Academic License.

InfiniTAM v3在2017年8月中旬出的,几乎代表行业最高水准。实现可以考虑基于InfiniTAM v3,源码很适合学习,二次开发。用于网格重构。

InfiniTAM是基于voxel hashing基础上做的。
先对voxel hashing介绍,
参考文献:”Real-time 3D Reconstruction at Scale using Voxel Hashing”

Elastic Fusion(2015)

Facebook Reality Labs的Thomas Whelan博士开发

RGB-D SLAM V2(2014)

DVO-SLAM(IROS 2013)

TUM的基于RGBD camera的Dense VO和SLAM方法

Kintinous(2012-2014)

Kinect Fusion(2011)

帝国理工(ICL)和和微软研究院

kinect fusion:kinectfusion是微软研究院利用kinect进行三维重建的项目,深入了解该算法及其实现可以为3D重建的kinect类应用提供一定的参考。该项目本身需要比较强大的CUDA显卡支持实现实时重建。

ORB-SLAM2

发表于 2018-11-09   |   分类于 VSLAM   |  

ORB-SLAM2

ROS版本:

1
2
sudo chmod 777 ORBvoc.txt
sudo chmod 777 TUM1.yaml

阅读全文 »

SLAM与深度学习

发表于 2018-11-09   |   分类于 VSLAM   |  

Tombone’s Computer Vision Blog

翻译如下:
ICCV研讨会:实时SLAM的未来以及深度学习与SLAM的比较

当前深度学习和slam结合有哪些比较好的论文,有没有一些开源的代码?

阅读全文 »

OctoMap

发表于 2018-10-09   |   分类于 VSLAM   |  

octomap Reference

SLAM拾萃(1):octomap

基于高博的修改

阅读全文 »
123
hujun1413

hujun1413

轻吟浅唱,我在岁月中踽踽独行

29 日志
8 分类
5 标签
RSS
友情链接
  • 我的GitHub
  • 我的CSDN
  • 我的微博
© 2016 - 2019 hujun1413   |     |  Google网站地图   |  百度网站地图
由 Hexo 强力驱动
主题 - NexT.Mist