机器视觉标定讲解

B站  :道传科技上位机   观看教

一、什么是相机标定

相机标定(Camera Calibration)是指通过实验或算法手段确定相机的内部参数(如焦距、主点坐标、畸变系数)和外部参数(如旋转矩阵、平移向量)的过程。这些参数共同描述了相机的成像模型,使得三维空间中的物体能够被准确投影到二维图像平面上。

二、标定的核心意义

1.几何映射关系的建立:标定解决了“像素如何对应物理尺寸”的问题,例如在工业检测中,标定后的系统可通过图像直接计算工件的实际尺寸。

2.畸变校正:真实镜头存在径向畸变(桶形、枕形)和切向畸变(梯形),标定可消除图像变形,提升测量精度。

3.多传感器协同:在双目视觉或激光雷达-相机融合系统中,标定确定不同传感器间的坐标系转换关系,确保数据一致性。

三、坐标系和相机成像以及参数

.四种坐标系

1.世界坐标系(World Coordinate System):描述物体在真实空间中的绝对位置。

2.相机坐标系(Camera Coordinate System):以相机光心为原点,光轴为Z轴。

3.图像坐标系(Image Coordinate System):以光轴与成像平面的交点为原点,单位为毫米。

4.像素坐标系(Pixel Coordinate System):以图像左上角为原点,单位为像素。

二、内参和外参矩阵

除了世界坐标系, 后面三个坐标系只跟相机本身有关。 相机内参表达的就是这三个坐标之间的转换关系, 而相机外参表达的是相机与世界坐标系之间的转换关系。成像的过程实质上是几个坐标系的转换。首先空间中的一点由世界坐标系转换到相机坐标系 ,然后再将其投影到物理成像平面 ( 成像平面坐标系 ) ,最后再将成像平面上的数据转换像素坐标系 。

从世界坐标到像素坐标总共有3步转换, 前面2个合在一起就是相机内参, 最后一个是相机外参。如下左图所示

三、畸形模型

四、内参标定方法

棋盘格标定法(张正友标定法):使用已知尺寸的棋盘格标定板,通过多角度拍摄图像,提取角点并求解单应性矩阵,结合最小二乘法优化内外参数。此方法精度高、操作简便,是工业界主流。步骤:拍摄多幅棋盘格图像(通常需15-20张)。检测角点并亚像素优化。利用线性最小二乘解算初始参数。通过Levenberg-Marquardt算法非线性优化,最小化重投影误差。如下左图

圆形标定板:利用圆形标记点,适用于高精度场景(如医疗影像),但对离焦敏感。如下右图

五、外参的标定方法

外参标定的核心是:已知多个点分别在相机坐标系下的坐标和在世界坐标系下的坐标, 求它们之间的映射关系。
常用求解PnP 的方法,即已知多个点, 在像素坐标系的二维坐标, 和在世界坐标系的三维坐标,并且已知内参, 求解旋转平移矩阵。

六、双目标定的标定方法

双目标定的主要目的是确定两个摄像头之间的相对位置关系,以便通过视差计算物体的三维信息‌。双目视觉系统通过两个摄像头获取图像,利用视差原理来计算物体的深度信息。为了实现这一目的,需要对两个摄像头进行精确的标定,以确定它们之间的位置关系和参数‌
可以看到,为了将两个图像调整到同一平面且中心水平对齐(外极线校准),我们需要知道两个摄像头的相对位置关系,具体来讲就是:旋转矩阵R和平移矩阵T,然后对应将图像做旋转和平移即可。获取立体校正的参数就是立体标定要做的工作,实际上只是对每个镜头进行前面单目标定,用单目标定的参数计算得到立体校正的参数。

双目视觉技术在机器人导航、三维重建、测量和增强现实等领域有广泛应用。通过精确的双目标定,可以提高系统的准确性和可靠性,确保机器人或设备能够准确地感知和理解周围环境,从而执行复杂的任务‌

七、其他标定方法

一、 自标定方法

基于场景约束:利用自然场景中的平行线、消失点等几何特征推导参数,适用于无法放置标定物的场合(如户外SLAM)。

基于深度学习:使用神经网络直接从图像回归参数,无需显式建模,但需大量标注数据。

二、 零失真相机标定

通过LCD显示屏生成相移光栅,建立像素级映射关系,适用于广角镜头和复杂畸变矫正,精度可达亚像素级。

八、一些关键的算子和流程

准备阶段:

