动态SLAM:如何判断一个特征是动态特征(对极几何)
文章目录
- 1.什么是极线、极点和极面
- 2.如何判断其为动态点特征
- 3.如何判断其为动态线特征
1.什么是极线、极点和极面

由图可知,C1,C2,X(X1,X2)组成了一个三角平面,这个三角所在的平面就是极面
在这个极平面中,和成像平面相交的线是极线,即图中①位置蓝色点所在直线
C1和C2即两个相机的光心位置,两个光心C1,C2和成像平面相交的点是极点,即蓝色点(X1)位置
2.如何判断其为动态点特征
先假设所有的特征点都是静态的,在对极几何中,左右两个平行四边形表示相机在不同位置的成像平面,C1,C2是相机两个位置的针孔(光心),X是空间中的一个三维点,X沿着X1-X2运动,X在左边和右边的成像会随着X的运动变化,具体如下四点:

C1是相机在第一个时刻的位姿,C2是相机在第二个时刻的位姿。X是跟踪的一个特征点,X1是在第一个时刻的位置,X2是在第时刻的位置。
①我们的X2在C2极面上的投影是绿色点,这个绿色点与极限相比差距太远了,他本来应该是在极线上的蓝色点。所以这个距离我们可以设定一定的阈值,超过这个阈值我们就可以判断他是动态点。
②反射投影射线(图中紫色的线),没有与跟踪的特征(X)相交,他是运动的。
③因为运动元素(X)导致对基础矩阵的估计出现了错误,即图中最下方蓝色(Ftrue)和绿色的虚线(Ffalse),它也可以作为对动态物体判别的约束。
④与第二点相似,重投影特征与光透特征没有相交,如果特征点运动了(紫色点,没有运动X1蓝色点),那么就会导致在极面上产生一个距离,我们同样设置一个阈值,当超过这个阈值就可以判断为动态点。
3.如何判断其为动态线特征

