Vslam方案+源码,轻松搞定视觉slam

2023-05-16

原创: 涛涛CV 涛涛CV 今天

关注涛涛CV,设星标,更新错过

-------------------------------------------

VSLAM方案

目前基于视觉的SLAM技术有多种组合形式(见下表)

方案

特点

TOF

成本高,分辨率较低,对环境不敏感,但对距离敏感

单目+结构光

处理量小,精度不高,可靠性不够高,不合适室外

双目

成本最低,应用广泛,对算法性能依赖度大,算法复杂度高,处理芯片需要很高的计算性能。受光照,物体纹理性质影响

双目+IMU

能定位、测速,输出姿态信息等优点, 缺点是误差随着时间迅速积累增长

双目+结构光

算法难度高,对环境要求也高。计算量大,需要FPGA或强CPU

激光雷达

可视范围广,缺点是性价比低,低成本的分辨率不高

最好使用 VSLAM+IMU 进行融合,可以提高精度上去,适用于实际应用中机器人的导航。

 

稀疏法:

2 ORB-SLAM2:(排名39) 支持单目,双目,RGB-D相机 没在维护

(构建出的地图是稀疏点云图、旋转时比较容易丢帧、可能会精度不高,或者产生累积误差,漂移)

误差:1.15%,0.0027

实时性:0.06s/2 cores/ >3.5GHz

开发环境:C/C++

https://github.com/raulmur/ORB_SLAM2

变体:https://github.com/BertaBescos/DynaSLAM

1 Stereo DSO:(排名24) 双目,大尺度,直接稀疏 最新2017年

慕尼黑工业大学,https://vision.in.tum.de/research/vslam/dso

误差:0.93%,0.0020

实时性:0.1s/1 core/3.4GHz

开发环境:C/C++

特点:直接法 稀疏特征 大规模

源代码:

运行数据集:https://github.com/JakobEngel/dso

数据集:TUM monoVO dataset 

连接相机运行:https://github.com/JakobEngel/dso_ros. 

3 ProSLAM:(排名60) 轻量级 最新2019.1

罗马大学

轻量级开源立体视觉SLAM系统,无需完全捆绑调整 - 针对教育目的。

误差:1.39%,0.0035

实时性:0.02s/1 cores/ 3.0GHz

开发环境:C/C++

开源:https://gitlab.com/srrg-software/srrg_proslam

论文里面的精度效果比ORB-SLAM2差,实时性在0.06~0.08。

PTAM (太老)

MonoSLAM(太老)

半稠密法:

1 LSD-SLAM:(排名44) 大范围单目,支持单目,双目,RGB-D相机

误差:1.2%,0.0033

实时性:0.07s/1 cores/ 3.5GHz

开发环境:C/C++

https://vision.in.tum.de/research/vslam/lsdslam

DSO:单目(太老)

https://vision.in.tum.de/research/vslam/dso

SVO:单目(太老)

https://github.com/uzh-rpg/rpg_svo

稠密法

Elastic Fusion:RGB-D

https://github.com/mp3guy/ElasticFusion

2 BundleFusion:RGB-D

https://github.com/niessner/BundleFusion

RGB-D SLAM V2:RGB-D

https://github.com/felixendres/rgbdslam_v2

1 RTAB-MAP :(排名51) 双目/RGB-D 没在维护

(鲁棒性不是很好、点云网格化用possion重建,不是主流的TSDF,速度会慢 、 重建效果不如 bundle fusion,但是也还不错)

误差:1.26%,0.0026

实时性:0.1s/1 cores/ 2.5GHz

开发环境:C/C++

项目已解散,Google Tango

https://github.com/introlab/rtabmap

DTAM:RGB-D(太老)

https://github.com/anuranbaka/OpenDTAM

Kintinous

DVO:RGB-D(太老)

https://github.com/tum-vision/dvo_slam

多传感器融合:

