相机标定学习笔记

news2024/10/6 2:26:17

Kalibr 是标定工具中,唯一一个可以标定camToImu的,是vio必不可少的工具,其他的都有替代品。所以学习多种开源算法进行相机标定,并记录学习相机标定的过程。

一、相机标定

1、在场景中放置一个已知的物体
(1)识别图像和场景之间的对应关系
(2)计算从场景到图像的映射

相机的标定在最简单的情况下可以用这样一个方案:假定场景里面有一个已知物体,而且假定建立已知物体的一些点到图像中点的一些关系,接下来要做的就是寻找相机矩阵,把一些三维点映射到平面的两维点上面来,假定平面上的三维点的坐标是已知的,非常精确的,而且知道三维坐标而且知道图像中的点和三维模型的点之间的对应关系,利用这种3D到2D的对应关系,可以来做相机的标定

问题:必须非常精确地了解几何
必须知道3D - 2D对应关系
2、摄像机参数估计Resectioning
利用这种3D到2D的对应关系,可以来做相机的标定这种方案称之为Resectioning。
画成图像来看,就是三维点在这里,有一个两维照片,而且知道黑色的点有对应关系,那么要求的就是相机矩阵,就是3X4的相机矩阵,包含内参、外参所有的参数都在里面,直观上可以认为把这一张照片,在三维空间中摆到一个恰当的位置,使得从相机中心发出去的光线刚刚好要通过三维空间中的这些已知点,所以要解决的问题是:这个相机要放到三维空间中的什么位置才能让这个几何关系得以成立。

在做这样的方法的时候,假定这些三维点的坐标是非常精确已知的,然而在实际应用中是比较难做到的,很早以前会使用标定物,通过专业设备制作的过程中保证三维点的位置,然后有精确标定物之后标定相机矩阵。

3、基本方程(Basic Equations)
算法实现其实蛮简单的,任何的一个三维点,经过相机的投影矩阵之后,会投影到图像中的一个两维点,

二、两张图几何约束

三、三维重建

在这里插入图片描述

IMU参数标定学习笔记
惯性处理单元
1、参数标定
如果IMU测量数据本身就存在很大的误差,即输入到系统的就是错误信息上层应用系统的算法做得再好也会输出错误结果
(1)内参标定
相对于IMU自身的坐标系而言,在这个坐标系里面,它的数据所出现的误差,尽量把系统内部产生的误差消除掉
①良率检测
内参数标定比较关键,因为外参数标定与实际应用是有关系的,内参标定之前首先进行良率检测,标定是把传感器尽量消除,如果传感器测量的数据偏移的程度过大,那么矫正毫无意义,所以首先保证IMU是正常的。
②内参标定过程
标定IMU,就需要对IMU误差的来源进行建模,其实IMU测量过程中的误差是由很多不同的方面所引起的,建模是对一些比较明显的误差,已知的原因把它构建成数学模型,一些我们不知道的误差源那么就无视它,因为把所有误差都考虑进来会很复杂,这个是没有必要的。我们主要关心三个方面的误差来源:
 零偏
比如我们日常生活中的秤,如果不称重的读数不是零,那么这个时候的偏差值就是零偏,IMU上的零偏也是类似的道理。也就是IMU静止放置在某个地方,如果角速度非零,那偏差值就是零偏。
 尺度偏差
不管测量加速度还是角速度,还是磁力,都是通过物理量转化成电学量,比如电压、电阻和电流等,转化过程中称之为尺度,每一个轴上转化的尺度是不一样的,比如在x轴上受到了1牛顿的力,那么x轴上的力学转换器转换出来的电压可能是1.5V,但是在y轴上,同样是1牛顿,那么转化出来的电学量可能是1.8V,这两个电压不一样,中间存在一个系数的差,这个系数的差,是由很多原因造成的。尺度可以看成斜率。尺度也是有三个值,x轴、y轴、z轴
(2)外参标定
相对于内参标定而言,假设把IMU装到载板上,载板本身也是有坐标系的,IMU在自身坐标系上测到的值,怎么去换算到载板的坐标系上去表示
坐标变换的关系用T来表示,变化的参数T就是外参,外参与IMU实际安装的过程中安装在不同的地方有关系的,同时与所要变换的目标坐标系是有关系的,外参是不唯一的。

