当前位置: 首页 > news >正文

(周末公众号解读系列)2000字-视觉SLAM综述

参考链接:

https://mp.weixin.qq.com/s?__biz=Mzg2NzUxNTU1OA==&mid=2247528395&idx=1&sn=6c9290dd7fd926f11cbaca312fbe99a2&chksm=ceb84202f9cfcb1410353c805b122e8df2e2b79bd4031ddc5d8678f8b11c356a25f55f488907&scene=126&sessionid=1677323905&subscene=227&key=9a02e99e10746e62edc61b510f8aa435c893767b6ec76041a96a2d39cb0923b7ca8ddd1ab0097ac2e6217b606b417eb69a086da9ed974160452df9b6c6c0f5b027a4213626c2f423451e45483b8fc46475378a84bb89041d614925d5f73fe5542db4d35ef46699463ff782427b1092450fc1016047edc1c1010d6ca92b0f3836&ascene=0&uin=Mzc0NTg4MzkyNw%3D%3D&devicetype=Windows+10+x64&version=6309001c&lang=zh_CN&countrycode=CN&exportkey=n_ChQIAhIQgje2UUM5NqDpia5oVB%2FXHxLgAQIE97dBBAEAAAAAAOyyL7mK2bcAAAAOpnltbLcz9gKNyK89dVj0vLNeFk65c8P6inPTXZ29QjOPVkYra5AJxJtX0E7z%2FLVP2Au7HyYmR0X%2FEoIPgPw0AzQU8TGtSVDX9vrkMIx5sfgjFmZqInx7EblixofRc%2FrDV%2Bu5sk7jAB8d2Cr7kIBRKAg3gq715LqS3CLOY%2F5VQ4KqrEmUp1JRmnCeCgqEx1MTKStBV6ihSUhaLgwMJKHFS0YmMD7PoFQpMRJYoMqMTWjz9CDfCYMmKWAJPdFqjnI6HeBGWKqtrPNl&acctmode=0&pass_ticket=dVWGS3Iox01jACb0GxzkNrJO8A4pK0njBNgvyRFW67nVbm6C5y5zRZm1SRwVDFUn5iynKL7FMHFZJLb6BlUuGQ%3D%3D&wx_header=1&fontgear=2

阅读心得:

视觉SLAM系统的经典结构可分为五个部分:相机传感器模块、前端模块、后端模块、回环模块和建图模块。如图1所示,相机传感器模块负责收集图像数据,前端模块负责跟踪两个相邻帧之间的图像特征,以实现初始相机运动估计和局部建图,后端模块负责前端的数值优化和进一步的运动估计,回环模块负责通过计算大规模环境中的图像相似度来消除累积误差,建图模块负责重建周围环境(Gao等人,2017)。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

编辑切换为居中

添加图片注释,不超过 140 字(可选)

视觉SLAM的前端被称为视觉里程计(VO)。它负责基于相邻帧的信息粗略地估计相机运动和特征方向。为了获得具有快速响应速度的精确姿态,需要有效的VO。目前,前端主要可分为两类:基于特征的方法和直接方法(包括半直接方法)(Zou等人,2020)。本节主要回顾VO的基于特征的方法。关于半直接和直接方法在后文。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

后端的话没啥创新的地方,能明白这里面的原理就行了。这个地方的创新点还是不足的,但是类似与GTSAM这种工程性质的代码,感觉没个100人,想要重构这个代码是有些些困难的。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

回环部分现在是可以加深度学习的,这个还不太了解。但是激光SLAM那边的回环检测是已经用了很成熟的深度学习框架在运行了。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

度量地图描述了地图元素之间的相对位置关系,拓扑地图则强调了地图元素间的连接关系。同时度量地图又可以分为稀疏地图和密集地图,简单来说稀疏地图就是用特征点(关键点)来进行地图的构建,而密集地图则是用所有点(特征点)来进行地图的构建。

根据传感器的类型,视觉SLAM可以分为单目、双目、RGB-D和基于事件相机的方法。根据地图的密度,可分为稀疏、密集和半密集SLAM。总的来说,反正就是SLAM的分类有很多种,看你到底按照什么来进行分类了。

2017年,Tong等人(2017)提出了VINS-Mono,它被视为一种优秀的单目VI-SLAM系统,前端采用光流方法,后端采用基于滑动窗口的非线性优化算法(Cheng等人,2021b)。此外,VINS-Mono的初始化方法值得注意,它采用了不相交方法(以及VI-ORBSLAM Mur Artal和Tards,2017),该方法首先初始化纯视觉子系统,然后估计IMU(加速度计和陀螺仪)的偏差、重力、比例和速度。通过KITTI和EuRoC数据集的测试,VINS Mono已被证明具有与OKVIS相当的定位精度,在初始化和环路闭合阶段具有更完整和鲁棒性。2019年,VINS-Mono团队提出了双目版本,并整合了GPS信息,VINS-Fusion(Tong等人,2019)。如图6(c)所示,由于增加了GPS测量,它在户外环境中实现了良好的定位和建图效果,并且被认为是自动驾驶车辆领域的一个良好应用。