1 VINS-Fusion :(排名33)多目 + IMU 最新2019.3

香港科技大学

误差:1.09%,0.0033

实时性:0.1s/1 core/3.0GHz

开发环境:C/C++

https://github.com/HKUST-Aerial-Robotics/VINS-Fusion

VINS:单目 + IMU(惯性测量单元)https://github.com/HKUST-Aerial-Robotics/VINS-Mono

OKVIS:(单目、双目、四目)+ IMU

https://github.com/ethz-asl/okvis

 

 

数据集

1、TUM RGB-D SLAM Dataset and Benchmark

德国慕尼黑理工大学计算机视觉组制作的数据集,使用Kinect相机采集的数据集,包括IMU数据,并且用高精度运动采集系统提供了groundtruth(真值)。提供测试脚本,可以方便的实现量化评估。

https://vision.in.tum.de/data/datasets/rgbd-dataset

2、KITTI Vision Benchmark Suite

德国卡尔斯鲁厄理工学院和丰田工业大学芝加哥分校一起合作制作的用于自动驾驶的数据集。

http://www.cvlibs.net/datasets/kitti/eval_odometry.php

3、EuRoC MAV Dataset

世联邦理工大学制作的数据集,采用装备了双目相机和IMU的四旋翼无人机采集数据。

https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets

 

 

视觉定位

机器人运动过程中构建环境模型和地标,打造室内“视觉GPS”系统

地图构建

通过多传感器融合技术实时构建高精度,可持久使用的室内地图

语义地图

使用深度神经网络对地图信息进行分割理解,形成具有丰富语义信息的室内地图

产品模块

应用场景

AR、机器人、无人机、无人驾驶等领域, 就像移动互联网时代的手机定位一样。

 

 

1、导航定位与建图

SLAM快速识别地图坐标, 实现设备、特定目标长时间、高精度定位

基于视觉+惯性传感器的高精度SLAM算法,媲美激光雷达的定位精度

通过摄像头获取场景中的稠密点云信息,建立场景的栅格占用地图

基于实时构建的场景地图,让机器感知现实场景,实现自主最优路径规划

通过摄像头获取场景中的稠密点云信息,建立场景的栅格占用地图,基于智能避障算法,满足机器人精准避障的需求

2、高精度语义地图

轻量化模型精准识别百余类物体

将稠密地图按照物体的语义信息进行分割及匹配,帮助机器理解图像内容,以实现通行区域感知及避障

SLAM结合深度学习,实现精准的场景环境语义分析,提升SLAM系统精度

基于轻量化深度学习模型的物体识别,并结合场景地图提供环境语义

3、多传感器融合及标定

视觉、惯性、里程计、GNSS等多传感器融合,满足不同场景信息需求,优势互补,提高系统精度

分析传感器误差源,对传感器进行高精度误差建模

大幅降低传感器标定成本,实现快速高精度传感器标定

消费级传感器及低成本计算单元即可满足高精度前端解算

-------------------------------------------

 