外参有很多种的,如果IMU与相机之间进行融合,那么相机与IMU之间的坐标变换关系就是外参,雷达与IMU融合同理。

一、IMU和视觉融合的方法
1、IMU
IMU以高频率(100HZ或200HZ)输出载体的角速度w和线加速度a,解算出高频率(100HZ或200HZ)的载体速度V、位置P以及旋转R
2、相机
零偏和噪声会比较大,以至于长时间使用后偏移的就很快,但是如果使用高精惯导,这个漂移误差会降低些,因为它是一种积分状态,从开始时间一直在持续积分,积分到不再使用为止,也就是它的V、P、R,他们分别每一个时刻都有一个误差,这个误差会产生迭代,所以长时间使用后就会漂移,

相机以30Hz或20Hz获得场景中的图像信息,利用图像中的特征信息,解算载体的旋转和平移
相机可以获得丰富的环境信息,并在长时间内的漂移误差较小,但在快速运动或旋转的环境中容易发生跟踪丢失的情况,且在面对挑战环境时定位精度会明显下降
3、融合的目标
融合的目标就是进行一个相互的补偿,主要有三个目标可以进行相互的补偿

  • 利用视觉里程计对IMU的累积漂移进行补偿,降低惯导的漂移误差
  • 对于单目视觉传感器,可以利用IMU进行场景深度的校正,缓解单目相机尺度不确定性问题
  • IMU的输出与环境无关,不受环境变化的约束,利用IMU与视觉进行补偿可以提高视觉里程计位姿估计的鲁棒性
    二、IMU和视觉的初始化及参数估计方法

三、总结

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

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

相关文章

ENSP实验四:搭建VPN(GRE,配置安全策略)

首先分析一下数据的流向: PC1->PC2 1、FW1:trust->dmz 【192.168.1.1->192.168.2.1 ICMP】 2、AR1->AR2:【202.1.1.1->202.1.3.1|GRE|192.168.1.1->192.168.2.1 icmp】 3、FW2: ①untrust->local …

提示工程师:如何写好Prompt

提示工程由来 提示工程是一门相对较新的学科,用于开发和优化提示以有效地将语言模型 (LM) 用于各种应用程序和研究主题。 研究人员使用提示工程来提高 LLM 在广泛的常见和复杂任务(例如问题回答和算术推理)上的能力。 开发人员使用提示工程…

【图像处理OpenCV(C++版)】——5.6 图像平滑之联合双边滤波

前言: 😊😊😊欢迎来到本博客😊😊😊 🌟🌟🌟 本专栏主要结合OpenCV和C来实现一些基本的图像处理算法并详细解释各参数含义,适用于平时学习、工作快…

用Vue如何实现低代码开发平台?

前言 在众多开发技术中,Vue组件化开发技术以其卓越的灵活性和高效性备受瞩目。 低代码平台相信不少人知道它的存在,而且现在大部分公司都在开发自己的低代码平台,首先我们来看看低代码平台可视化界面: 官网:https://ww…

UTM 4.3 发布:在 macOS 上优雅的使用 QEMU 虚拟化 Windows、Linux 和 macOS

UTM 4.3 发布:在 macOS 上优雅的使用 QEMU 虚拟化 Windows、Linux 和 macOS 在 iOS 中虚拟化 Windows、Linux 和 Unix 请访问原文链接:https://sysin.org/blog/utm-4/,查看最新版。原创作品,转载请保留出处。 作者主页&#xf…

Sql构建

Sql构建 SQL 构建对象介绍 之前通过注解开发时,相关 SQL 语句都是直接拼写的,一些关键字写起来比较麻烦、而且容易出错 MyBatis 提供了 org.apache.ibatis.jdbc.SQL 功能类,专门用于构建 SQL 语句 sql拼接测试: public class …

从制造到智造,安捷利的云数蝶变

伴随着新一轮科技革命和产业变革的兴起,制造业的数字化转型步入深水区,尤其是在5G、工业互联网、大数据等为代表的新技术推动下,制造业全方位、全链条的升级已是大势所趋。 南沙地处中国的南大门,既是国家面向世界的重要战略平台…

安达发|高级计划与智能排程APS软件的发展史进程