上面这一段介绍了vins,是一个非常值得学习的vio系统,这个正在学习和整理阶段,md,最近实在是没时间整理了,过几天就开始搞这个的ppt了。

基于LIDAR-IMU融合的方案分为两类:松耦合和紧耦合方案。典型的松耦合方案是LOAM,(图16(a))和LeGO-LOMA(Shan和Englot,2018),其中IMU测量信息未用于优化步骤。与松耦合方案相比,紧耦合方案处于开发阶段,这通常大大提高了系统的准确性和鲁棒性。在当前公开的紧密耦合系统中,LIO-Mapping(Ye等人,2019)使用VINS-Mono中的优化过程来最小化IMU残差和LIDAR测量误差。由于LIO建图旨在优化所有测量值,因此系统的实时效果较差。Zou等人提出了LIC融合,如图16(b)所示。它融合了点云中提取的LiDAR特征和稀疏视觉特征,蓝色和红色的LiDARR点分别是平面和边缘特征,估计的轨迹用绿色标记。为了节省计算资源,LIO-SAM(图16(c))引入了滑动窗口优化算法,使用因子图方法联合优化IMU和LIDAR的测量约束。LINS(图16(e)),专门为地面车辆设计,使用基于误差状态的卡尔曼滤波器迭代修正待估计的状态量。Zhang和Singh(2018)提出了一种紧密耦合的LVIO(激光雷达视觉惯性里程表)系统,该系统使用从粗到精的状态估计方法,从IMU预测开始进行粗略估计,然后由VIO和LIO进一步细化。目前,LVIO算法是KITTI数据集上测试精度最高的算法。Zoo等人(2019)基于MSCKF框架实现了时空多传感器的在线校准。不幸的是,Zhang和Singh(2018)和Zoo等人(2019)实施的代码目前不是开源的。Shan等人(2021)于2021发布了最新的可视化LIDAR-IMU紧耦合方案:LVI-SAM(图16(d))。为了提高系统的实时性能,它使用了平滑和建图算法。作者将视觉IMU和激光雷达IMU视为两个独立的子系统。当检测到足够多的特征点时,这两个子系统将链接在一起。当其中一个子系统检测不到时,这两个子系统可以独立分离,因为不会相互影响。表5总结了近年来视觉-惯性SLAM框架中的主要算法。

未来发展趋势:由于视觉SLAM的复杂模块(例如前端、后端、回环和建图等)增加了硬件平台的计算负担,高性能移动计算平台通常限制了上述视觉SLAM算法在自动驾驶中的应用。基于多代理的视觉SLAM技术似乎能够克服这个问题。目前,基于多智能体的可视化SLAM通常用于无人机,如果它安装在自动驾驶汽车上进行移动计算,移动计算机平台只负责处理前端数据,而后端优化和建图的过程则由远程服务器通过5G/6G通信网络来处理,我们相信,这将大大加快视觉SLAM在未来自动驾驶车辆中的应用;

(这个未来发展趋势我认为是可以的,后端的计算需要昂贵的计算资源,但是我们可以通过极快的网速将数据传入到服务器内进行计算,然后将结果再通过网络输出出去,那么这样可以大大减少车载计算资源的使用,使其能够在路上行驶的时候做其他保障车内人员安全的事情)

相关文章:

(周末公众号解读系列)2000字-视觉SLAM综述

参考链接:https://mp.weixin.qq.com/s?__bizMzg2NzUxNTU1OA&mid2247528395&idx1&sn6c9290dd7fd926f11cbaca312fbe99a2&chksmceb84202f9cfcb1410353c805b122e8df2e2b79bd4031ddc5d8678f8b11c356a25f55f488907&scene126&sessionid1677323905…...

力扣29-两数相除

29. 两数相除 给你两个整数,被除数 dividend 和除数 divisor。将两数相除,要求 不使用 乘法、除法和取余运算。 整数除法应该向零截断,也就是截去(truncate)其小数部分。例如,8.345 将被截断为 8 &#x…...

【MindSpore】安装和使用MindSpore 2.0.0版本简单实现数据变换Transforms功能

本篇文章主要是讲讲MindSpore的安装以及根据官方提供的例子实现数据变换功能。 昇思MindSpore是一款开源的AI框架,旨在实现易开发、高效执行、全场景覆盖三大目标。 目录1、加入MindSpore社区2、安装前准备2.1、获取安装命令2.2、安装pip2.3、确认系统环境3、安装Mi…...

PRML笔记4-绪论中推断和决策小结

在推断阶段使用训练数据学习后验概率p(Ck∣x)p(\mathcal{C_k}|\boldsymbol{x})p(Ck​∣x)的模型;在决策阶段使用后验概率进行最优的分类;亦或是同时解决推断和决策问题,简单的学习一个函数f(x)f(\boldsymbol{x})f(x),将输入x\bold…...

DSPE-PEG-Streptavidin;Streptavidin-PEG-DSPE;磷脂聚乙二醇链霉亲和素,科研用试剂

