4、matlab双目相机标定实验

1、双目相机标定原理及流程

双目相机标定是将双目相机系统的内外参数计算出来,从而实现双目视觉中的立体测量和深度感知。标定的目的是确定各个摄像头的内部参数(如焦距、主点、畸变等)和外部参数(如相机位置、朝向等),以便将双目相机捕获的图像转换为三维空间坐标。

双目相机标定的流程如下:

  1. 准备标定板:使用一个已知的平面标定板,其中包含一些已知的特征点,如网格点或棋盘格,用于计算相机的内部参数。

  2. 拍摄图像:在不同的位置和角度下,使用双目相机对标定板进行拍摄,同时确保标定板的特征点能够被双目相机同时看到。

  3. 提取特征点:在拍摄的图像中,使用特定的图像处理算法(如角点检测算法)提取出标定板上的特征点。

  4. 标定内部参数:通过对标定板上的特征点进行分析,计算出相机的内部参数(如焦距、主点、畸变等)。

  5. 标定外部参数:利用双目相机拍摄的多幅图像,通过特定的三维重建算法计算相机的外部参数(如相机位置、朝向等)。

  6. 优化参数:通过优化算法,对计算出的内外参数进行调整,以提高标定的精度和稳定性。

最终的标定结果包括每个摄像头的内部参数和外部参数,这些参数可以用于双目视觉中的立体匹配和三维重建。

2、实验准备

1)棋盘格

棋盘格简介:

棋盘格是一种特定设计的方格图案,通常由黑色和白色交替的正方形组成,这些正方形按照固定的规律排列。棋盘格通常用于机器视觉和计算机视觉中的图像标定和姿态估计。在图像处理中,棋盘格的特定结构和规则排列使其成为一种常用的标定工具。

在双目相机标定中,棋盘格用作标定板,摄像机拍摄棋盘格图案时能够从图像中获取到棋盘格上的特征点,这些特征点可以用于计算相机的内部参数(如焦距、主点、畸变等)和外部参数(如相机位置、朝向等)。

棋盘格简单、易识别,其规则的排列和特征点的明显性使其成为图像处理和计算机视觉中常用的标定工具。

棋盘格规格:20mm*20mm棋盘格,角点7*11

A4纸打印棋盘格(链接PDF文件)

a57b241721164c1cad030008ea1351a9.png

2)双目相机采集棋盘格图像

双目相机简介

双目相机是一种由两个摄像头组成的相机系统,它们通常被放置在一定的距离之间,模拟人类双眼的视觉系统。通过同时拍摄同一场景的两幅图像,双目相机可以实现立体成像,从而让计算机能够进行深度感知、立体视觉和三维重建。

双目相机的工作原理是利用每个摄像头捕捉到的图像之间的视差(即同一点在两个图像中的像素位置差异),根据视差信息计算目标物体的深度信息。在双目成像中,两个摄像头之间的距离(基线长度)越大,捕捉到的视差范围也会增大,从而可以获得更精确的深度信息。

双目相机在机器视觉、智能驾驶、机器人技术、医疗影像等领域有着广泛的应用。它可以提供更加准确的环境信息,帮助计算机进行空间感知、障碍物检测、跟踪和导航等任务。另外,双目相机也被广泛用于计算机视觉中的立体匹配、景深测量、虚拟现实和增强现实等领域。

双目相机采集图像展示:

左侧为彩色相机采集图像/右侧为红外相机采集图像

f7168abc69f44b539cce5f9fcc07a2d0.png

cec07eefc2cc4c169ab055718a092492.png

3、实验过程

实验简介

