OpenCV迭代去畸变undistortPoints 与vins的迭代不同 vins前端与imu预积分

news2025/3/12 19:55:31

在这里插入图片描述

在这里插入图片描述

OpenCV去畸变undistortPoints原理解析

在这里插入图片描述

不动点迭代法—单变量非线性方程近似根matlab求解

在这里插入图片描述

淦VINS-MONO源码 03–openCV与VINS中去畸变方法的不同

这里用的方法和openCV不同,假设现在求A点的去畸变坐标,那么我们将A的坐标直接代入畸变模型中,求得再次畸变的坐标,并求得这个坐标和A之间的距离d.因为越靠近中心这个d越小,此时肯定小于真实坐标到A的距离dt。所以我们在朝真实畸变方向(再次畸变的反方向)上加上这个d,得到一个靠近真实值的方向,在以这个点再进行一次畸变求得距离d2,d2肯定大于d小于dt。d2在加到坐标A上 得到更靠近的结果,代码中一共进行了8次迭代。这种方法比openCV中的方法快了不少。

针孔相机投影模型
在这里插入图片描述

在这里插入图片描述

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

旋转矩阵约束
作者:jh h
链接:https://www.zhihu.com/question/386629150/answer/1752898777
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

(已修改)旋转矩阵的9个参数,存在6个约束条件,所以只有3个自由度:三个向量的模长为1这3个条件、三个向量两两垂直2个条件(XY垂直,XZ垂直这两个)、以及右手系(或左手系)这1个条件(这个条件意味着行列式是1或-1,也暗示了如果XY垂直YZ垂直,则XZ也会垂直)。9 - 3 - 2 - 1 = 3类似的,四维空间的旋转矩阵16个参数,存在10个约束条件,有6个自由度:四个向量模长为1这4个条件、四个向量互相垂直5个条件(XY、XZ、XW、YZ、YW,以及自动得到的ZW)、坐标系手性1个条件(单位矩阵中,有奇数个还是偶数个1变成了-1,只有这两种手性)。 16 - 5 - 4 - 1 = 6nnn 维空间的旋转矩阵 n2n{2}n{2} 个参数的情况:模长为1的条件,约束条件数量为 nnn 向量相互垂直的条件,约束条件数量为 [n(n−1)/2−1][ n(n-1)/2 -1 ][ n(n-1)/2 -1 ] 坐标系手性的条件,约束条件数量为 1自由度 = n2−n−[n(n−1)/2−1]−1=n(n−1)/2n^{2} - n - [ n(n-1)/2 -1 ] - 1= n(n-1)/2n^{2} - n - [ n(n-1)/2 -1 ] - 1= n(n-1)/2 ps: n维空间的(旋转+平动)恰好能够一一映射到(n+1)维空间的纯旋转。一个例子是,闵可夫斯基空间把三维空间的平动部分(洛伦兹收缩)映射到了所谓四维"时空"的X-T、Y-T、Z-T轴的旋转上面,同时三维旋转部分不变。洛伦兹收缩是一个客观现象,但是四维"时空"只是一个人们主观提出的一个数学模型,数学意义和物理意义需要分开。

在这里插入图片描述
左右两边都乘以Rwbk的逆,去掉他的影响。左边就是两帧之间的约束,右边是不含w到bk变化的表达式。卡尔曼滤波预测是第推imu,更新是观测cam

在这里插入图片描述
上面是连续时间,下面是离散时间,对应代码midPointIntegration,alpha,beta都是delta对应的量

在这里插入图片描述

迭代中,delta x一直都是0,因为输出的总是自己认为的最优值,但是deltax的协方差会变大,经过卡尔曼滤波后结合观测deltay的方差,deltax的方差会下降。
在这里插入图片描述
误差卡尔曼优势:1不用过参数化表示,用3维旋转向量,不用考虑协方差矩阵各维之间的约束。2靠近原点,没有万向节问题。3,忽略二阶导数,雅可比容易计算。4更新可以比较慢,因为误差比较小