DSPE-PEG-Streptavidin 中文名称:二硬脂酰基磷脂酰乙醇胺-聚乙二醇-链霉亲和素 中文别名:磷脂-聚乙二醇-链霉亲和素;链霉亲和素PEG磷脂 英文常用名:DSPE-PEG-Streptavidin;Streptavidin-PEG-DSPE 外观:粉…...

Java中的Stream

Stream流的特点 中间操作返回的是Stream类型,终结操作返回的是void 中间操作的这个Lazy指的是增加待处理操作,而不会真的处理(放队列里),集合中的数据并未实际改变,到终结操作的时候才会把这些放队列里的操…...

【数据库】关系数据理论

第六章关系数据理论 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r9ETJ75y-1677334548439)(imgs/image-20220508202554924.png)] 数据依赖 是一个关系内部属性与属性之间的一种约束关系 函数依赖多值依赖 函数依赖 [外链图片转存失败,源站可…...

初阶C语言——结构体【详解】

文章目录1. 结构体的声明1.1 结构的基础知识1.2 结构的声明1.3 结构成员的类型1.4 结构体变量的定义和初始化2. 结构体成员的访问3. 结构体传参1. 结构体的声明 1.1 结构的基础知识 结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。 …...

盘点:9款身份和访问管理工具

身份和访问管理(IAM)长期以来一直是安全领导者职业生涯的关键“试炼场”,许多人在身份技术部署方面做出了事关成败的决定。 确保安全访问和身份管理是网络安全态势的两大基础 。同时,人员、应用程序和系统登录的方式以及它们彼此集…...

Linux下的进程地址空间

Linux下的进程地址空间程序地址空间回顾从代码结果推结论引入进程地址空间页表为什么要有进程地址空间重新理解进程地址空间程序地址空间回顾 我们在初学C/C的时候,我们会经常看见老师们画这样的内存布局图: 可是这真的是内存吗? 如果不是它…...

Web Spider Ast-Hook 浏览器内存漫游 - 数据检索

文章目录一、资源下载二、通过npm安装anyproxy模块三、anyproxy的介绍以及基本使用1. anyproxy的功能介绍2. anyproxy的基本使用四、给浏览器挂代理五、实操极验demo案例总结提示:以下是本篇文章正文内容,下面案例可供参考 一、资源下载 Github&#x…...

开源启智,筑梦未来!第四届OpenI/O启智开发者大会开幕

2023年2月24日,第四届OpenI/O启智开发者大会在深圳顺利开幕。本次活动由鹏城实验室、新一代人工智能产业技术创新战略联盟(AITISA)主办,OpenI启智社区、中关村视听产业技术创新联盟(AVSA)承办,华…...

CS144-Lab6

概述 在本周的实验中,你将在现有的NetworkInterface基础上实现一个IP路由器,从而结束本课程。路由器有几个网络接口,可以在其中任何一个接口上接收互联网数据报。路由器的工作是根据路由表转发它得到的数据报:一个规则列表&#…...

最好的个人品牌策略是什么样的

在这个自我营销的时代,个人品牌越来越受到人们的重视。您的个人品牌的成功与否取决于您在专业领域拥有的知识,以及拥有将这些知识传达给其他用户的能力。如果人们认为您没有能力并且无法有效地分享有用的知识,那么您就很难获得关注并实现长远…...

第四届国际步态识别竞赛HID2023已经启动,欢迎报名

欢迎参加第四届HID 2023竞赛,证明您的实力,推动步态识别研究发展!本次竞赛的亮点:总额人民币19,000元奖金;最新的SUSTech-Competition步态数据集;比上一届更充裕的准备时间;OpenGait开源程序帮您…...

「2」指针进阶——详解

🚀🚀🚀大家觉不错的话,就恳求大家点点关注,点点小爱心,指点指点🚀🚀🚀 目录 🐰指向函数指针数组的指针(很少用,了解) 🐰回调函数&…...

计网笔记 网络层(端到端的服务)

第三章 网络层(端到端的服务) **TCP/IP体系中网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。**网路层不提供服务质量的承诺,不保证分组交付的时限,所传送的分组可能出错、丢失、重复和失序。进程之间通信的…...

[蓝桥杯 2018 省 B] 日志统计——双指针算法

题目描述小明维护着一个程序员论坛。现在他收集了一份“点赞”日志,日志共有 N 行。其中每一行的格式是 ts id,表示在 ts 时刻编号 id 的帖子收到一个“赞”。现在小明想统计有哪些帖子曾经是“热帖”。如果一个帖子曾在任意一个长度为 DD 的时间段内收到…...

SpringMVC请求转发和重定向

请求转发:forward:重定向:redirect转发:由服务器的页面进行跳转,不需要客户端重新发送请求:特点如下:1、地址栏的请求不会发生变化,显示的还是第一次请求的地址2、请求的次数,有且仅…...

如何建立项目标准化评价体系?【锦狸】

PMO团队面临着管理多个项目,甚至是多个项目集,多个产品集的问题,那么如何对项目们进行标准化评价体系的建设,就是PMO需要首先思考的问题。 首先我们要关注项目的背景,了解了项目背景之后,我们才可以明确项…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...