1 首先要获取相机的初始内参(焦距,畸变系数,单个像素的宽,单个像素高,图像 坐标的中心值横坐标,图像坐标中心值的纵坐标,图像宽度,图像高度)

 2 根据标定板的大小利用 gen_caltab 算子,生成描述文件。(保存到指定位置)

 3 拍摄 14—20 组标定板图像(eye_in_hand),并准确记录每组图像在拍摄时 TOOL_IN_BASE 位姿(此位姿从机器人中读取)。 备注:在获取标定图像时,标定板不动,机器人末端的摆动要尽可能的全面,绕各 个轴的旋转角要尽量的大。标定板要出现在相机视野的各个角落。理论上图像越多, 角度越全面,标定精度越高。

标定阶段:

 1 读取相机初始内参,设置描述文件路径

 2 创建标定数据模型 create_calib_data

3 设置相机的参数类型 set_calib_data_cam_parm

4 设置标定板的数据类型(此处用到了描述文件)

 5 设置标定模式 set_calib_data(我使用的是非线性的方法)

 6 循环读取图像将标定板的位姿信息和机器人末端在基坐标系位姿(TOOL_IN_BASE) 保存到标定数据模型中。

 7 进行手眼标定 calibrate_hand_eye 备注:手眼标定最终获得的是相机与机器人末端的位姿关系(Camera_In_Tool)。在循 环输入 TOOL_IN_BASE 时其输入格式一定要是 YZX 的(至少我试过 XYZYZY 是不行的), 到此标定就结束了。 如果是使用该标定结果的话,要先选择参考的平面进行一步标定获得参考的 obj_in_cam, 然后再计算抓取物体点与 obj_in_cam 的关系。所用到的方程如下:

B站  :道传科技上位机   观看教程视频

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

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

相关文章

文件的秒传、分片上传以及断点续传 || Redis缓存减轻数据库读写压力

实现文件的秒传、分片上传以及断点续传的功能。使用 Redis 缓存上传的文件分片信息减轻数据库读写压力,同时防止有人恶意攻击服务器导致服务器磁盘爆满无法提供服务。 🔍 详解: 1. 实现文件的秒传、分片上传以及断点续传功能 秒传&#xff0…

安全大模型智驱网络和数据安全效能跃迁

从2023年ChatGPT开始,网络安全行业就一直尝试和AI大模型来结合,解决网络安全的痛点,例如告警多,专家少,新的APT攻击层出不穷,已有的基于规则的防护手段失灵,如何使用大模型的泛化能力来提升对未…

Android S - 恢复部分应用安装

使用展锐提供的代码编译出来的固件&#xff0c;不包含DeskClock等应用。 之前也遇到过这个情况&#xff0c;只是时间太久忘记了&#xff0c;在这里再次记录&#xff01; frameworks/native/data/etc/android.app.remove.xml<?xml version"1.0" encoding"ut…

android 之 CALL

一、组件职责与定位 组件所在进程核心职责关键特性CallsManagerTelecom系统进程通话状态机核心&#xff1a;管理所有Call对象的生命周期&#xff08;创建、状态更新、销毁&#xff09;。监听Call状态变化并通知所有观察者&#xff08;如InCallController&#xff09;。通过mLi…

Swift 6 学习笔记(二)The Basics

这篇笔记也是同步 Swift 6 官方教程中的第二篇 《The Basics》&#xff0c;这篇博客中的大部分内容在第一篇中已经涉及&#xff0c;这篇可以被认为是基础类型的的补充篇&#xff0c;多了很多说明信息。 官方教学文档 《The Basics》&#xff1a; Swift 提供了许多基本数据类型…

【PHP】BC Math 函数参考表

BC Math 函数参考表: 函数名描述语法bcadd两个任意精度数字的加法bcadd($num1, $num2, [scale])bcsub两个任意精度数字的减法bcsub($num1, $num2, [scale])bcmul两个任意精度数字乘法bcmul($num1, $num2, [scale])bcdiv两个任意精度数字除法bcdiv($num1, $num2, [scale])bcmod…

C# TAP异步编程(Task/async/await)总结

C#中有个很好用的东西&#xff0c;TAP异步编程&#xff08;Task-based Asynchronous Pattern&#xff09;&#xff0c;是目前C#推荐的异步编程模型。它基于 System.Threading.Tasks.Task 和 async/await 关键字&#xff0c;旨在简化异步代码的编写、调试和维护。TAP 是现代 .NE…

达梦数据库(DM)用户名大小写处理规则

达梦数据库(DM)用户名大小写处理规则 达梦数据库对用户名的处理与PostgreSQL和Oracle有所不同&#xff0c;以下是相关说明&#xff1a; 一、基本规则 默认情况下&#xff1a;达梦数据库区分用户名大小写 创建的用户名会保留原始大小写格式连接时必须使用相同的大小写形式 …

黑马点评面试话术