小l1是我们提取到的一个线特征,大L1就是它在三维空间中的实际位置
我们可以估计两帧相机间的运动,预测出蓝色线特征在C2成像平面的位置
在第二帧C2,预测出的线特征(蓝色)与观测出的线特征(绿色),我们通过公式算出两线之间的距离,然后设定一个阈值,通过阈值判断是否为动态线特征
相关文章:
动态SLAM:如何判断一个特征是动态特征(对极几何)
文章目录 1.什么是极线、极点和极面2.如何判断其为动态点特征3.如何判断其为动态线特征 1.什么是极线、极点和极面 由图可知,C1,C2,X(X1,X2)组成了一个三角平面,这个三角所在的平面就是极面 在这个极平面中,和成像平面相交的线是极线…...
【C++】初识C++基础篇·一(命名空间,函数重载,缺省参数,引用);
文章目录 前言1.输入与输出输出输入cin和scanf的对比 2.命名空间2.1namespace存在的意义2.2namespace的使用3.缺省参数4.函数重载重载函数的调用规则 5.引用 前言 我们先通过一段简单的代码来拉开C的序幕; //text.cpp #include<iostream> #include<stdio…...
2024年道路运输安全员考试题库及答案
一、判断题 1.国家制订《中华人民共和国道路交通安全法》的目的是为了维护道路交通秩序,预防和减少交通事故,保护人身安全,保护公民、法人和其他组织的财产安全及其他合法权益,提高通行效率。 答案:正确 2.依据《中…...
Linux Vim教程(十二):语法高亮与代码折叠
目录 1. 语法高亮 1.1 启用语法高亮 1.2 设置配色方案 1.3 自定义语法高亮 2. 代码折叠 2.1 启用代码折叠 2.2 设置折叠方法 2.3 手动折叠 2.4 基于缩进的折叠 2.5 基于语法的折叠 3. 案例 3.1 配置文件 3.2 编辑Python文件 3.3 使用折叠功能 4. 高级使用技巧 …...
JavaScript(18)——事件类型,事件对象
事件类型 鼠标事件: click:鼠标点击 mouseenter:鼠标经过 mouseleave:鼠标离开 焦点事件: focus:获得焦点 blur:失去焦点 键盘事件: Keydown:键盘按下触发 Keyup&#…...
有效组织离散变量:指针数组在C语言中的应用
把离散变量组织起来,访问起来更加方便,无需一个个变量单独赋值。 如modbus读写reg, 把a\b\c\d实时变化分散的变量组织成一个数组reg,方便获取 相当于变量的内存地址池 int main() {int a 10, b 20, c 30, d 40;int i;int *re…...
qt 应用正在运行时,如何更新升级exe文件
在Qt应用正在运行时,直接替换同名的.exe文件可能会导致文件正在使用中的错误。为了安全地更新.exe文件,你可以采取以下步骤: 创建一个临时的.exe文件。 等待当前.exe文件的进程关闭。 删除原有的.exe文件。 将临时.exe文件重命名为原有的.…...
git的rebase 和 merge 的区别
rebase 和 merge 的区别 Merge(合并)和 Rebase(变基)是 Git 中两种常用的分支整合方式,它们有不同的工作原理和适用场景: Merge(合并): ● Merge 操作将两个分支的不同提…...
django基于大数据的电影推荐系统-计算机毕业设计源码71246
目 录 摘 要 1 绪论 1.1 选题背景与意义 1.2研究现状 1.3研究内容 1.4 开发环境 1.5论文结构与章节安排 2 相关理论和技术 2.1 协同过滤算法 2.2 B/S体系结构介绍 2.3 Python爬虫技术 2.4 Django框架介绍 2.5 MySQL数据库 3 电影推荐系统系统分析 3.1 可行性分析…...
reverse_re3-入土为安的第十天
一个迷宫题 shirtf12发现flag字样 点进去发现迷宫 675 应该是3 * 15*15 即有三个迷宫 shifte提取 import numpy as np# 你的数据(长度应为 225 的倍数) dword_202020 [1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,3,1,1,0,0,0,0,0,0,1,1,1,1,1,0,0,…...
fastapi之一
文章目录 安装运行HTTP 请求方法示例 POSTMAN 检验GETPOSTPUTDELETE HTTP 状态码示例GETPOST 综合示例POSTGETPUTDELETE 总结 安装 pip install fastapi或者 pip install fastapi -i https://mirrors.aliyun.com/pypi/simple上面两种方法均可以,选择一个即可&…...
【C语言报错已解决】Format String Vulnerability
🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引言 在日常开发中,我们经常会遇到各种各样的bug,其中格式化字符串漏洞报错可能是最让人头疼的一种。这…...
关于一个简单的顺序表代码
1.首先是头文件SeqList.h的代码: #pragma once #include<stdio.h> #include<assert.h> #include<stdlib.h> typedef int SXBint; typedef struct SL {SXBint* a;int size;int capacity; }SLnode; //初始化 void SeqLsitInit(SLnode* ps); //尾插…...
【资料分享】2024第三届钉钉杯大学生大数据挑战赛B题思路解析+双语言代码
2024钉钉杯大学生大数据挑战赛,B题解题思路和双语言代码分享,资料预览:...
Typescript学习笔记(2.0)
ts编译选项 tsc app.ts -w 参数-w,就是对app.ts进行监视,每次该文件改变时就会自动编译 **:任意目录 *:任意文件 接口 接口用来定义一个类结构,用来定义一个类中应该包含哪些属性和方法,同时接口也可以当做类型…...
【IJHE】:微通道反应器中全氢二苄基甲苯脱氢产氢
Highlight 微通道反应器中全氢二苄基甲苯脱氢产氢两种不同反应器的比较:搅拌釜和连续微通道反应器连续微通道反应器是一种很有前途的脱氢技术 摘要: 本文对全氢二苄基甲苯作为液态有机氢载体从搅拌槽反应器转换为连续流微通道反应器进行脱氢进行了初步研究。与搅拌槽…...
Spring踩坑:抽象类作为父类,使用子类@Autowired属性进行填充,属性值为null
Spring踩坑:抽象类作为父类,使用子类Autowired属性进行填充,属性值为null Spring Boot中抽象类和依赖注入的最佳实践引言在抽象类中使用Autowired注解protected vs private修饰符低版本Spring Boot的注意事项 构造器中的依赖注入陷阱为什么不…...
C#网络连接:TCP/IP模式下的网络连接与同步
1,目的 为了测试局域网的消息同步,简单写了下TCP/IP模式的同步,参考这个帖子。 2,核心库部分 using System; using System.Net; using System.Net.Sockets; using System.Text;namespace Coldairarrow.Util.Sockets {/// <s…...
基于树莓派(Raspberry Pi) 的智能电表监测系统设计:集成 Home Assistant、SQLite 和 MQTT 协议
在全球对可持续发展和能源节约的关注日益加深的背景下,智能能源管理系统(IEMS)应运而生。该系统利用现代科技(如物联网、云计算和大数据分析)来优化能源使用,提高能效,降低能源成本。本文将详细…...
C语言程序设计(二)
四.找素数 素数:除了1和它本身不再有其他因数的自然数。换句话说:一个大于1的自然数 ,如果只能被1和它本身整除,那就是素数(质数)。 在打印中遇到的问题就是,知道怎么写却总是运行不起来。主要…...
wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
