机器视觉标定讲解

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站 :道传科技上位机 观看教程视频

相关推荐
CoovallyAIHub11 小时前
是什么支撑L3自动驾驶落地?读懂AI驾驶与碰撞预测
深度学习·算法·计算机视觉
十铭忘12 小时前
SAM2跟踪的理解6——mask decoder
人工智能·计算机视觉
普密斯科技12 小时前
从点测量到解决方案:光谱共焦技术如何集成于运动平台,实现3D轮廓扫描与透明物体测厚?
人工智能·算法·计算机视觉·3d·集成测试·测量
这张生成的图像能检测吗13 小时前
(论文速读)卷积层谱范数的紧凑高效上界
人工智能·深度学习·计算机视觉·卷积层谱范数
Katecat9966313 小时前
卡簧目标检测基于改进YOLO11-C3k2-Star模型的实现
人工智能·目标检测·计算机视觉
CoovallyAIHub14 小时前
复杂工业场景如何实现3D实例与部件一体化分割?多视角贝叶斯融合的分层图像引导框架
深度学习·算法·计算机视觉
雍凉明月夜14 小时前
视觉opencv学习笔记Ⅴ-数据增强(2)
人工智能·python·opencv·计算机视觉
棒棒的皮皮14 小时前
【OpenCV】Python图像处理几何变换之缩放
图像处理·python·opencv·计算机视觉
roman_日积跬步-终至千里14 小时前
【计算机视觉(9)】运动恢复结构:从图像到三维点云的完整流程
人工智能·数码相机·计算机视觉
roman_日积跬步-终至千里14 小时前
【计算机视觉(12)】神经网络与反向传播基础篇:从线性分类器到多层感知机
人工智能·神经网络·计算机视觉