在这里插入图片描述

在这里插入图片描述
true真值。nominal:名义值,包含噪声。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
上面公式目的,在已知连续误差的变化量deltax,求deltaxk到deltaxk+1的矩阵变化。F就是Xk+1=Xk+J * delXk中的J。Jk+1=F Jk。。公式里协方差矩阵代码,代码与上面公式一样,除了噪声差一个负号,白噪声加减没区别。

零偏也是在更新的,需要用一阶近似求更新。F作用1,更新雅可比,方便状态量对零偏的更新,作用2,更新协方差矩阵,置信度

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/646247.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Pytest教程__用例执行顺序(5)

在unittest中,测试用例的执行顺序与测试用例的名称有关,按照名称的ascii码排序的,并不是按照用例的编写顺序执行的。 pytest默认是按用例的编写顺序执行的 我们可以通过第三方包 pytest-ordering 来自定义我们用例的执行顺序。 方法是使用装…

14. 100ASK-V853-PRO开发板 ADB测试指南

100ASK-V853-PRO开发板 ADB测试指南 硬件要求: 100ASK-V853-PRO开发板 软件要求: 固件下载地址:链接:百度网盘 提取码:sp6a 固件位于资料光盘中的10_测试镜像/4.测试ADB/v853_linux_100ask_uart0.img 1.硬件连接 …

JMeter循环读取CSV文件实现接口批量测试

目录 前言: 1、添加线程组 2、添加HTTP信息头管理器 3、添加HTTP请求 4、添加察看结果树 5、添加循环控制器 6、在循环控制器下添加CSV配置文件 7、其他配置文件需要修改写入形式 8、执行CSV文件,查看结果 前言: JMeter可以通过CSV…

安装Canal

安装和配置Canal 安装和配置Canal1.开启MySQL主从1.1.开启binlog1.2.设置用户权限2.安装Canal2.1.创建网络2.3.安装Canal安装和配置Canal 下面我们就开启mysql的主从同步机制,让Canal来模拟salve 1.开启MySQL主从 Canal是基于MySQL的主从同步功能,因此必须先开启MySQL的主…

不同等级的高速PCB工程师,薪资差距有多大?

高速PCB设计在现代电子领域中扮演着很重要的角色,而高速PCB工程师的技能水平和经验对于项目的成功至关重要,下面本文将从地区分布、薪资水平、工作内容等多方面讨论对比不同等级的高速PCB工程师。 NO.1 初级高速PCB工程师 ①薪资水平 初级高速PCB工程师…

用代码实现一个简单计算器

作者主页:paper jie的博客_CSDN博客-C语言,算法详解领域博主 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于《C语言》专栏,本专栏是针对于大学生,编程小白精心打造…

管理类联考——逻辑——知识篇——第四章 联言、选言(且、或)(5题,必考)

