经验分享谈谈工业质检中的二维测量算子
Posted 极智视界
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经验分享谈谈工业质检中的二维测量算子相关的知识,希望对你有一定的参考价值。
欢迎关注我的公众号 [极智视界],获取我的更多笔记分享
O_o
>_<
o_O
O_o
~_~
o_O
本文主要聊一下工业质检中的二维测量算子。
视觉测量在智能制造、智慧交通等领域中有着重要作用,在实际应用中测量算子又往往和定位算子结合起来使用,关于二维定位算子的介绍,可以参考我的这篇《【经验分享】谈谈工业质检中的二维定位算子》。
文章目录
一、标定
视觉测量不同于实际中用测量工具进行测量,因为数字图像的图像坐标系和世界坐标系是独立的,而且图像往往存在畸变现象,所以若要通过机器视觉来测量物体实际尺寸,标定是必不可少的步骤。标定是一个解畸变的过程,也是一个将图像坐标系和世界坐标系建立联系的过程,通常可通过一个仿射变换矩阵将图像坐标系转换为实际坐标系,进而可将图像尺寸转换为实际尺寸。常用的标定方法有棋盘格标定、N点标定等。
棋盘格标定使用图像如下,再找像素坐标的时候主要是去找黑白相间 “+” 的角点。
N 点标定又称为 9 点标定,其实用 4 个点就能定平面,用 9 个点的话精度会更高。这里的点实际指的是圆心,一般 N 点标定会比棋盘格标定精度更高,这种标定方法常用于机械手的标定,标定的时候让机械手依次走位走位就可以了。N 点标定使用的图像如下。
关于标定其实是有大学问,有很多应用场景,如单目标定、双目标定、手眼标定等,但总体而言,就是要找到像素坐标和真实坐标的变换矩阵,后面考虑这个专门写几篇。
二、测量算子
测量算子往往结合定位算子一起使用,常用的定位算子有模板匹配、斑点检测、找边、找圆等。一般模板匹配、斑点检测用于粗定位,找边、找圆算子用于精定位。
常见的测量算子有:
- 直线与直线的角度
- 点与点生成的直线与图像坐标系的角度
- 圆与圆之间的距离
- 直线与圆之间的距离
- 点与圆之间的距离
- 点与直线之间的距离
- 点与点之间的距离
- 点与线段之间的距离
- 线段与圆之间的距离
- 线段与直线之间的距离
- 线段与线段之间的距离
- 圆同心度计算(两圆心之间的距离)
- 圆与圆的交点
- 圆与直线的交点
- 直线与直线的交点
- 线段与圆的交点
- 线段与线段的交点
- 线段与直线的交点
- 拟合线
- 拟合圆
三、测量算子使用案例
和定位算子那篇一样,这里演示使用康耐视算法平台 visionPro ,演示两圆之间距离测量案例。
标定:使用 CogCalibCheckerboard 算子,求出 像素 - 真实 坐标转换关系,效果如下:
定位:在实际流水线中,每次相机捕捉到的工件位置不是定的,使用 CogPMAlignTool 模板匹配算子,先把工件给定位到,这样任你工件怎么动,我要测量的圆相对于工件的位置是一直不动的,效果如下:
测量:测量两圆圆心之间的距离,在定位到工件后,就可以使用 CogFindCircleTool 算子缩小并固定检索区域先把圆找到,再用 CogDistanceCircleCircleTool 算子来连接测量两个圆,效果如下:
以上就完成了流水线上工件上两圆距离的测量,其中找圆算子和找边算子的原理都是卡尺,而卡尺的原理是利用了投影,详细的可以参考 halcon。
你说以上场景用深度学习来说可以吗,我觉得定位工件那部分可以替代,目标检测相对于以上介绍的传统算法对硬件要求会高很多,也就是成本会下不去,且传统算法一般效率更高,但目标检测一般精度和泛化能力更好。所以还是要看场景,成本、算法效率、精度、来料的复杂度等影响因素来评估。
我现在专注于深度学习模型推理加速和部署,之前也有过机器视觉偏传统算法的经历,我觉得工业领域很长一段时间传统算法还是很实用,会发光发热,但深度学习在工业领域中的应用也会越来越多,两者兼容的场景会越来越多。比如上面的场景,我用深度学习去做定位,用传统算法去做测量;比如读码,同样可以用深度学习去做定位,用传统算法去做解码;还有 OCR 快递面单识别等,字符识别你要用传统算法去做那就有点离谱了。
现在的智能制造已经不是简单的机械手、AGV 的堆叠应用,而是一个系统工程,机器视觉在里面的作用也越来越重要,做这一块的公司、创业者也越来越多,蛋糕很大,所以你们加油。
收工了~
扫描下方二维码即可关注我的微信公众号【极智视界】,获取更多AI经验分享,让我们用极致+极客的心态来迎接AI !
以上是关于经验分享谈谈工业质检中的二维测量算子的主要内容,如果未能解决你的问题,请参考以下文章