机器视觉:9点标定的原理与实现

一、什么是标定

标定就是将机器视觉处理得到的像素坐标转换成实际项目中使用到的毫米坐标。简单说即使看看实际单位距离内有几个像素,如下图所示,10mm的距离内有222个像素,那像素坐标和实际的毫米坐标就有个比例关系了。

二、九点标定

9点标定的算法主要用于建立相机像素坐标与机械手世界坐标之间的转换关系。通过已知的9个点的图像坐标和对应的机械坐标,直接计算转换矩阵,核心原理就是最小二乘拟合。

9点标定的核心在于通过少量的点来精确计算坐标转换关系,适用于2D平面上的仿射变换,9点标定不仅计算简单,而且在实际应用中非常有效。

具体步骤包括:

1、制作9点标定板或者标定图,通常是3*3的阵列排列,确保相机的视野能覆盖到所有的点,一般这些点是圆形的标记。

2、相机拍照,在图片上找到这9个圆点的中心坐标,并记录下来,同时也要记录下这些点的机械坐标。

3、使用采集到的图像坐标和机械坐标,通过最小二乘法计算出一个3*3的转换矩阵。

4、得到转换矩阵后,可以用它将新的图像坐标换成机械坐标,从而实现相机和机械手的协调工作。

三、最小二乘法的原理

最小二乘法拟合的目的就是找到使误差平方和最小的参数值。

他的基本原理就是找到一个函数曲线,使得该曲线和实际数据点之间的误差最小。具体而言,最小二乘法通过找到使误差平方和最小的参数值,来得到最佳的拟合曲线。误差是指实际数据点与拟合曲线之间的差异,平方和的最小化是为了消除正负差异的影响并凸显较大误差的重要性。

最小二乘法公式在数学砂锅称为曲线拟合,不仅仅包括线性回归方程,还包括矩阵的最小二乘法。现象最小二乘法就是二元一次方程,矩阵的最小二乘法就是两个方向上的二元一次方程了,如下所示:

四、 9点标定的工程实现

1、获取实心圆矩阵坐标上的圆心坐标,有几个关键的参数

获取标定板的图像Img;

9个圆点的极性,是黑点白背景,还是白点黑背景;

提取圆点的灰度阈值是多少,为了在比较模糊的图像中获取圆点;

圆点的面积范围,算法要找圆点,得给个大致的范围,圆点有多大得告诉算法。

2、计算图像坐标和世界坐标的映射关系

图像坐标是通过拍照,软件找到圆点算出来的像素坐标,世界坐标就是标定板上9个点的实际坐标;

还需要标定图像的高度和宽度;

计算得到映射关系,有的叫做转换关系;

映射关系通过最小二乘法计算出来,MATLAB,halcon的库都有现成的函数可用。

当然计算出来的转换关系是要保存下来的,以后每次都可以使用,用不着每次都去标定一下。

相关推荐
码小跳8 小时前
Halcon案例(一):C#联合Halcon识别路由器上的散热孔
图像处理·c#
白熊18811 小时前
【计算机视觉】OpenCV实战项目:基于Tesseract与OpenCV的字符识别系统深度解析
人工智能·opencv·计算机视觉
Ronin-Lotus12 小时前
图像处理篇---MJPEG视频流处理
图像处理·python·opencv
LuvMyLife12 小时前
基于Win在VSCode部署运行OpenVINO模型
人工智能·深度学习·计算机视觉·openvino
gaosushexiangji12 小时前
基于千眼狼高速摄像机与三色掩模的体三维粒子图像测速PIV技术
人工智能·数码相机·计算机视觉
六bring个六13 小时前
qtcreater配置opencv
c++·qt·opencv·计算机视觉·图形渲染·opengl
多巴胺与内啡肽.14 小时前
OpenCV进阶操作:光流估计
人工智能·opencv·计算机视觉
妄想成为master14 小时前
计算机视觉----时域频域在图像中的意义、傅里叶变换在图像中的应用、卷积核的频域解释
人工智能·计算机视觉·傅里叶
一个人的博客@你14 小时前
C# 通用OCR识别
图像处理·c#·ocr·图像识别·文字提取
alpszero15 小时前
YOLO11解决方案之物体模糊探索
人工智能·python·opencv·计算机视觉·yolo11