前言:想要写出一篇引人入胜的文章?我们特意为您整理了计算机视觉下的表面缺陷检测方法范文,希望能给你带来灵感和参考,敬请阅读。
【摘要】随着自动化技术的发展,工业中的许多环节逐渐由机器人替代。产品表面缺陷检测便是其中重要的一环,对产品质量把控有着至关重要的作用。传统人工通过肉眼对产品进行判断,速度慢,成本高,且工人主观判断素会影像检测结果的准确性。然而使用机器和算法代替人工检测却面临不小挑战,在真实的生产环境下,部分图像成像质量差,存在大量噪声、干扰。采用图像处理算法或者手工提取特征的方法在这些场景下难以取得较好的检测效果。直到近年来,人工智能进入快速发展期,深度学习在计算机视觉领域取得了重大突破。在图像分类、目标检测、图像分割等问题上都有了很好的效果。在诸多领域得到了成果应用,人脸识别、行人检测、自动驾驶等。将基于深度学习的计算机视觉应用在表面缺陷检测也成为了一大发展趋势。本文介绍了多个计算机视觉任务和相关的网络结构,探究并对比在缺陷检测问题上的实际应用,分析了基于深度学习的计算机视觉在缺陷检测领域应用的问题,最后进行总结与展望。
【关键词】计算机视觉;表面缺陷;检测;深度学习
一、缺陷检测问题的定义
工件缺陷主要是生产过程中,机器偶发故障、员工操作失误或者生产环境问题造成表面或内部的瑕疵。表面缺陷,可以直接使用普通相机拍摄的图片进行检测,而内部缺陷,则需要使用工业CT拍摄的CT图像,本文主要讨论的是,工业产品表面缺陷检测。受各种因素影响,表面缺陷的类型多种多样,以铝材表面为例,有漆泡、擦花、桔皮等各种类型的缺陷。对于不同的缺陷类型需要采取不同的操作措施,部分缺陷对质量的影响较小,可以降价处理,部分缺陷可以修复,包含严重影响质量缺陷的产品则不能继续销售。因此实际应用中,首先需要对产品进行分类,区分正常无缺陷的样本和有瑕疵的样本。进一步需要对瑕疵进行定位,标记出缺陷的具体位置,本文中将其统称为缺陷检测。
二、基于计算机视觉的表面缺陷检测方法
2.1图像分类网络方法
卷积神经网络是目前深度学习领域最具代表性的神经网络之一,是一种层次模型,包含卷积层、池化层、全连接层等多层结构。其中卷积层通过卷积核在特征图上的移动与卷积操作对图像进行特征提取。池化层是对卷积层的降维处理,可以在保留特征的同时减少参数,加快计算速度,一定程度防止过拟合。全连接层每一个节点都与上层所有节点相连,主要作用是将卷积层和池化层提取的局部特征进行综合。输出的向量经过softmax逻辑回归函数得到最终的分类结果。卷积神经网络具有强大的特征提取能力,在图像分类问题上有非常好的效果。2012年imageNet图像分类任务,AlexNet[1]的成功登顶,分类错误率仅为15.3%,远低于其他方法,标志着深度学习的崛起,开启了计算机视觉一个新的时代。在实际应用中,一般使用经典CNN模型上改进的神经网络结构,如GoogLeNet[2]、ResNet[3]、DneseNet[4]等。这些网络的结构更加复杂,表达能力更强,在各个数据集上的表现显著优于简单CNN网络。训练网络的时间和分类所需的时间也相应增加,需要在准确率和检测速率上进行权衡。TianWang[5]等使用CNN网络对DAGM2007[6]数据集中的样本进行缺陷检测,具体做法包括两次卷积神经网络分类,首先使用一个CNN网络根据纹理特征对样本进行分类,数据集共有六种不同类别的纹理。接下来使用一个128*128的滑动窗口,步长64,在512*512的原图上进行切片,得到49张切割图像。再使用CNN网络对切割图像进行二分类,分为有缺陷和无缺陷两类,可以同时实现缺陷检测和缺陷的模糊定位。相比传统的SIFT+ANN方法,召回率,准确率等指标都有了大幅提升。如果产品的缺陷特征特别明显,可以直接利用卷积神经网络对其分类,这样缺陷检测的速率和准确率都很高。但是生产中,产品表面只有小部分包含缺陷,这时就需要采取上面论文中滑动窗口的方法。需要判断每个窗口的类别。所需的存储空间和计算时间都急剧上升。而且窗口的大小限制了感知区域的大小,导致分类性能受到限制,且定位的精度不高,因此一般会选用下面的两种方法。
2.2图像检测网络方法
图像分类将整张图片作为输入,输出是单一标签。而目标检测需要神经网络对潜在的多个目标进行定位。RCNN就是将CNN应用到目标检测领域的里程碑模型,是一个two-stage检测算法。RCNN算法主要分为以下四步,通过选择性搜索算法提出候选区域,利用CNN网络的卷积和池化操作对输入进行特征提取,根据提取的特征训练SVM分类器,最后对边界进行回归,得到精确的定位,避免多个检出。这些过程的结合使得RCNN非常慢,对每个图像的预测需要数十秒。随后提出的FastRCNN、FasterRCNN一定程度解决了这个问题。与R-CNN不同,FasterRCNN将特征提取、区域生成、边界框回归、分类等工作都整合在了一个网络之中,其核心就是区域生成网络,极大提升检测框的生成速度,检测时间显著缩短,达到了能应用的水平。Young-JinCha[7]通过FasterRCNN检测网络实现对桥梁表面混泥土裂缝,混泥土脱落,螺栓松动,钢腐蚀等危害桥梁安全的缺陷进行检测。将其中的神经网络模型替换成了ZF-net,这也是一个经典的卷积神经网络模型。为了适应区域生成网络和Faster-RCNN网络,对原始的ZF-net网络结构进行了修改。防止训练过程过拟合,在全连接层之间加入dropout层,遗忘率设置为0.5。在两千多张的桥梁建筑数据集上进行的实验,mAP值最高达到87.8%。和R-CNN不同,YOLO属于one-stage检测算法,没有产生候选区域的过程,将目标检测作为一个回归问题求解。基于一个完整的端到端网络,原始图像作为输入,另一端输出物体位置和类别概率。YOLO将输入图像切分为多个栅格,每个栅格负责检出位于其内部的物体。预测值包括多个边框以及边框中是否有物体,物体的可能性是多少。最后选择与栅格交叠率最高的边框作为物体检测输出,每个栅格只能检出一个物体。相比于two-stage目标检测算法,转化为一个回归问题,YOLO算法的速度大幅加快,每秒可以检出数十张图片。然而没有了区域生成网络的过程,目标不能非常精确的定位,检测精度不是很高。实际应用中,生产环节,如果对缺陷定位的精度要求不高,且需要较快的检测速度时,采用一阶段模型,如YOLO、SSD等。如果需要缺陷的精确坐标和大小,生产速率较慢的场景,则采用两阶段模型,如FastRCNN、FasterRCNN。
2.3图像语义分割方法
相较于物体检测的边界框,语义分割网络可以为图像的每一个像素标记物体类别。在缺陷检测任务中,可以精确定位缺陷的位置以及几何属性,效果优于缺陷检测网络。CNN网络中卷积和池化的操作丢失了图像细节,因此不能对每个像素精确分割。为了解决这个问题,提出了全卷积神经网络FCN,将卷积神经网络最后的全连接层替换为卷积层,得到二维特征图,并采用反卷积进行上采样,使之恢复到输入图像相同的尺寸。最后利用softmax获得每个像素点的分类信息,从而实现语义分割。XianTao[8]等基于FCN网络改进,设计了一种级联自编码器(CASAE)的结构,用于金属表面缺陷检测。自编码器由两部分组成,编码器能将输入压缩成潜在空间表征,解码器能重构潜在空间表征的输入。文中将两个自编码器串联组合成级联自编码器用于提取特征。将缺陷图像先作为输入,可以得到着色的缺陷区域,接着通过阈值模块进行二值化,得到精确的边界。确定范围最后对该区域使用CNN进行分类,得到具体的缺陷类型。在DAGM2007和SEM数据集上进行了测试,CASAE结构在分割问题上的IOU指标为89.6%,优于FCN网络,在对缺陷的分类问题上,点状缺陷的分类准确率达到84.7%,优于GLCM、HOG等方法。语义分割近几年发展出了一个新的领域,实例分割,在语义分割的基础上对同类物体进行更精细的分割。MaskR-CNN就是一个实例分割算法,在目标检测算法Faster-RCNN的基础上增加语义分割算法FCN来产生对应的MASK分支。Faster-RCNN可以快速完成目标检测工作,FCN可以精确地完成语义分割的功能。MaskR-CNN检测速度快,分类准确率、检测准确率、实例分割准确率都达到了较高的水平。在缺陷检测问题上,当多个相同缺陷重叠时,MaskR-CNN可以将单个缺陷分离,分别统计缺陷数目。而语义分割网络则会将相同类型的缺陷视为一个整体,统计的准确率不如实例分割算法。MaskR-CNN网络结构简单清晰,扩展性也非常强,通过搭配不同的网络结构可用于完成不同的任务,已经广泛应用于缺陷检测问题。
2.4实际应用中问题分析
一般来说,深度学习算法需要大量的训练数据,充足训练样本训练出的模型,能取得较好的分类和检测效果。但在实际的生产环境中,由于各个公司生产的产品不同,生产的工艺不同,产品的特征,缺陷的类型和表现都有差异。要想实际应用,需要公司独立构建相应的数据集,如果部分缺陷样本数量过少,会使得模型在某些缺陷上表现较差。可以通过数据扩增、数据生成等方法生成新的数据集,或者采用孪生网络、匹配网络等结构,减少对训练样本的需求。本文介绍的这几种经典的深度学习网络模型,不同的模型各有优缺点,实际应用中,要根据需求选择合适的模型。在满足业务需求的情况下,选择结构最简单的模型,训练成本和时间开销也最低。基于经典模型改进的模型也非常多,网络结构非常复杂,往往需要根据特征,反复调整参数,甚至对具体的结构进行更改和优化。这都需要非常专业的计算机和深度学习知识。培养一个这样的团队成本,可能都超过了生产线上人工检查的成本。而且新产品上线后,对应检测软件的研发需要一定时间,也给实际应用造成了不便。深度学习的黑盒特性,使得运行时异常无法预测和解释,造成生产成本的增加。综合这些原因,只有等出现通用性强,准确率高,维护使用成本低的缺陷检测算法出现,基于计算机视觉的缺陷检测才能走向大规模的应用。
三、总结与展望
目前基于深度学习的计算机视觉解决了一部分表面缺陷检测的问题,相比于传统方法,效果有了很大提升。但是受限于算法本身的原理,实际使用离不开工程师的大量工作,规模较小的企业无法满足这样的条件。相信之后会出现更加通用的模型,可以同时应用在不同检测领域,简化设计模型、调整参数的过程,进一步提升准确率等指标,逐步取代人工,最终得到大规模应用。
作者:李潍楚 单位:上海市敬业中学