在MATLAB中进行双目相机标定通常会使用相机标定工具箱(Camera Calibration Toolbox),可以方便的进行内外参数的标定。下面是在MATLAB中使用相机标定工具箱进行双目相机标定的原理和流程:

  1. 安装标定工具箱:首先需要安装MATLAB相机标定工具箱,你可以从MathWorks官网下载安装。

  2. 数据采集:准备一组双目相机的图像数据,包括对准的标定板(如棋盘格)的多幅图像。确保拍摄时两个摄像头能够同时看到标定板。

  3. 特征点提取:使用相机标定工具箱中的函数,提取出标定板上的特征点。

  4. 标定内部参数:利用提取出的特征点数据,使用标定工具箱的函数计算出双目相机的内部参数,例如焦距、主点坐标、畸变系数等。

  5. 标定外部参数:通过提供的图像数据和已知的标定板参数,计算双目相机的外部参数,例如相机位置、朝向等。

  6. 结果优化:对计算出的内外参数进行优化,以提高标定的精度和稳定性。

  7. 输出结果:最后输出标定结果,内部参数和外部参数将被保存在MATLAB中供后续使用。

总之,使用MATLAB中的相机标定工具箱可以比较方便地进行双目相机的标定工作,得到双目相机的内部参数和外部参数,为后续的双目视觉应用提供基础支持。

1)APP

点击app

4a5d611d536b40aeacf63bddaa7b1970.png

点击下拉

b76f3dea8c6445608cbef62dde49dd43.png

点击双目相机标定模块

5265a4da36c44288a5998d0737b0c50e.png

2)数据导入

点击添加图片

1038191473d74ab8b8b064bce62fad35.png

棋盘格边长参数

26c4f5246c8f46718627424d6a72cf6b.png

左右相机视图导入文件夹

e6801f0822144acbb7abf7e2022c5acc.png

3)角点识别

角点识别过程

34f839790a25401090c02a576204ebaf.png

角点识别结果

5500bd3952ba4483aaffac3fe2ec671d.png

4)畸变参数设置

径向畸变和切向畸变参数设置

29290d8a5673483bb6ec18b78a487d8d.png

5)标定

点击标定按钮

b584664e91d54175b5b8fc793400ac6b.png

6)标定结果

初始结果

56f97177ce3b422eaa50656df6725652.png

粗大误差剔除(1/2/3/4为出大误差),鼠标右键删除

 115091158e70449d941b45dfce94d84b.png

剔除后效果

4d52de0011254d01a58b8aada8cc2d2c.png

4、实验结果

结果简介

双目相机标定的结果通常包括以下内容:

  1. 内部参数

    • 标定矩阵(Intrinsic Matrix):包括主点坐标、焦距等信息,描述了相机的内部几何特性。
    • 畸变系数:描述了镜头畸变(径向畸变和切向畸变)的参数,用于纠正图像畸变。
    • 透镜畸变纠正参数(在某些情况下):描述了透镜的畸变情况,用于在后期处理中纠正透镜畸变。
  2. 外部参数

    • 外部旋转矩阵:描述相机坐标系与世界坐标系之间的旋转关系。
    • 外部平移向量:描述相机坐标系相对于世界坐标系的平移关系。
  3. 重投影误差:即标定结果在实际图像上的投影误差,通过重投影误差可以评估标定的准确性。

  4. 立体匹配算法参数(在某些情况下):一些双目相机标定工具箱也会提供立体匹配算法的参数,例如视差范围、最小视差等。

  5. 标定板的尺寸和特征点提取参数:包括标定板的尺寸或特征点的提取方法,有助于在实际使用中保持标定的准确性。

这些标定结果可以帮助后续双目视觉应用中进行立体匹配、三维重建、深度估计等任务。通过正确的标定,可以提高双目相机的测量精度和稳定性,进而提升整个双目视觉系统的性能。

1)视图效果

35bb6a1c268c40c2a5c816b8a37ab27e.png

 2)数据分析

820ca0adbd9d4f99be6731c47396e0b6.png

5、实验资源

1)棋盘格

https://download.csdn.net/download/XU157303764/89354653

2)双目相机标定图像数据

https://download.csdn.net/download/XU157303764/89354868

3)标定结果数据

https://download.csdn.net/download/XU157303764/89354866

6、总结