文章目录 1.项目介绍2. 分布式登录功能2.1 讲讲登录的整个流程2.2 集群模式session下存储用户信息会有啥问题&#xff1f;2.3 为什么采用redis存储用户信息和验证码2.4 redis的存储格式怎么样的&#xff1f;2.5 为什么采用Hash结构存储用户信息2.6 为什么采用双拦截器&#xff…

MTK APEX测光系统中各变量具体的计算方式探究

目录 一、APEX测光系统介绍 二、MTK测光系统实例介绍 三、关于测光系统的一些疑问 一、APEX测光系统介绍 详细内容可以参考; AE(自动曝光)系统简介

K8S的基本概念

Kubernetes是一个开源的容器编排部署管理平台,用于管理云平台中多个主机上的容器化应用。Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了应用部署、规划、更新、维护的一种机制。 对应用开发者而言,可以把Kubernetes看成一个集群操作系统。Kubernetes…

NLP学习路线图(三十四): 命名实体识别(NER)

一、命名实体识别(NER)是什么? 命名实体识别(Named Entity Recognition, NER)是自然语言处理中的一项关键序列标注任务。其核心目标是从非结构化的文本中自动识别出特定类别的名词性短语,并将其归类到预定义的类别中。 核心目标:找到文本中提到的命名实体,并分类。 典…

大三自学笔记:探索Hyperlane框架的心路历程

## Day 1&#xff1a;初识 Hyperlane 在 GitHub 上发现了 Hyperlane 这个 Rust HTTP 框架&#xff0c;立刻被它的性能数据吸引。官方文档写着&#xff1a; > "hyperlane 是一个高性能且轻量级的 Rust HTTP 框架&#xff0c;设计目标是简化现代 Web 服务的开发&#xff…

Java大厂面试真题:谢飞机的技术挑战

Java大厂面试真题&#xff1a;谢飞机的技术挑战 场景一&#xff1a;电商场景 面试官&#xff1a;在电商项目中&#xff0c;我们通常需要处理大量的并发请求。请谈谈你对JVM调优的理解。 谢飞机&#xff1a;嗯&#xff0c;JVM调优主要是为了提高程序的性能和稳定性。比如&…

【Docker管理工具】安装容器管理工具Oxker

【Docker管理工具】安装Oxker容器管理工具 一、Oxker介绍1.1 Oxker简介1.2 Oxker功能1.3 Docker介绍 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四、下载Oxker镜像五、安装Oxke…

产品成本分析怎么做?从0到1搭建全生命周期分析框架!

目录 一、为什么要做产品全生命周期成本分析&#xff1f; 1.资源再分配 2.动态成本校准 3.战略决策支持 二、产品成本分析思路 1.建立全生命周期成本追踪 2.联动分析关键指标 3.定位问题产品线 4.资源效率四象限分配 三、产品成本分析指标 1.分投入成本&#xff1a;…

机器学习与深度学习20-数学优化

目录 前文回顾1.梯度下降的基本原理2.什么是损失函数&#xff1f;3.随机梯度下降和小批量梯度下降4.什么是学习率5.优化算法中的收敛性6.常用的数学优化算法 前文回顾 上一篇文章链接&#xff1a;地址 1.梯度下降的基本原理 梯度下降&#xff08;Gradient Descent&#xff0…

Photoshop 2025 性能配置全攻略:硬件选购与软件优化指南

一、硬件配置核心建议 根据Adobe官方要求及实测反馈&#xff0c;Photoshop 2025对硬件的需求侧重CPU、内存和存储&#xff0c;显卡需求相对宽松&#xff0c;但特定功能&#xff08;如AI滤镜、3D渲染&#xff09;需关注显卡性能。 硬件类别最低配置推荐配置&#xff08;流畅运…

华为云Flexus+DeepSeek征文 | 华为云ModelArts Studio快速上手:DeepSeek-R1-0528商用服务的开通与使用

华为云FlexusDeepSeek征文 | 华为云ModelArts Studio快速上手&#xff1a;DeepSeek-R1-0528商用服务的开通与使用 引言一、ModelArts Studio平台介绍华为云ModelArts Studio简介ModelArts Studio主要特点 二、开通DeepSeek-R1-0528商用服务访问ModelArts Studio控制台DeepSeek-…

day53 神经网络调参指南

目录 一、引言 二、权重初始化&#xff1a;为何如此重要&#xff1f; &#xff08;一&#xff09;随机种子&#xff1a;确保实验的可重复性 &#xff08;二&#xff09;权重初始化的重要性 1. 神经网络的对称性问题 2. 避免梯度消失和梯度爆炸 &#xff08;三&#xff0…