视觉slam框架从理论到实践-第一节绪论
从opencv的基础实现学习完毕后,接下来依照视觉slam框架从理论到实践(第二版)的路线进行学习,主要以学习笔记的形式进行要点记录。
目录
1.数据里程计
2.后端优化
3.回环检测
4.建图
在视觉SLAM 中整体作业流程可分为:
1.相机图像信息的读取和预处理。如果是在机器人中、还可能有码盘、惯性传感器等信息的读取和同步。
2.前端视觉里程计( Visual Odometry, VO ) 。视觉里程计的任务是估算相邻图像间相机的运动,以及局部地图的样子VO 又称为前端( Front End )。
3 . 后端(非线性)优化( Optimiza ti on )。后端接受不同时刻视觉里程计t则址的相机位姿,以及回环检测的信息,对它们进行优化, 得到全局一致的轨迹和地图。由于接在VO 之后,又称为后端( Back End )
4.回环检测( Loop Closure Detection ) 同环检测判断机器人是否到达过先前的位置。如果检测到同环,它会把信息提供给后端进行处理。
5.建图( Mapping ) 它根据估计的轨迹建立与任务要求对应的地图。
1.数据里程计
视觉里程计关心相邻图像之间的相机运动, 最简单的情况当然是两张图像之间的运动关系,基于上一期opencv学习的特征点匹配->极线估计->基于极线约束的特征点匹配->基于已知相机内参的本质矩阵求解,可以估计两张图像的位姿变化。
仅通过视觉里程计来估计轨迹、将不可避免地出现累积漂移,因为我们求取的特征点往往有误差,误差通过不断积累就会产生很大的漂移。
为了解决漂移问题我们还需要两种技术:后端优化 和回环检测,回环检测负责把“机器人回到原始位置”的事情检测出来,而后端优化则根据该信息,校正整个轨迹的形状。
2.后端优化
后端优化主要指处理SLAM 过程中的噪声问题,在现实中、再精确的传感器也带有一定的噪声。后端优化要考虑的问题,就是如何从这些带有噪声的数据中估计整个系统的状态,以及这个状态估计的不确定性有多大,这称为最大后验概率估计(Maximum-a-Posteriori , MAP )。在视觉SLAM 中,前端和计算机视觉研究领域更为相关,比如图像的特征提取与匹配等,后端则主要是滤波与非线性优化算法。
3.回环检测
回环检测,又称闭环检测,主要解决位置估计随时间漂移的问题。假设实际情况下机器人经过一段时间的运动后回到了原点,但是由于漂移,它的位置估计值却没有回到原点。事实上,我们认为、地图存在的主要意义是让机器人知晓自已到过的地方。为了实现回环检测, 我们需要让机器人具有识别到过的场景的能力,可以在机器人下方设置一个标志物(如一张二维码图片)。它只要看到了这个标志,就知道自己回到了原点,该标志物实质上是一种环境中的传感器,对应用环境做了限制。
4.建图
一组空间点的集合可以称为地图,地图的形式随SLAM 的应用场合而定。大体上讲,可以分为度量地图与拓扑地图两种。
度量地图强调精确地表示地图中物体的位置关系,通常用稀疏( Sparse ) 与稠密( Dense) 对其分类。稀疏地图进行了一定程度的抽象,并不需要表达所有的物体。稠密地图着重千建模所有看到的东西。定位时用稀疏路标地图就足够了。而用于导航时, 则往往需要稠密地图,稠密地图通常按照某种分辨率,由许多个小块组成, 在二维度量地图中体现为许多个小格子(Gri d ),而在三维度量地图中则体现为许多小方块( Voxel )。
拓扑地图(Topological Map),拓扑地图更强调地图元素之间的关系。拓扑地图是一个图( Graph ) ,由节点和边组成,只考虑节点间的连通性,例如只关注A 、B 点是连通的,而不考虑如何从A 点到达B 点。
相关文章:
视觉slam框架从理论到实践-第一节绪论
从opencv的基础实现学习完毕后,接下来依照视觉slam框架从理论到实践(第二版)的路线进行学习,主要以学习笔记的形式进行要点记录。 目录 1.数据里程计 2.后端优化 3.回环检测 4.建图 在视觉SLAM 中整体作业流程可分为࿱…...
基于若依的ruoyi-vue-plus的nbmade-boot在线表单的设计(二)后端方面的设计
希望大家一起能参与我的新开源项目nbmade-boot: 宁波智能制造低代码实训平台 主要目标是类似设计jeecgboot那样的online表单功能,因为online本身没有开源这部分代码,而我设计这个是完全开源的,所以希望大家支持支持,开源不容易。 今天主要是讲后端部门。 1、FormControl.ja…...
mapbox V3 新特性,加载风粒子动画
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️raster-particle 栅格粒子样式图层 api…...
开发一个答题pk小程序的大致成本是多少
答题 PK 小程序通常指的是一种允许用户之间进行实时或异步答题竞赛的应用程序,可能结合PK答题、积分系统、排行榜等功能。 一、首先,确定答题 PK 小程序的基本功能模块。这可能包括用户注册登录、题库管理、题目类型(单选、多选、判断等&am…...
深入探索如何压缩 WebAssembly
一、初始体积:默认 Release 构建 我们从最基础的构建开始,不开启调试符号,仅使用默认的 release 模式: $ wc -c pkg/wasm_game_of_life_bg.wasm 29410 pkg/wasm_game_of_life_bg.wasm这是我们优化的起点 —— 29,410 字节。 二…...
系统性能优化总结与思考-第一部分
1.C代码优化策略总结 编译器方面:用好的编译器并用好编译器(支持C11的编译器,IntelC(速度最快)GNU的C编译器GCC/G(非常符合标准),Visual C(性能折中)&#x…...
Qt6文档阅读笔记-Simple Http Server解析
此篇博文是利用Qt6如何创建一个简单的HTTP服务。 此例展示了如何使用QHttpServer类建立服务端。服务端通过QTcpServer的bind()函数监听tcp端口,并且使用route()函数增加不同URL的处理。 QSslConfiguration conf QSslConfiguration::defaultConfiguration();const a…...
深度解析Redis过期字段清理机制:从源码到集群化实践 (二)
本文紧跟 上一篇 深度解析Redis过期字段清理机制:从源码到集群化实践 (一) 可以从redis合集中查看 八、Redis内核机制深度解析 8.1 Lua脚本执行引擎原理 Lua脚本执行流程图技术方案 执行全流程解析: #mermaid-svg-X51Gno…...
【密码学——基础理论与应用】李子臣编著 第六章 祖冲之序列密码 课后习题
免责声明 这里都是自己搓或者手写的。 里面不少题目感觉有问题或者我的理解有偏颇,请大佬批评指正! 不带思考抄作业的请自动退出,我的并非全对,仅仅提供思维! 题目 逐题解析 6.1 直接看表得 0x18 0xAD 0xF8 0x25 …...
LFM调制信号分类与检测识别
LFM调制信号分类与检测识别 LFM调制信号分类识别AlexNet网络识别InceptionV3、ResNet-18、ResNet-50网络识别 LFM调制信号检测识别 LFM调制信号分类识别 支持识别LFM信号、间歇采样干扰(ISRJ)、灵巧噪声干扰(SNJ)、扫频干扰(SJ)、瞄准干扰(AJ)、阻塞干扰(BJ)、密集假目标干扰(…...
mac中的zip文件压缩与压缩文件中指定目录删除
问题 在使用mac的图形界面压缩文件后,往往那个压缩文件中带有__MACOSX文件,但是,这个文件夹又是我们不需要的目录,所有,需要对mac图形化界面压缩后的文件目录进行删除,改如何做? 检查压缩文件…...
docker 多主机容器组网
一、服务器A 1、初始化Swarm集群(管理节点) docker swarm init --advertise-addr 主节点ip 2、获取工作节点加入Swarm集群所需的Token 和完整命令 docker swarm join-token worker 3、创建Overlay网络 docker network create -d overlay --subnet…...
MAC Mini M4 上测试Detectron2 图像识别库
断断续续地做图像识别的应用,使用过各种图像识别算法,一开始使用openCV 做教室学生计数的程序。以后又使用YOLO 做医学伤口检测程序。最近,开始使用meta 公司的Detectron2.打算做OCR 文档结构分析 Detectron2 的开发者是 Meta 的 Facebook AI…...
AETTA: Label-Free Accuracy Estimation for Test-Time Adaptation
1. Motivation: 利用TTA(test time adaptation)来将在训练数据上的原始预训练的模型适应到新的未标注的测试据,传统的很多方法都做了一些不现实的假设,比如需要借助标注的数据/重新训练模型,为了解决这个问题,本论文提出了AETTA的方法,不需要任何的标注,借助TTA来实现…...
如何在本地使用Ollama运行 Hugging Face 模型
你是否曾经在 Hugging Face 上发现了一个超棒的模型,然后幻想着能在自己的笔记本电脑上离线运行它,还能通过一个清爽的 API 让你的应用轻松访问? 别担心,你不是一个人!我们很多人都曾在 Hugging Face 上发现过令人惊叹…...
AI幻觉的生成原理与应对指南:六大中文模型横向解析
先简单说一下AI幻觉的生成原理,核心源于模型的概率预测本质。大语言模型通过分析海量文本数据的统计规律生成内容,其本质是选择「概率最高」而非「事实正确」的词汇组合。训练数据中的知识盲区(如时效性信息缺失、专业领域覆盖不足࿰…...
Oracle WITH 子句(也称为 公共表表达式,Common Table Expression,CTE)
在 Oracle 中,WITH 子句(也称为 公共表表达式,Common Table Expression,CTE)用于定义一个临时的命名子查询,可以在后续的 SQL 语句中多次引用。它提高了复杂查询的可读性和可维护性,尤其适合需要…...
BSD、Solaris、Unix 的文件系统: UFS/UFS2、ZFS 及其他存储技术
文件系统构成了任何操作系统不可或缺的一部分。大多数操作系统倾向于使用自己的原生文件系统格式,这些格式在其他环境中可能受到限制或不可用。Unix 系列操作系统及其变体,如 BSD 和 Solaris,传统上依赖于 UFS,后来升级到 UFS2。随…...
杭电oj(1000,1001,1089-1096,2000-2007)题解
目录 编辑 1000 题目 思路 代码 1001 题目 思路 代码 1089 题目 思路 代码 1090 题目 思路 代码 1091 题目 思路 代码 1092 题目 思路 代码 1093 题目 思路 代码 1094 题目 思路 代码 1095 题目 思路 代码 1096 题目 思路 代码 20…...
css 练习01
效果展示 源码 <template><div class"container"><div class"search"></div><div class"content"><div class"left"><div class"info"><div class"layout-list" v…...
[reinforcement learning] 是什么 | 应用场景 | Andrew Barto and Richard Sutton
目录 什么是强化学习? 强化学习的应用场景 广告和推荐 对话系统 强化学习的主流算法 纽约时报:Turing Award Goes to 2 Pioneers of Artificial Intelligence wiki 资料混合:youtube, wiki, github 今天下午上课刷到了不少࿰…...
【VsCode】设置文件自动保存
目录 一、前言 二、操作步骤 一、前言 VSCode中开启自动保存功能可以通过访问设置、修改settings.json文件、使用自动保存延迟功能来实现。这些方法能有效提升编程效率、避免数据丢失、实时同步更改。 二、操作步骤 在 Visual Studio Code (VS Code) 中设置自动保存功能非…...
16:00开始面试,16:08就出来了,问的问题有点变态。。。
从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到4月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…...
深入理解 PyTorch:从入门到精通的深度学习框架
📌 友情提示: 本文内容由银河易创AI(https://ai.eaigx.com)创作平台的gpt-4-turbo模型生成,旨在提供技术参考与灵感启发。文中观点或代码示例需结合实际情况验证,建议读者通过官方文档或实践进一步确认其准…...
子串-滑动窗口的最大值
滑动窗口的最大值 给你一个整数数组 nums,有一个大小为 k 的滑动窗 口从数组的最左侧移动到数组的最右侧。你只可以看 到在滑动窗口内的 k 个数字。滑动窗口每次只向右移 动一位。 返回 滑动窗口中的最大值 。输入:整型数组,最大值k 输出&am…...
老龄化遇上数字化丨适老化改造:操作做“减法”,服务做“加法”
当中国 60 岁以上人口突破 2.8 亿,银发浪潮与数字时代的碰撞催生了一道必答题:如何让技术红利真正惠及老年人?传统适老化改造常陷入 "技术崇拜" 误区。 智能设备功能复杂如 "科技迷宫",操作界面充满 "数…...
【计算机网络】网络基础(协议,网络传输流程、Mac/IP地址 、端口号)
目录 1.协议简述2.网络分层结构2.1 软件分层2.2 网络分层为什么? 是什么?OSI七层模型TCP/IP五层(或四层)结构 3. 网络与操作系统之间的关系4.从语言角度理解协议5.网络如何传输局域网通信(同一网段) 不同网…...
【Java编程】【计算机视觉】一种简单的图片加/解密算法
by Li y.c. 一、内容简介 本文介绍一种简单的图片加/解密算法,算法的基本原理十分简单,即逐个(逐行、逐列)地获取图片的像素点颜色值,对其进行一些简单的算数运算操作进行加密,解密过程则相应地为加密运算…...
61.评论日记
老人摔倒无人扶最终死亡,家属将路人告上法庭,法院这样宣判!_哔哩哔哩_bilibili 2025年4月14日16:01:25...
每日一题——云服务计费问题
云服务计费问题(哈希表 排序)| 附详细 C源码解析 一、题目描述二、输入描述三、输出描述四、样例输入输出输入示例:输出示例:说明: 五、解题思路分析六、C实现源码详解(完整)七、复杂度分析 一…...
android-根据java文件一键生成dex文件脚本
安装7z命令 7-Zip官方下载网址 生成dex脚本文件 echo off setlocal enabledelayedexpansion:: 获取当前日期和时间 for /f "tokens2 delims" %%i in ("wmic os get localdatetime /value | findstr LocalDateTime") do set datetime%%i:: 提取年、月、日…...
OpenCV直方图均衡化全面解析:从灰度到彩色图像的增强技术
目录 一、直方图均衡化基础:原理与核心思想 二、彩色图像的直方图均衡化:挑战与解决方案 三、进阶技巧与注意事项 四、应用场景与典型案 一、直方图均衡化基础:原理与核心思想 1. 直方图的本质与作用 直方图是图像像素强度分布的统计图表…...
Node.js技术原理分析系列7——Node.js模块加载方式分析
Node.js 是一个开源的、跨平台的JavaScript运行时环境,它允许开发者在服务器端运行JavaScript代码。Node.js 是基于Chrome V8引擎构建的,专为高性能、高并发的网络应用而设计,广泛应用于构建服务器端应用程序、网络应用、命令行工具等。 本系…...
BFD:网络链路检测与联动配置全攻略
目录 BFD简介 BFD会话建立方式和检测机制 BFD会话建立过程 BFD工作流程 联动功能 BFD与OSPF联动配置需求 BFD与OSPF联动配置实现 BFD与VRRP联动配置需求 BFD与VRRP联动配置实现 单臂回声 BFD默认参数及调整方法 BFD简介 一种全网统一、检测迅速、监控网络中链…...
预防WIFI攻击,保证网络安全
文章总结(帮你们节约时间) WiFi协议存在多种安全漏洞,从去认证攻击到KRACK和PMKID攻击,这些都源于协议设计中的历史遗留问题。ESP32S3微控制器结合Arduino环境,成为强大的WiFi安全研究平台,可用于网络扫描…...
循环神经网络 - 门控循环单元网络
为了解决循环神经网络在学习过程中的长程依赖问题,即梯度消失或爆炸问题,一种非常好的解决方案是在简单循环网络的基础上引入门控机制来控制信息的累积速度,包括有选择地加入新的信息,并有选择地遗忘之前累积的信息。这一类网络可…...
Java 正则表达式综合实战:URL 匹配与源码解析
在 Web 应用开发中,我们经常需要对 URL 进行格式验证。今天我们结合 Java 的 Pattern 和 Matcher 类,深入理解正则表达式在实际应用中的强大功能,并剖析一段实际的 Java 示例源码。 package com.RegExpInfo;import java.util.regex.Matcher; …...
TCPIP详解 卷1协议 六 DHCP和自动配置
6.1——DHCP和自动配置 为了使用 TCP/IP 协议族,每台主机和路由器需要一定的配置信息。基本上采用3种方法:手工获得信息;通过一个系统获得使用的网络服务;使用某种算法自动确定。 拥有一个IP 地址和子网掩码,以及 DN…...
面试宝典(C++基础)-01
文章目录 1. C++基础1.1 C++特点1.2 说说C语言和C++的区别1.3 说说 C++中 struct 和 class 的区别1.4 include头文件的顺序以及双引号""和尖括号<>的区别1.5 说说C++结构体和C结构体的区别1.6 导入C函数的关键字是什么,C++编译时和C有什么不同?1.7 C++从代码…...
【笔记ing】AI大模型-04逻辑回归模型
一个神经网络结构,其中的一个神经网络层,本质就是一个逻辑回归模型 深度神经网络的本质就是多层逻辑回归模型互相连接或采用一定的特殊连接的方式连接在一起构成的。其中每一个层本质就是一个逻辑回归模型。 逻辑回归模型基本原理 逻辑回归࿰…...
【Android】常用参数实践 用户界面UI 布局文件XML
本文将系统总结 Android XML 布局的通用参数和常用布局类型的专属规则 一、通用布局参数 这些参数适用于所有 View 和 ViewGroup,是布局设计的基石。 1. 尺寸控制 android:layout_width 与 android:layout_height 定义视图的宽度和高度,可选值…...
音乐产业新玩法:NFTs如何颠覆传统与挑战未来?
音乐产业新玩法:NFTs如何颠覆传统与挑战未来? 近年来,NFT(Non-Fungible Token,非同质化代币)像一颗新星,迅速在数字艺术、游戏等领域掀起了革命。而在音乐产业,NFT不仅是一种数字所…...
测试基础笔记第三天
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 ⼀、缺陷介绍定义:软件中使⽤中任何问题都为缺陷,简称:bug 二、缺陷编写三、注册模块测试点练习 ⼀、缺陷介绍 定义:…...
HTML5 Web 存储:超越 Cookie 的本地存储新选择
一、引言 在当今的 Web 开发领域,对于用户数据的本地存储需求日益增长。HTML5 带来了一种比传统 cookie 更强大、更安全、更高效的本地存储方式 ——Web 存储。本文将深入探讨 HTML5 Web 存储的相关知识,包括其基本概念、浏览器支持情况、localStorage …...
基于 DB、EAST、SAST 的文本检测算法详解及应用综述
摘要 近年来,随着深度学习在计算机视觉领域的广泛应用,自然场景文字检测技术取得了飞速发展。针对复杂背景、任意形状、多角度文本等问题,学术界和工业界陆续提出了 DB、EAST、SAST 等多种算法。本文详细介绍了这几种主流文本检测方法的原理…...
牙刷生产中的视觉检测,让刷毛缺陷检测高效便捷!
在日常口腔护理中,一把优质牙刷至关重要,而刷毛质量直接决定了牙刷品质。从生产端来看,牙刷制造行业正面临着品质管控的严峻挑战。人工目检在检测刷毛缺陷时,不仅效率低下,还极易因主观因素导致漏检、误检,…...
面向对象编程(OOP)核心概念进阶
面向对象编程(OOP)核心概念进阶 final 关键字 行为特征:作为终结者关键字,用于限制类、方法、变量的可修改性 三层控制力: - 修饰类: 定义不可继承的最终类(如 String、Integer 等不可变类核…...
AI与教育的协奏曲:重构未来学习生态
📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 引言:教育的“智变”来临 在经历了千年的教与学之后,教育终于迎来了最大规模的技术变革浪潮。随着ChatGPT、DeepSeek、Grok 等大语言模型的诞生与不断演进,AI正以前所未有的方式深入影响每一个学生、老师…...
性能炸裂的数据可视化分析工具:DataEase!
今天分享一款开源的数据可视化分析工具,帮助用户快速分析数据并洞察业务趋势,从而实现业务的改进与优化。支持丰富的数据源连接,能够通过拖拉拽方式快速制作图表,并可以方便地与他人分享。 技术栈 前端:Vue.js、Elemen…...
9.thinkphp的请求
请求对象 当前的请求对象由think\Request类负责,该类不需要单独实例化调用,通常使用依赖注入即可。在其它场合则可以使用think\facade\Request静态类操作。 项目里面应该使用app\Request对象,该对象继承了系统的think\Request对象ÿ…...