在MATLAB中进行双目相机标定实验的总结如下:

  1. 数据采集:首先需要准备一组双目相机的图像数据,确保图像中包含对准标定板(如棋盘格)的多幅图像。

  2. 安装标定工具箱:安装MATLAB相机标定工具箱,这样可以方便地使用其中的函数进行双目相机的内外参数标定。

  3. 特征点提取:使用相机标定工具箱的函数提取标定板上的特征点,常用的特征点提取方法包括角点检测、直线检测等。

  4. 标定内部参数:利用特征点数据计算双目相机的内部参数,如标定矩阵和畸变系数,从而纠正图像的畸变。

  5. 标定外部参数:根据已知的标定板参数和图像数据,计算双目相机的外部参数,包括外部旋转矩阵和外部平移向量。

  6. 结果分析:对标定结果进行分析和评估,如计算重投影误差,并根据误差值调整标定参数以提高标定的准确性。

  7. 保存结果:最后将标定得到的内外参数保存起来,以备后续使用。可以将结果保存为MATLAB格式文件,以便在其他MATLAB程序中调用。

  8. 实验总结:总结实验过程中遇到的问题和解决方法,比如标定板的放置方式、图像采集的参数设置等。

通过以上步骤,可以在MATLAB中完成双目相机的标定工作,并得到双目相机的内部参数和外部参数,为后续的双目视觉应用提供基础支持。标定的准确性和稳定性对于后续的立体匹配、三维重建等任务至关重要,因此在实验过程中需要尽可能确保数据的准确性和完整性。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

⌈ 传知代码 ⌋ LLaMA 开放高效基础语言模型

💛前情提要💛 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间,对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…

利用DeepFlow解决APISIX故障诊断中的方向偏差问题

概要:随着APISIX作为IT应用系统入口的普及,其故障定位能力的不足导致了在业务故障诊断中,APISIX常常成为首要的“嫌疑对象”。这不仅导致了“兴师动众”式的资源投入,还可能使诊断方向“背道而驰”,从而导致业务故障“…

mellanox HCA IB网卡固件更新

注意事项: 1.如果PSID以SGN开头,说明该产品是曙光的OEM产品,可以向HPC高速网络部获取固件。如果PSID以MT开头,说明该产品是Mellanox或nvidia的标准产品,可以通过官网下载固件。 2.通过官网获取固件,一定要…

Qt项目学习-20240617

Qt项目学习 1.0 文件构建 1.1 预处理命令 C预处理命令是编译过程中的第一步,发生在编译器进行实际编译之前。预处理器(preprocessor)执行这些命令,它们不是C语言的一部分,但对源代码的编译过程至关重要。以下是一些常…

强大的视角:介绍 MinIO 企业对象存储可观察性

可观测性革命推动了计算、安全、基础设施和可审计性方面的巨大进步。企业可观测性提供对云原生系统的全面和精细的可见性,以更快地识别和解决问题。遥测数据(指标、日志、跟踪、运行状况检查)可以实时显示和关联,从而提供从最高管…

一季度直播6000场,同比增长60%,遥望科技透露重要信息

6月17日,经由深圳证券交易所许可,遥望科技(股票代码:002291)正式对《年报问询函》进行公开回复,就经营的多个维度做出解释和回应。 在回复中,遥望科技预测2024年毛利率为14.4%,相比…

web系统数据库敏感数据处理

一、前言 web系统数据库中保存的公民信息不允许明文存储,比如手机号,身份证号,收货地址等。 二、处理方式 数据库中密文存储,web通过注解的方式对数据加解密处理,下面是处理方法 1、编写接口 public interface E…

高考志愿填报,是选好专业,还是选好学校?过来人给你说说

分数限制下,选好专业还是选好学校? 到底是先选专业还是先选学校,是让考生及家长一直拿不准、辨不清的问题,是优先考虑学校还是专业,上了好学校,专业不喜欢就业前景不理想,怎么办?为…

【二】【QT开发应用】QMake和CMake介绍,GN,QT三个窗口类的区别,QMainWindow, QWidget,QDialog

QMake和CMake介绍 qmake:qt独有的代码构建工具, 是一种简洁的构建工具,主要用于生成 Qt 项目的跨平台编译配置文件,语法简单,适合小型和中型项目。 cmake:C通用的代码构建工具,绝大部分C开源项目都使用cm…