从泰勒的科学管理理论出发,率先追求科学的管理理论和管理工具,在计算机成为企业日常管理的基本工具之后,信息系统已经成为提高工厂管理水平的重要支柱。 在工厂计划领域,开始了从MRP到MRPII再到ERP的演变过程。MRPII指的是制造…

Appium+python自动化(十三)- 输入中文 - 一次填坑记(超详解)

简介 无论你在哪里,在做什么都会遇到很多坑,这些坑有些事别人挖的,有些是自己挖的。别人挖的叫坑人,自己挖的叫自杀,儿子挖的叫坑爹。因此在做app自动化道路上也不会是一帆风顺的,你会踩很多坑,…

异步fifo(1)

什么时异步fifo FIFO,即First In First Out ,是一种先进先出的数据缓存器,异步FIFO 是指读写时钟不一致,读写时钟是互相独立的。数据从一个时钟域写入FIFO缓冲区,并从另一个时钟域的同一FIFO缓冲区中读取数据&#xf…

16. 存储过程和存储函数

文章目录 1.存储过程和存储函数2.创建和使用存储过程2.1 语法:2.2 第一个存储过程,打印hello world2.3 调用语法2.4 带参数的存储过程2.5 调试存储过程 3.创建和使用存储函数3.1 存储函数定义3.2 存储函数语法:3.3 存储函数案例: …

VR全景医疗:多渠道矩阵式使用,展现医疗实力

VR全景医疗的市场正在趋于成熟,医院将VR全景展示作为一种新颖的展示方式,在全景中嵌入官网,展现医院全貌,更可以凭借多渠道矩阵式使用,展现医疗实力,提高医院知名度。虽然这是一个全新的领域,但…

k8s1.18.20:cert-manager 1.8 安装部署

cert-manager 安装部署 一、官网安装文档 https://cert-manager.io/docs/installation/ 1.1、简介 cert-manager 在 Kubernetes 集群中增加了证书 (certificates) 和证书颁发者 (certificate issuers) 作为资源类型,并简化了获取、更新和应用这些证书的过程。 …

传统软件测试过程中的测试分工

最近看了点敏捷测试的东西,看得比较模糊。一方面是因为没有见真实的环境与流程,也许它跟本就没有固定的模式与流程,它就像告诉人们要“勇敢”“努力”。有的人在勇敢的面对生活,有些人在勇敢的挑战自我,有些人在勇敢的…

利用内存映射文件进行程序间通信2一代码

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 为了测试代码,需要分别创建两个应用程序文件。 窗体如下: 两个项目的代码在最前面添加: Impor…

新晋 Committer!来自复旦大学的帅哥一枚

点亮Star⭐️ 支持我们 https://github.com/apache/dolphinscheduler 最近,社区星力量又迎来一位新晋 Committer,这次是来自复旦大学研究生在读的王维饶同学,一起来认识一下吧! 个人简介 姓名:王维饶职位&#xff1a…

从0到1构建证券行业组织级项目管理体系的探索与实践︱东吴证券PMO负责人娄鹏呈

东吴证券股份有限公司信息技术总部PMO负责人娄鹏呈先生受邀为由PMO评论主办的2023第十二届中国PMO大会演讲嘉宾,演讲议题:从0到1构建证券行业组织级项目管理体系的探索与实践。大会将于8月12-13日在北京举办,敬请关注! 议题简要&a…

简笔风和写实风的区别

现实主义和风格化 当我们谈论现实主义和风格化时,我们是什么意思?这看起来相当明显,现实主义指的是模仿逼真的逼真的图形。它不一定需要存在于现实世界中,但被传达为它属于我们的世界。10年前,我们认为现实的东西在今…

数据结构之vector的实现

数据结构之vector的实现 Vector类分为&#xff1a;构造函数、析构函数、只读函数、修改函数、私有函数、成员变量&#xff08;数据区和大小&#xff09; # include <iostream> # include <algorithm> # include <cstdlib># define DEFAULT_CAPACITY 3templat…

数学建模-图论 最短路径

作图 %% 注意&#xff1a;以下代码需要较新版本的matlab才能运行&#xff08;最好是2016版本及以上哦&#xff09; % 如果运行出错请下载新版的matlab代码再运行%% Matlab作无向图 % &#xff08;1&#xff09;无权重&#xff08;每条边的权重默认为1&#xff09; % 函数graph(…