第四章 联言、选言(且、或)(5题,必考) 一、联言命题 联言命题是反映事物的若干种情况或者性质同时存在的复合命题 1.常见表达形式:A且B⟺即A又B⟺AB⟺虽然A但是B(语气强调B,逻辑是…

配置GitLab账号登录SonarQube

gitlab账号集成到sonarqube 创建个人访问令牌 确认之后可获得 来到sonarqube界面,创建gitlab配置 gitlab地址后面加上/api/v4 将访问令牌粘贴过来 保存即可 回到gitlab添加应用,名称随意最好有意义一眼知道是干嘛的 URI是sonarqube地址/oauth2/callback…

JavaSE进阶——网络编程

文章目录 前言一、网络编程二、通信1、两个重要的要素2、通信协议 三 、Socket四、基于TCP的网络编程1、单向通信1.1 服务端1.2 客户端 2、双向通信2.1 服务端2.2 客户端 3、传输对象3.1 服务端3.2 客户端 4、保持通信4.1 服务端4.2 客户端 五、基于UDP的网络编程1、单向通信1.…

软件开发流程管理中的6个重点

1、需求的确定 充分了解用户真实需求,与用户保持沟通交流;需求文档需详尽、准确,明确功能和客户期望;确保需求的合理性、完整性和可行性,并对需求进行优先级排序。 软件开发流程管理中的6个重点 2、设计原则 设计包括概…

【机器学习】一个简单的神经网络例子教你理解前向传播

在开始这个例子前,希望你已经了解了神经网络的相关内容,可以参见如下文章 https://blog.csdn.net/weixin_45434953/article/details/131048661 在计算机中,有一种很基础的运算称之为与运算,这是一个二元运算符, x 1 &…

web前端-TypeScript学习

web前端-TypeScript学习 TypeScript 介绍TypeScript 初体验安装编译TS的工具包编译并运行TS代码 TypeScript 常用类型类型注解常用基础类型原始类型数组类型类型别名函数类型对象类型接口元祖类型推论类型断言字面量类型枚举any类型typedof TypeScript 高级类型class类class的基…

6.Opencv-图像腐蚀、膨胀(开运算,闭运算)

1.图像腐蚀 这个操作会把前景物体的边界腐蚀掉。这是怎么做到的呢?卷积核沿着图像滑动,如果与卷积核对应的图像的所有像素值都是1,那么该区域的所有像素值就是1,否则为0。用于去除白噪声和断开两个连在一起的物体等。 语法&…

剑走偏锋,无头浏览器是什么神奇的家伙

大家好,我是风筝,公众号「古时的风筝」,专注于 Java技术 及周边生态。 我的个人网站:古时的风筝 浏览器是再熟悉不过的东西了,几乎每个人用过,比如 Chrome、FireFox、Safari,尤其是我们程序员&a…

ASEMI代理台湾光宝LTV-3120光耦合器中文资料

编辑-Z LTV-3120是一种高性能光耦,由于其可靠性、效率和多功能性,在各种应用中都很受欢迎。本文将全面了解LTV-3120其功能、应用以及它如何改进您的电子设计。 什么是光电耦合器? 光耦,也称为光隔离器,是一种利用光在…

时序数据库的流计算支持

一、时序数据及其特点 时序数据(Time Series Data)是基于相对稳定频率持续产生的一系列指标监测数据,比如一年内的道琼斯指数、一天内不同时间点的测量气温等。时序数据有以下几个特点: 历史数据的不变性数据的有效性数据的时效…

Linux:cp、mv、rm命令

1、cp命令:用于复制文件/文件夹,语法: cp [-r] 参数1 参数2 r参数可选,用于对文件夹进行复制,表示递归 参数1:Linux路径,表示被复制的文件或文件夹 参数2:Linux,表示要复…

数据库期末复习第一章(看完包过)

目录 第一章 第一章 主要是一些概念,了解几个基本概念,并且记住英文缩写 DB是数据库(database) 0.数据 Data 1.数据库 DB (database 数据库) 2.数据库管理系统 DBMS (M:mange 管…

论文解读 | 基于蒙特卡罗树搜索的触觉目标识别主动末端执行器姿态选择

原创 | 文 BFT机器人 本论文提出了一种新颖的方法,使用仅触觉来进行主动物体识别。该算法通过蒙特卡罗树搜索来选择最佳的手腕姿态序列进行物体识别。 具体来说,该算法将问题建模为马尔可夫决策过程(MDP),并通过观察和…

记一次简单的SQL调优

记一次简单的SQL调优 前言排查分析问题分析SQL的执行流程存在的问题优化思路 验证解决验证执行流程一些执行计划的基本知识 优化先执行where条件过滤不需要的行,再进行左连接提示排序走索引为常用查询条件创建索引调整查询条件的顺序 前言 相信大家对后端数据库的S…