【Ubuntu服务器】Ubuntu服务器用户添加及samba用户配置

前言 本文章描述ubuutu服务器上用户添加方式、sudo权限配置及samba用户配置 用户添加 用户添加 该操作是需要 root账户 或者 有sudo权限的普通账户 操作。 例如,添加名为test的用户。 rootanon:~# adduser test Adding user test ... Adding new group test (1…

文心一言 VS 讯飞星火 VS chatgpt (284)-- 算法导论21.2 2题

二、对定理 21.1 的整体证明进行改造,得到使用链表表示和加权合并启发式策略下的 MAKE-SET 和 FIND-SET 的摊还时间上界为 O(1),以及 UNION 的摊还时间上界为 O(lgn)。如果要写代码,请用go语言。 文心一言: 在Go语言中实现使用链…

二进制数转字符串

题目链接 二进制数转字符串 题目描述 注意点 32位包括输出中的 “0.” 这两位题目保证输入用例的小数位数最多只有 6 位 解答思路 将小数转为二进制的思路是将小数乘2,如果整数部分为1,则说明第i位是1(第i位则乘了2的几次方)…

Linux UFW防火墙设置、案例教程及注意事项

背景 远程连接服务器时,发现SSH远程登录服务器失败,但是又可以Ping通,故服务器的是开启的。 sudo systemctl status sshd查看sshd的状态发现其是active,所以为什么一直SSH失败呢? 最后知道是有人启动了防火墙&#x…

今年的618,似乎很平淡!

电商平台取消预售制度的第一个大促,快递业表现如何? 今年的618大促与往年有些不同,自4月起,天猫、京东、快手等主流平台相继官宣取消预售,打出“现货开卖”标签,这意味着消费者不用再被“烧脑”的优惠计算…

AI绘画-Stable Diffusion三次元人物模型训练(炼丹)教程,你也可以定制你的三上youya老师!

大家好,我是设计师阿威 (Stable diffusion生成的三上youya老师) 用AI进行画出不同人物,我们需要训练自己Lora模型。除了训练二次元人物之外,也常常要训练三次元人物。 比如福利姬老师可以训练自己然后穿上各种美美的…

使用搜索引擎--下载压缩软件

百度搜索必应 或者 bing 必应搜索 解压软件下载 前面的都是广告,不能下载 找到www的这种官网 点到下载专区,下载对应系统的压缩包 还有7zip也可以 对应下载就行 下载wps

轻松办公新神器!自动粘贴文本,一键复制固定号码,让您的工作效率翻倍提升!

在信息爆炸的时代,无论是工作还是生活,我们都需要处理大量的文本和号码。但是,手动复制粘贴的过程往往繁琐而耗时,大大降低了我们的工作效率。有没有一种方法能够让我们轻松复制粘贴,从此告别繁琐操作呢?答…

用户上下文打通与Feign的调用

在前几篇中已经将微信,网关与鉴权微服务全部打通,这次我们进行用户上下文打通,与微服务之间的调用。 用户上下文打通: 首先先思考一下,当我们成功登录的时候,网关会获取到当前用户相关的信息,…

IEEE754、linear11、linear16浮点数应用原理

IEEE754、linear11、linear16浮点数应用原理 1 浮点数应用1.1 IEEE754 浮点数标准1.2 PMBUS浮点数格式 2 浮点数原理2.1 IEEE754 浮点数解析2.2 PMBUS浮点数解析 3 浮点数代码应用3.1 IEEE754 浮点数应用3.1.1 将浮点变量赋值,直接打印整型(32位&#xf…

Python兴趣编程百例:手把手带你开发一个图片转字符图的小工具

在数字世界的无尽探索中,我们时常被那些看似平凡的技术所启发,它们如同星辰般点缀着我们的创意天空。今天,我突发奇想,想要用Python开发一个将图片转化为字符画的小工具。这不仅是一次技术的实践,更是一场艺术与科技的…