缺陷检测-金属表面缺陷检测

1介绍

      缺陷检测是工业视觉技术中最重要的组成部分。业务广泛,场景丰富,技术难点高、工作量大。针对不同的场景,选择不同的相机和识别方法。

      一般情况下,工业视觉相机分为面阵和线阵,大部分有点要求的场景对应需要的相机都比较贵,动辄几千块,相机还要配套光源、镜头,都比较贵,一套成像系统下来一万块也只是入门级别的。算法的研发费用也是比较贵的,一种产品缺陷的研发周期至少也是一个月以上,往往需要一个小团队共同开发。很多场景的缺陷至今是无法解决或者无法实用的。这就造成了有的场景利润低,用人工比用机器更省钱,有的场景利润高,可惜没人能作出实用的系统。

2方法

      由于不同的缺陷适用不同的算法,需声明下这里介绍的算法仅适用于光滑表面缺陷检测,不保证可用于其他方向。

2.1物体及成像

      首先,我们来看下物体。如下图所示:

缺陷检测-金属表面缺陷检测_第1张图片

由于对具体行业情况不是很清楚,只能称之为金属件,大概是用在特殊领域吧。成像效果如下:

如上图所示,是通过线阵相机环绕一周扫描得到的图像。清晰度还是比较高的,就是设备比较费钱。

2.2缺陷分类

      对于缺陷的类别,国标中是有定义的,分了很多种情况,针对不同的厂家需求也有不同的要求。比方说印,可分为压印,划痕,坑的具体科目。这里主要分为三类,印,电镀不良及脏污。如下图所示:

缺陷检测-金属表面缺陷检测_第2张图片

绿框标注的是脏污,红框标注的是电镀不良,蓝框标注印。

2.3数据标注

       本方法采用深度学习分类技术,对于样本的标注采取mask的方式,mask灰度值不同用来指示类别。如下图所示:

缺陷检测-金属表面缺陷检测_第3张图片

2.4分类器训练

       训练流程如下:

       1)将扫描图片根据金属件宽度缩放到指定大小,并进行微弱的随机放大缩小

       2)设定窗口大小如15x15,以滑动窗口的形式,扫描金属件,得到样本,其中正样本为缺陷面积占窗口大于20%,类别为面积最大的类型(考虑到有交际的情况),负样本为缺陷面积占窗口小于1%,其他情况舍弃(保留中间地带进行界限区分);

        3)采用简单的卷积网络作为分类器训练,多个分类器形成级联分类器;

2.5预测过程

       预测过程如下:

       1)对输入图像,根据金属件宽度缩放到指定大小;

       2)滑动窗口对缺陷的每一块进行分类;

       3)用生长算法将小的缺陷框合成一个大的框输出

3核心思维

       算法设计比较简单,有几个点是非常重要却也容易忽略掉的:

       1)样本的标注要尽可能细致,要考虑到金属件的尺度和窗口的大小,十分影响缺陷的定义;

       2)参与训练的样本,正负分明,抛弃一定的中间样本,这些样本往往是缺陷的边界,及细小的不需要检测的缺陷;

       3)缺陷的形状千奇百怪,没有固定的外形模式,通用的目标检测容易出错,代价比较高;

       4)样本增强无需考虑太多,成像情况通常比较稳定;

       5)采用级联分类的方式将极大的提升速度,总的效果相对于单一分类器无差别;

       6)采用分割方式(点像素分类)所需样本多,没有样本间隔的机制,达到同样的效果,时间复杂度显著比较高。

4结果

       总计标注200余张样本,覆盖各种类型的缺陷。在2000余张不参与训练的样本测试,明显缺陷检出率100%,误检率0.1%(大多比较小)。效果如下:

左边为未对缺陷框生长的效果,右边为生长结果。

5声明

       本文仅提供一种思路用于学习和研究,代码数据不会提供。有问题请私信,勿评论。

       

     

 

 

你可能感兴趣的:(机器学习,人工智能,算法,深度学习)