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方法汇总

    原文 http blog csdn net smartxxyx article details 53068855 目录 SLAM概述 SLAM一般处理流程包括track和map两部分 所谓的track是用来估计相机的位姿 也叫front e
  • SLAM笔记(四)运动恢复结构的几何数学(本征矩阵、单应矩阵、基础矩阵)

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

    一 前言 1 最小二乘是一类特殊形式的最优化求解问题 相比于其他优化问题 求解方式比较简洁 2 最小二乘被广泛应用于各种实际问题的建模 在求解实际工程问题中有着广泛的应用 例如 slam 中随处可见最小二乘的声影 二 线性最小二乘法 1 预
  • ROS STAGE教程2(地图定义和GMAPPING建图)

    目前用在ROS Kinetic上的stage版本为4 1 官方教程http rtv github io Stage modules html 用户可以用stage或者gazebo来创建地图和机器人 传感器模型来进行仿真 并与自己的SLAM模
  • 从0.3开始搭建LeGO-LOAM+VLP雷达+小车实时建图(保姆级教程,小白踩坑日记)

    背景 SLAM小白 因为项目需要花了两天时间编译代码 连接雷达实现了交互 踩了很多坑 简单记录一下 让后面感兴趣的朋友少走点弯路 肯定有很多不专业的 错误的地方 还请大家不吝赐教 噗通 也可以见知乎 https zhuanlan zhihu
  • Ubuntu18.04 安装速腾聚创最新驱动RSLidar_SDK采集XYZIRT格式的激光点云数据 --SLAM不学无术小问题

    Ubuntu18 04 安装速腾聚创最新驱动RSLidar SDK采集XYZIRT格式的激光点云数据 新款驱动支持RS16 RS32 RSBP RS128 RS80 RSM1 B3 RSHELIOS等型号 注意 该教程旨在引导安装 可能现在
  • 基于深度相机的三维重建技术

    本文转载自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 三轮全
  • Sophus使用记录

    sophus库是一个基于Eigen的C 李群李代数库 可以用来方便地进行李群李代数的运算 头文件 主要用到以下两个头文件 include
  • SLAM评估工具evo的使用

    evo官方指南 参考博客 lt 官方手册 这篇参考博客 完全可以掌握evo的基本操作 gt Then 实践出真知 1 安装evo sudo apt install python pip pip install evo upgrade no
  • 对最小二乘法的一点理解 - slam学习笔记

    我对最小二乘法的理解 在给定参数个数和函数模型之后 根据测试数据 找出与所有测试数据的偏差的平方和最小的参数 这里面应该有两个问题 1 为什么选取与真实数据平方和最小的拟合函数 2 如何求参数 为什么选取与真实数据平方和最小的拟合函数 极大
  • 视觉SLAM漫谈(二):图优化理论与g2o的使用

    视觉SLAM漫谈 二 图优化理论与g2o的使用 1 前言以及回顾 各位朋友 自从上一篇 视觉SLAM漫谈 写成以来已经有一段时间了 我收到几位热心读者的邮件 有的希望我介绍一下当前视觉SLAM程序的实用程度 更多的人希望了解一下前文提到的g
  • Difference Between LiDAR and RADAR——LiDAR和RADAR的不同

    Difference Between LiDAR and RADAR 原文连接 https www differencebetween com difference between lidar and vs radar 翻译 RADAR和L
  • 单目视觉里程记代码

    在Github上发现了一个简单的单目vo 有接近500星 链接如下 https github com avisingh599 mono vo 这个单目里程计主要依靠opencv实现 提取fast角点并进行光流跟踪 然后求取本质矩阵并恢复两帧
  • 图像匹配算法

    图像匹配算法分为3类 基于灰度的匹配算法 基于特征的匹配算法 基于关系的匹配算法 1 基于灰度的模板匹配算法 模板匹配 Blocking Matching 是根据已知模板图像到另一幅图像中寻找与模板图像相似的子图像 基于灰度的匹配算法也称作
  • PnP 问题

    欢迎访问我的博客首页 PnP 问题 1 DLT 2 P3P 3 G2O 求解 PnP 3 1 单目 3 2 双目 4 自定义顶点与边优化内参 4 1 二元边 4 2 三元边 4 3 总结 5 参考 PnP Perspective n Poi
  • docker dbus-x11

    本来想用terminator启动nvidia docker 显示出图形界面的 结果发现启动的时候出问题了 terminator 1 dbind WARNING 07 31 53 725 Couldn t connect to accessi
  • Ceres Solver从零开始手把手教学使用

    目录 一 简介 二 安装 三 介绍 四 Hello Word 五 导数 1 数值导数 2解析求导 六 实践 Powell函数 一 简介 笔者已经半年没有更新新的内容了 最近学习视觉SLAM的过程中发现自己之前学习的库基础不够扎实 Ceres
  • 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 分辨率