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

视觉SLAM十四讲ch7-1视觉里程计笔记

视觉SLAM十四讲ch7-1 视觉里程计笔记

  • 本讲目标
  • 从本讲开始,开始介绍SLAM系统的重要算法
  • 特征点法
    • ORB特征
    • BRIEF
  • 实践特征提取与匹配
  • 2D-2D:对极几何
    • 八点法求E
    • 八点法的讨论
    • 从单应矩阵恢复R,t
  • 小结
  • 三角化![在这里插入图片描述](https://img-blog.csdnimg.cn/e05a6e2a754e41d2a2d7dd2fff796285.png)![在这里插入图片描述](https://img-blog.csdnimg.cn/5f0f4cf1e1b943af93f2b043bc871e08.png)
  • 实践:对极约束求解相机运动

本讲目标

  • 理解图像特征点的意义,并掌握在单幅图像中提取出特征点,及多幅图像中匹配特征点的方法。
  • 理解对极几何的原理,利用对极几何的约束,恢复出图像之间的摄像机的三维运动。
  • 理解PNP问题,及利用已知三维结构与图像的对应关系,求解摄像机的三维运动。
  • 理解ICP问题,及利用点云的匹配关系,求解摄像机的三维运动。
  • 理解如何通过三角化,获得二维图像上对应点的三维结构。

从本讲开始,开始介绍SLAM系统的重要算法

  • 视觉里程计:特征点法和直接法
  • 后端优化
  • 回环检测
  • 地图构建

特征点法

在这里插入图片描述

在这里插入图片描述

ORB特征

在这里插入图片描述

BRIEF

在这里插入图片描述
在这里插入图片描述

实践特征提取与匹配

在这里插入图片描述

2D-2D:对极几何

在这里插入图片描述
在这里插入图片描述
P是1坐标系下的坐标,变成2摄像头的坐标需要进行旋转和平移。
归一化:把K换到左边变为逆,x1=P
在这里插入图片描述
E:本质矩阵,F:基本矩阵
t平移项三自由度,R旋转矩阵也是三自由度,t^R就是六自由度,但是由于乘任意非零常数依然满足,需要去掉一个自由度,E就是五自由度。意思:最少用五对点把E算出来,五点法。但是有点麻烦,因为有乘法,需要用到非线性的性质,于是就把E当成3×3普通矩阵,有9个自由度,减去一个非零常数自由度,就变成八个自由度。最少用八个点把E求出来。

八点法求E

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

八点法的讨论

  • 用于单目SLAM的初始化
  • 尺度不确定性:归一化t或特征点的平均深度
  • 纯旋转问题:t=0时无法求解
  • 多于八对点时:最小二乘或RANSAC

从单应矩阵恢复R,t

在这里插入图片描述
退化:意味着求解不对,求出来的e=[e1,e2,e3,e4,e5,e6,e7.e8.e9]是高维空间,不是一 维空间
于是就规定单应矩阵,特征点都在一个平面上,法线是n,截距为d。
先通过p1和p2把H算出来,再把R和t算出来。
在这里插入图片描述

小结

  • 2D-2D情况下,只知道图像坐标之间的对应关系
    • 当特征点在平面上时(例如俯视或仰视),使用H恢复R,t
    • 否则,使用E或F恢复R,t
  • 求得R,t后:
    • 利用三角法计算特征点的3D位置(即深度)(三角法在7.5)

三角化在这里插入图片描述在这里插入图片描述

在这里插入图片描述

实践:对极约束求解相机运动

相关文章:

视觉SLAM十四讲ch7-1视觉里程计笔记

视觉SLAM十四讲ch7-1 视觉里程计笔记本讲目标从本讲开始,开始介绍SLAM系统的重要算法特征点法ORB特征BRIEF实践特征提取与匹配2D-2D:对极几何八点法求E八点法的讨论从单应矩阵恢复R,t小结三角化![在这里插入图片描述](https://img-blog.csdni…...

模仿评论样式

主要用到了padding-left把左侧的空白给留出来,然后把头像定位到留出的空白位置。行内对齐样式,使用了display:inline-flex;align-items:center;图标本来要用字体比较方便,暂时用的从icon font下载的svg样式写的一塌糊涂,一点也没考…...

xxl-job调度中心、执行器源码详解

文章目录简介调度中心一.程序启动初始化1.初始化入口类2.初始化I18n3.初始化快慢调度线程池4.初始化处理执行器注册或移除线程池更新执行器最新在线的守护线程5.初始化监控任务调度失败或执行失败的守护线程6.初始化处理执行器回调线程池监控任务执行结果丢失的守护线程7.初始化…...

cpp c++summary笔记 复杂类型 “right-left” rule

复杂类型 “right-left” rule 先向右走在向左走,循环往复,右侧的终止为看到右括号,右中括号,左侧为左括号,指针(或其他int等)。 符号读作*指向AA的指针(总在左侧)[]容纳AA的数组(总在左侧)()返…...

bash编程(马哥)

bash基础特性: 命令行展开:~,{} 命令别名:alias,unalias 命令历史:history 命令和路径补全:$PATH glob通配符:*,?,[],[^], 快捷键&am…...

搭建Gerrit环境Ubuntu

搭建Gerrit环境 1.安装apache sudo apt-get install apache2 注意:To run Gerrit behind an Apache server using mod_proxy, enable the necessary Apache2 modules: 执行:sudo a2enmod proxy_http 执行:sudo a2enmod ssl 使新的配置生效,需要执行如下命令:serv…...

朋友去华为面试,轻松拿到26K的Offer,羡慕了......

最近有朋友去华为面试,面试前后进行了20天左右,包含4轮电话面试、1轮笔试、1轮主管视频面试、1轮hr视频面试。 据他所说,80%的人都会栽在第一轮面试,要不是他面试前做足准备,估计都坚持不完后面几轮面试。 其实&…...

springboot项目如何配置启动端口

文章目录0 写在前面1 配置文件(.yaml)--推荐2 配置文件(.properties)3 IDEA配置--不推荐4 写在最后0 写在前面 项目启动需要一个独立的端口,所以在此记录一下。 根据配置文件的后缀书写格式略有不同。 1 配置文件(.yaml)–推荐 若是.yaml后缀的配置文件&#xff0…...

IOS - 抓包通杀篇

IOS中大多数情况,开发者都会使用OC提供的api函数,CFNetworkCopySystemProxySettings来进行代理检测; CFNetworkCopySystemProxySettings 检测函数直接会检测这些ip和端口等: 采用直接附加页面进程: frida -UF -l 通…...

盒子模型的简介

盒子的组成 一个盒子由外到内可以分成四个部分:margin(外边距)、border(边框)、padding(内边距)、content(内容)。会发现margin、border、padding是css属性,因…...

Kubernetes 101,第二部分,pod

在上一篇文章中,我们了解了Kubernetes 的基础知识以及对其主要架构的介绍。 介绍完毕后,就该探索如何在 Kubernetes 中运行应用程序了。 容器包装器 在 Kubernetes 中,我们无法直接创建单个容器。相反,为了更好,我们可以将容器包装成一个单元,其中包括: 规范:多个容器可…...

protobuf序列化解码原理

Protobuf的编码方式 Varints是一种紧凑表示数字的办法。他用一个或者多个字节表示一个数字,值越小的数字节节数越少。相对与传统的用4字节表示int32类型的数字,Varints对于小于128的数值都可以用一个字节表示,大于128的数值会用更多的字节来表…...

OpenCV——line、circle、rectangle、ellipse、polylines函数的使用和绘制文本putText函数以及绘制中文的方法。

学习OpenCV的过程中,画图是不可避免的,本篇文章旨在介绍OpenCV中与画图相关的基础函数。 1、画线条——line()函数 介绍: cv2.line(image, start_point, end_point, color, thickness)参数: image: 图像start_point&#xff1a…...

性能平台数据提速之路

作者 | 性能中台团队 导读 性能平台负责MEG所有研发数据的管理、接入、传输、应用等各个环节。数据的提速对于公司报表建设、决策分析、转化策略效果都有至关重要的影响。重点介绍数据生产端与消费端提速落地实践,如何高性价比满足大数据生产端提速?如何…...

Dns域名解析服务器

前言 域名解析服务器的介绍 域名服务器的类型划分 DNS域名解析的过程 为什么需要DNS解析域名为IP地址? 通俗理解Dns DNS劫持 DNS污染 Dns面试经验 前言 DNS是一个应用层协议,用来获取域名对应的IP地址 域名解析服务器的介绍 DNS(Dom…...

关于 JavaScript 中的 Promises

在 JavaScript 中,Promise 是一个对象,它表示一个可能还不可用,但会在未来解决的值。Promises 用于处理异步操作,例如发出网络请求或访问数据库,其中结果不是立即可用的。如果你准备好了,我想开始我们的冒险…...

PMP考前冲刺题——错题集

3、 [多选] 采购部门需要向全球不同的供应商采购项目所需的各种商品,所有采购订单均己发送给供应商并已按要求处理。项目经理后来收到客户提出的变更请求。由于项目经理未及时通知采购部门,运抵的所有物品都是按原来的需求所提供。 项目经理本应做什么来…...

【C++】30h速成C++从入门到精通(多态)

多态的概念多态:通俗来说就是多种心态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。多态的定义及实现多态的构成条件多态是在不同继承关系的类对象,去调用同意函数,产生了不同的行为&#xff0…...

从proc文件系统中获取gateway的IP地址

在linux的命令行下获取当前网络环境的gateway的IP并不是一件难事,常用的命令有ip route或者route -n,其实route -n也是通过读取proc文件系统下的文件来从内核获取路由表的,但ip route是通过netlink来获取的路由表;本文将讨论如何编写程序从proc文件系统中获取路由表,并从路…...

【LeetCode】剑指 Offer(17)

目录 题目:剑指 Offer 34. 二叉树中和为某一值的路径 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过啦!!! 写在最后: 题目:剑指 Offer …...

MySQL索引类型

MySQL 是最流行的关系型数据库管理系统,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。 索…...

你了解HashMap吗?

一、前言:面试过的人都知道,HashMap是Java程序员在面试中最最最经常被问到的一个点,可以说,不了解HashMap都不好意思说自己是做Java开发的。基本上你去面试十家公司,有七八家都会问到你HashMap。那么今天,就…...

我一个女孩子居然做了十年硬件……

2011年,一个三本大学的电子信息专业的大三女学生跟2个通信专业的大二男生组成了一组代表学校参加2011年“瑞萨杯”全国大学生电子设计大赛,很意外的获得了湖北赛区省三等奖,虽然很意外,但还是挺高兴的,毕竟第一次为喜欢…...

【Linux】编译器gcc g++和调试器gdb的使用

文章目录1.编译器gcc/g1.1C语言程序的翻译过程1.预处理2.编译3.汇编4. 链接1.2 链接方式与函数库1.动态链接与静态链接2.动态库与静态库1.3 gcc与g的使用2.调试器gdb2.1debug和release2.2gdb的安装2.3gdb的使用2.4gdb的常用指令3.总结1.编译器gcc/g 1.1C语言程序的翻译过程 1…...

高效能自动化港口数字化码头智慧港航,中国人工智能企业CIMCAI世界港航人工智能领军者,成熟港口码头人工智能产品中国人工智能企业

打造高效能自动化港口数字化码头智慧港航,中国人工智能企业CIMCAI中集飞瞳世界港航人工智能领军者,成熟港口码头人工智能产品全球顶尖AI科技CIMCAI成熟AI产品全球前三船公司及港口落地,包括全球港口/堆场智能闸口验箱,全球港口岸边…...

HTTP协议(一)

HTTP协议(一) 什么是HTTP协议 客户端连上web服务器后,如果想要获得web服务器中的某个web资源,需要遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器之间通讯的格式;基于TCP连接的传输协议&#xff…...

计算神经网络参数量Params、计算量FLOPs(亲测有效的3种方法)

1.stat(cpu统计) pip install torchstat from torchstat import statstat(model, (3, 32, 32)) #统计模型的参数量和FLOPs,(3,32,32)是输入图像的size 结果: 问题:当网络中有自定义参数时&am…...

sizeof与一维数组和二维数组

🍕博客主页:️自信不孤单 🍬文章专栏:C语言 🍚代码仓库:破浪晓梦 🍭欢迎关注:欢迎大家点赞收藏关注 sizeof与一维数组和二维数组 文章目录sizeof与一维数组和二维数组前言1. sizeof与…...

Spark UI

Spark UIExecutorsEnvironmentStorageSQLExchangeSortAggregateJobsStagesStage DAGEvent TimelineTask MetricsSummary MetricsTasks展示 Spark UI ,需要设置配置项并启动 History Server # SPARK_HOME表示Spark安装目录 ${SPAK_HOME}/sbin/start-history-server…...

windows应用(vc++2022)MFC基础到实战(2)

目录向导和资源编辑器使用 MFC 应用程序向导创建 MFC 应用程序使用类视图管理类和 Windows 消息使用资源编辑器创建和编辑资源生成 MFC 应用程序的操作1.创建一个主干应用程序。2.了解即使在不添加你自己的任何一行代码的情况下,框架和 MFC 应用程序向导也能提供的内…...

网站建设七点/百度快照是干什么的

Clipboard API Clipboard API的接口提供了一种读写操作系统剪贴板的方式,它有四个方法,分别是: read,从剪贴板读取数据,比如图片readText,从剪贴板读取文本write,写入数据(比如图片…...

深圳电力建设公司/青岛百度seo排名

很久没有病过了,终于来到了。 周日晚上赶一篇文档,快一点才睡,就告诫自己,这样晚睡觉的日子已经过了很长时间了,长此以往会病的,于是决定从周一晚上开始改变一下。结果没有等到周一晚上就不行了。起因…...

校园二手网站开发与设计任务书/搜索引擎关键词怎么优化

限制访问网站、过滤特定网址、禁止访问指定网站的方法 此博文包含图片 (2017-12-19 16:36:25)转载▼ 许多公司出于管理员工上网行为的需要,经常限制电脑访问一些网站例如游戏网站、购物网站或是视频网站等等。网上介绍了一些方法,通过windows操作系统可以…...

气动喷枪网站建设/百度竞价sem入门教程

文章目录 引言I 、iOS上传图片视图的封装【支持删除和添加】1.1 demo源码下载:1.2 计算cell的高度II、风险商户材料证明视图2.1 cellV的高度计算2.2 自定义collectionView1.3 UICollectionViewCellIII 、iOS自定义单选框【例子:选择购买发票套餐】3.1 计算cell的高度引言 本…...

建站公司/网站查询域名

GroovyFX是一个库,使编写JavaFX 2.x应用程序更加简单和自然。 GroovyFX利用Groovy的Builder模式的功能来使开发人员能够以简洁的声明式风格进行编写。 以这种方式构造UI的能力使可视化正在构建的用户界面变得更加容易。 简短易懂的代码也易于维护和扩展。 GroovyFX完…...

网站建设方案书安全性/网站建设策划书范文

一、认识Web.config文件 Web.config文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NET Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。当你通过VB.NET新建一个Web应用…...