https://mp.weixin.qq.com/s/SPfEXh_UlxZ74hcnstrbRw

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vslam方案+源码,轻松搞定视觉slam 的相关文章

  • SLAM笔记(四)运动恢复结构的几何数学(本征矩阵、单应矩阵、基础矩阵)

    1 间接法进行运动恢复的前提假设 对于结构与运动或视觉三维重建中 通常假设已经通过特征匹配等方法获取了匹配好的点对 先求出匹配点对再获取结构和运动信息的方法称作间接法 间接法最重要的三个假设是 1 拥有一系列两帧之间的匹配点对 但同时假设匹
  • 微信小程序SLAM AR零基础入门教程

    鬼灭之刃花街篇 开播在即 今天带大家零基础使用Kivicube制作一个炭治郎的SLAM AR云手办 可以通过微信小程序将AR版的炭治郎放置在家中 提前感受鬼灭的氛围 先上个GIF大家看看动态的展示效果 在这里先科普一下本次教程使用到的AR技
  • ubuntu系统下配置vscode编译cmake

    文章目录 一 配置vs code运行c 代码 三个关键文件介绍 1 tasks json run helloworld cpp 1 1 打开cpp文件 使其成为活动文件 1 2 按编辑器右上角的播放按钮 1 3生成task文件 1 4 此时
  • 《视觉SLAM十四讲》第一版源码slambook编译调试

    slambook master ch2 编译正常 log如下 slambook master ch2 mkdir build cd build cmake make j8 The C compiler identification is G
  • ROS激光SLAM导航理解

    ROS激光SLAM导航理解 注 最近学习ROS的激光导航知识 需要理清ROS的SLAM 环境感知 costmap 与导航算法 为防止自己忘记 将觉得有价值的内容收集于此 对AGV来说 SLAM是个大大坑 环境感知和局部运动控制也是大坑 学习
  • 基于深度相机的三维重建技术

    本文转载自http www bugevr com zblog id 14 原创作者bugeadmin 转载至我的博客 主要是为了备份 日后查找方便 谢谢原创作者的分享 三维重建 3D Reconstruction 技术一直是计算机图形学和计
  • 各向异性(anisotropic)浅提

    文章目录 各向异性 anisotropic 定义 哪种物体具有各向异性反射 什么导致各向异性反射 总结 各向异性 anisotropic 定义 它指一种存在方向依赖性 这意味着在不同的方向不同的特性 相对于该属性各向同性 当沿不同轴测量时
  • 激光SLAM直接线性方法里程计运动模型及标定

    原创作者 W Tortoise 原创作者文章 https blog csdn net learning tortosie article details 107763626 1 里程计运动模型 1 1 两轮差分底盘的运动模型 1 2 三轮全
  • 速腾聚创雷达最新驱动安装(包含ring和timestamp)运行lio-sam

    记录一下搞slam的过程 ring和timestamp 最近想跑lio sam 需要用到ring和timestamp两个参数 lio sam作者用的velodyne雷达是带这两个参数的 但是rs雷达的老版驱动录制的点云包没有这两个参数 在g
  • 对最小二乘法的一点理解 - slam学习笔记

    我对最小二乘法的理解 在给定参数个数和函数模型之后 根据测试数据 找出与所有测试数据的偏差的平方和最小的参数 这里面应该有两个问题 1 为什么选取与真实数据平方和最小的拟合函数 2 如何求参数 为什么选取与真实数据平方和最小的拟合函数 极大
  • Difference Between LiDAR and RADAR——LiDAR和RADAR的不同

    Difference Between LiDAR and RADAR 原文连接 https www differencebetween com difference between lidar and vs radar 翻译 RADAR和L
  • LeGO-LOAM论文翻译(内容精简)

    LeGO LOAM是一种在LOAM之上进行改进的激光雷达建图方法 建图效果比LOAM要好 但是建图较为稀疏 计算量也更小了 本文原地址 wykxwyc的博客 github注释后LeGO LOAM源码 LeGO LOAM NOTED 关于代码
  • 深度相机Kinect2.0三维点云拼接实验(一)

    文章目录 摘要 Kinect2 0简介 工作原理 RGB相机成像原理 深度相机成像原理 总结 参考文献 摘要 Kinect2 0是微软推出的一款RGB D相机 它即支持普通相机的拍摄 也支持脉冲测量深度信息 本系列文章基于该传感器给出基本的
  • vscode配置eigen3

    目录 1 头文件包含 2 c cpp properties json 3 CMakeList txt 4 完整代码 1 头文件包含 Eigen 核心部分 include
  • 图像匹配算法

    图像匹配算法分为3类 基于灰度的匹配算法 基于特征的匹配算法 基于关系的匹配算法 1 基于灰度的模板匹配算法 模板匹配 Blocking Matching 是根据已知模板图像到另一幅图像中寻找与模板图像相似的子图像 基于灰度的匹配算法也称作
  • 视觉SLAM技术及其应用(章国锋--复杂环境下的鲁棒SfM与SLAM)

    SLAM 同时定位与地图构建 机器人和计算机视觉领域的基本问题 在未知环境中定位自身方位并同时构建环境三维地图 应用广泛 增强现实 虚拟现实 机器人 无人驾驶 SLAM常用的传感器 红外传感器 较近距离感应 常用与扫地机器人 激光雷达 单线
  • docker dbus-x11

    本来想用terminator启动nvidia docker 显示出图形界面的 结果发现启动的时候出问题了 terminator 1 dbind WARNING 07 31 53 725 Couldn t connect to accessi
  • 二.全局定位--开源定位框架livox-relocalization实录数据集测试

    相关博客 二十五 SLAM中Mapping和Localization区别和思考 goldqiu的博客 CSDN博客 二十五 SLAM中Mapping和Localization区别和思考 goldqiu的博客 CSDN博客 基于固态雷达的全局
  • ORB_SLAM2运行官方数据集/自己数据集

    官方数据集运行结果 WeChat 20230210194425 可以正常运行 自己数据集运行结果 自己的数据集 主要是用手机摄像头采集的实验室进行了一下简单的运行 可以成功运行 但是由于查看的相关程序的是死循环不能像运行官方数据集那样完整保
  • Ubuntu18.04安装Autoware1.15(解决Openplanner无法绕障的问题:Openplanner2.5)

    文章目录 一 下载Autoware1 15源码 二 安装依赖 三 修改CUDA版本 四 编译以及报错解决 编译 1 报 undefined reference to cv Mat Mat 的错就按照下面方式改相应包 2 遇到OpenCV的C

