机器视觉标定讲解

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 的(至少我试过 XYZ,YZY 是不行的), 到此标定就结束了。 如果是使用该标定结果的话,要先选择参考的平面进行一步标定获得参考的 obj_in_cam, 然后再计算抓取物体点与 obj_in_cam 的关系。所用到的方程如下:

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

相关推荐
美狐美颜sdk9 小时前
Android直播美颜SDK:选择指南与开发方案
android·人工智能·计算机视觉·第三方美颜sdk·视频美颜sdk·人脸美型sdk
sali-tec9 小时前
C# 基于OpenCv的视觉工作流-章7-膨胀
图像处理·人工智能·opencv·算法·计算机视觉
努力犯错9 小时前
LTX-2 进阶 Prompt 技巧:从入门到专业视频创作
人工智能·数码相机·机器学习·计算机视觉·开源·prompt·音视频
杜子不疼.10 小时前
计算机视觉热门模型手册:Spring Boot 3.2 自动装配新机制:@AutoConfiguration 使用指南
人工智能·spring boot·计算机视觉
格林威21 小时前
传送带上运动模糊图像复原:提升动态成像清晰度的 6 个核心方案,附 OpenCV+Halcon 实战代码!
人工智能·opencv·机器学习·计算机视觉·ai·halcon·工业相机
棒棒的皮皮1 天前
【深度学习】YOLO模型速度优化Checklist
人工智能·深度学习·yolo·计算机视觉
JQLvopkk1 天前
智能AI“学习功能”在程序开发部分的逻辑
人工智能·机器学习·计算机视觉
狗狗学不会1 天前
视觉检测的新范式:从“像素感知”到“时序语义推理”—— 基于 Qwen3-VL 与时序拼图策略的通用事件检测系统
人工智能·计算机视觉·视觉检测
scott1985121 天前
DIFIX3D+: Improving 3D Reconstructions with Single-Step Diffusion Models
人工智能·计算机视觉·扩散模型·生成式
Julyers1 天前
【Paper】FRST(快速径向对称变换)算法
图像处理·人工智能·计算机视觉·圆检测