在第十六课中,我们讲了 SciSmart之scriptor脚本编程应用。
今天,我们将介绍SciSmart之标定应用。
相机标定简介
相机标定的作用:标定是实现准确测量和获取准确位置信息的基础,其主要作用是建立图像像素尺寸与实际尺寸的关系、以及建立图像坐标系与世界坐标系的映射关系。
相机标定的场景及解析:
图1 标定主界图
表1:标定场景解析
本文以点距标定和手眼标定为例,进行原理、步骤、用途等详解。
点距标定
点距标定:用于标定相机的像素当量。
适用场合:适用于仅能够单方向移动的场景,例如单轴伺服。
像素当量的计算公式:实际距离/像素距离=像素当量,本例即10/100=0.1(mm/pix)。
机械坐标:P1(0,10) P2(0,20)
像素坐标:P1(0,10) P2(0,110)
1 点距标定-图像设置
图2 点距标定图像设置页面
1.1 引入点:是否从外部引入点数据。
1.2 图像获取方式:图片来源既可“选择相机”也可“选择文件夹”。
1.3 镜像:对图片来源是否进行镜像操作,可选择无、垂直、水平、中心等。
1.4 旋转:对图片来源是否进行旋转,可选择无、90、180、270。旋转方向是逆时针旋转,同时选择镜像和旋转操作会先镜像,对镜像结果图逆时针旋转相应角度。
1.5 粗定位算法:可调用灰度匹配、特征匹配、轮廓匹配、Blob分析、卡尺算法。
1.6 精定位算法:需先通过粗定位生成基准点,再使用精定位算法进行 Mark 点定位。可调用找圆、两直线交点算法。
1.7 图像数目:为了获取 两个点在图像中的坐标。
两幅图像:从2幅图中每次获取1个点。
一幅图像:从1幅图中获取2个点。
1.8 实际距离:两个 Mark 点间的实际距离。
1.9 保存图像:是否保存标定过程中的图像。若勾选,则按照时间边处理边保存图像在程序目录下的 Picture 文件夹中;若不勾选,则不保存。
1.10 下一步:设置好参数后,点击下一步按钮。
2 点距标定-结果界面
图3 点距标定结果页面
2.1 图像距离:两个 Mark 点的像素距离。
2.2 实际距离:两个 Mark 点的实际距离。
2.3 像素当量:实际距离与像素距离的比值。
手眼标定
1 世界坐标系与图像坐标系点位的对应关系
2 世界坐标系与图像坐标系点位要逐一对应
3 手眼标定的基本流程
3.1 创建新的标定文件
3.2 编写Mark点定位算法:
图4 手眼标定-图像设置页面
3.2.1 引入点:是否从外部引入点数据。
3.2.2 图像获取方式:图片来源既可“选择相机”也可“选择文件夹”。
3.2.3 镜像:对图片来源是否进行镜像操作,可选择无、垂直、水平、中心等。
3.2.4 旋转:对图片来源是否进行旋转,可选择无、90、180、270。旋转方向是逆时针旋转,同时选择镜像和旋转操作会先镜像,对镜像结果图逆时针旋转相应角度。
3.2.5 粗定位算法:可调用灰度匹配、特征匹配、轮廓匹配、Blob分析算法。
3.2.6 精定位算法:需先通过粗定位生成基准点,再使用精定位算法进行 Mark 点定位。可调用找圆、两直线交点算法。
3.2.7 图像数目:为了获取多个点在图像中的坐标。
多幅图像:从多幅图像中每次获取一个点。
一幅图像:从一幅图中获取多个点。
3.2.8 选择矫正文件:如果图像存在畸变,则需要使用,勾选复选框,加载畸变矫正文件,在标定过程中先校正图像,然后进行九点标定;如果不存在畸变,则不勾选。
3.2.9 保存图像:是否保存标定过程中的图像。若勾选,则按照时间边处理边保存图像在程序目录下的 Picture 文件夹中;若不勾选,则不保存。
3.2.10 下一步:设置好参数后,点击下一步按钮。
3.3 输入机械坐标点位:
图5 手眼标定-机械坐标设定页面
3.3.1 标定方式:手动标定、半自动标定、自动标定,选择手动标定。
3.3.2 验证:若勾选,则需要 13 个点,前 9 个点用来生成标定矩阵并计算标定误差,后 4 个点参与计算验证误差;若不勾选,则只需要 9 个点,用来计算标定矩阵和标定误差。
3.3.3 标定自由度:平面、倾斜。
3.3.4 标定点数:自定义标定的点位数量。
3.3.5 机械坐标。
基准点:用于进行标定所取点位的中心点。
点间距:每个点之间的X和Y间距。可根据中心点和点间距计算每个点的机械坐标。
坐标行数:所取坐标点位的分布行数。
生成机械坐标:输入中心点和点间距,点击该按钮,生成9点或13点机械坐标。
读取坐标(.csv):点击该按钮,可读取保存有机械坐标的 csv 文件。
上一步:点击“上一步”按钮,返回到图像设置界面,可对参数重新进行设置。
标定:参数设置完成后,点击“标定”按钮,进入到标定界面。
3.4 确认点位的顺序,执行标定:
标定误差:根据前9个点生成的标定矩阵计算出的误差最大值。
验证误差:根据生成的标定矩阵计算后4个点的误差最大值,未勾选验证则为0。
图6 手眼标定-结果页面
3.5标定结果的验证
3.5.1未使用标定工具,得到的有效数据只有像素坐标系下的坐标。
图7 引用标定结果-前图
3.5.2 标定文件的引用
3.5.3使用标定工具,得到的有效数据除了像素坐标,也有世界坐标。
图8 引用标定结果-后图
3.6 手眼标定及验证视频演示