随机推荐

  • 最优化理论·非线性最小二乘

    最优化理论 非线性最小二乘 标签 xff08 空格分隔 xff09 xff1a 数学 非线性最小二乘问题是椭圆拟合中最易遇到的优化问题 xff0c 本文主要对非线性二乘的基本分析做简单介绍 1 什么是最小二乘问题 目标函数能够写为m个函数平
  • 所有线段的交点-初级篇

    所有线段的交点 初级篇 标签 xff08 空格分隔 xff09 xff1a 计算机视觉 图形学 所有线段的交点 初级篇 参考 xff1a 计算几何 算法与应用 邓俊辉 译 清华大学出版社 本文以一个小例子介绍如何计算所有线段交点 xff0c
  • 服务器docker使用

    这篇文章是我给自己的一个记录 xff0c 有些名词可能写的不专业 xff0c 请见谅 docker里面有两个概念 xff0c 一个是镜像 xff0c 一个是容器 镜像可以看做是类 xff0c 容器就是类的实例 在学院的服务器上 xff0c
  • MPC模型预测控制

    这篇主要讲一下模型预测控制 xff0c 如果对PID控制了解的同学 xff0c 那效果更好 如果不了解PID控制 xff0c 还是熟悉下比较好 模型预测控制 xff0c 顾名思义 xff0c 基于模型 xff0c 预测未来 xff0c 进行
  • MPC自学资料总结

    1 书籍 xff1a 无人驾驶车辆模型预测控制 2 视频 xff1a https ww2 mathworks cn videos understanding model predictive control part 1 why use m
  • [授权发表]基于 VNCServer + noVNC 构建 Docker 桌面系统

    by Falcon of TinyLab org 2015 05 02 最初发表 xff1a 泰晓科技 聚焦嵌入式 Linux xff0c 追本溯源 xff0c 见微知著 xff01 原文链接 xff1a 基于 VNCServer 43 n
  • 【c语言】字符串输出方式 | API仿真

    创作不易 xff0c 本篇文章如果帮助到了你 xff0c 还请点赞 关注支持一下 gt x16966 lt 主页专栏有更多知识 xff0c 如有疑问欢迎大家指正讨论 xff0c 共同进步 xff01 给大家跳段街舞感谢支持 xff01 c语
  • 【c语言】结构体详解 | 结构体数组/指针

    创作不易 xff0c 本篇文章如果帮助到了你 xff0c 还请点赞 关注支持一下 gt x16966 lt 主页专栏有更多知识 xff0c 如有疑问欢迎大家指正讨论 xff0c 共同进步 xff01 x1f525 c语言系列专栏 xff1a
  • stm32F4系列学习笔记1: keil使用

    一 在keil的find功能中有几个find options xff0c 查了一下 xff0c 这几个find options的意思是 1 Match case 区分大小写 2 Regular expression 正则表达式 3 Matc
  • STM32F4系列学习笔记2:IO相关

    一 寄存器说明 xff1a STM32F4 GPIO最多有9组 xff0c 从GPIOA GPIOI xff0c 每组IO有16个Pin xff0c STM32F407有7组 xff0c 所以一共有7 16 61 112个引脚 xff0c
  • 树莓派Ubuntu20.04创建虚拟内存文件并设置开机自动启用

    目录 一 检查有没有虚拟内存 二 创建虚拟内存文件并设置权限 三 设置并激活虚拟内存文件 四 设置开机自动启用虚拟内存 五 重启后检测虚拟内存是否正常启用 一 检查有没有虚拟内存 树莓派Ubuntu20 04默认没有虚拟内存 xff0c 可
  • 如何配置 QEMU 虚拟机网络

    关于 QEMU 的网络策略 QEMU 提供 4 种网络通信方法 xff0c 它们分别是 xff1a User mode stack xff1a 用户协议栈方式 xff0c 这种方式的大概原理是在 QEMU 进程中实现一个协议栈 xff0c
  • Pygame库的使用-1 初识Pygame

    本文参考链接如下 xff1a 1 https zhuanlan zhihu com p 1366649502 https www bilibili com video BV1bE411p7Ue from 61 search amp seid
  • 电机知识入门 有刷 | 无刷

    一 总述 直流电动机按结构及工作原理可划分为无刷直流电机 BLDC电机 和有刷直流电机 BDC电机 二 差异 BDC是Brushed DC Motor的缩写 xff0c BLDC是Brushless DC Motor的缩写BLDC电机 直流
  • PCB设计1 模块间的隔离

    想要给板子的各个部分进行电气隔离 xff0c 比如电源转压之后的各个电压12V 5V 3 3V 和用电的设备之间进行隔离 xff0c 本来的想法是用2pin的跳线帽 xff0c 但是在参考了一些资料之后 xff0c 对2pin跳线帽有了一个
  • Ubuntu18.04 更改apt-get 的时候会访问的软件源列表

    像这样 xff0c 每次在sudo apt get update的时候会有很多访问的软件源列表 xff0c 但是有的时候自己安装了一些软件比如说nordvpn xff0c 这样的时候就会自动的为我们增加apt get的源 xff0c 但是往
  • 安装油猴插件解决chatgpt报错问题

    转载自Github Daily公众号 Something went wrong If this issue persists please contact usthrough our help center at help openai c
  • Ubuntu18.04安装Elevation_Map并测试

    参考 elevation mapping at master ANYbotics elevation mapping GitHub 安装elevation mapping与traversability estimation elevatio
  • Vue:button按钮的点击

    调用 xff1a lt button class 61 34 toast 34 v on click 61 34 addEvent 34 gt toast gt lt button gt script lt script gt export
  • Vslam方案+源码,轻松搞定视觉slam

    原创 xff1a 涛涛CV 涛涛CV 今天 关注涛涛CV xff0c 设为星标 xff0c 更新不错过 VSLAM方案 目前基于视觉的SLAM技术有多种组合形式 xff08 见下表 xff09 方案 特点 TOF 成本高 xff0c 分辨率