- 06/03
- 2020
-
QQ扫一扫
-
Vision小助手
(CMVU)
摘要:深度学习技术的快速进步,显著地推动了计算机视觉领域的发展。视觉感知算法在工业制造等各个领域大面积运用的技术临界点即将到来。我国是工业生产的大国,有大量需要现场人工目测进行质量判断的场景,这些场景面临的问题是传统计算机视觉技术无法解决的,而基于深度学习的计算机视觉技术提供了新的机会。基于百度自主研发的深度学习技术平台PaddlePaddle和昆仑芯片,本文在总结数据处理、计算机视觉核心检测与分割算法基础之上,提供了百度工业智能视觉解决方案,并已在3C、钢铁、水务、纺织、电力、汽车等工业领域规模化落地应用,有效地提升了工业生产的效率,降低了生产成本。
关键词:深度学习 缺陷检测 图像处理 智能芯片
1引言
传统计算机视觉技术需要根据实际应用场景来定制化构造不同的特征,这些人工构造的特征对光照和场景比较敏感,因此使用领域和范围受到很大的限制。近年来,随着深度学习技术的飞速发展,在计算机视觉领域,采用深度学习技术能够自动进行特征学习,极大的促进了计算视觉技术的发展,使其在更多的实际场景领域应用成为可能。
目前工业生产制造过程中,表面的缺陷检测大部分还依赖人工质检,典型场景包括手机/笔记本外壳表面、3C结构件的外观、液晶屏幕、石油管道锈蚀、汽车零部件外观以及PCB生产装配检测。由于人工检测存在很大的主观性,容易受到情绪、注意力等因素的影响,不能满足制造业的高速度、高精度、标准化等要求。
随着新一代深度技术的成熟和进步,与传统视觉算法相比,深度学习算法可以有效处理在弱小缺陷,复杂场景,缺陷形态多变等增量场景,因此,在工业质检领域,运用计算机视觉技术替代纯人工检测成为可能。带来的收益如下所示:
第一,通过工业相机的图像采集,利用计算视觉算法对图像的感知能力,能够替换实际产线中的检测工人,从而有效解决在人工检测随着时间延长,精力、注意力、效率出现一定波动的问题。
第二,通过计算机视觉算法的感知能力,可以把原来的图像形式的非结构化原始数据转化为格式化数据, 以方便对数据进一步的分析和挖掘有效的信息。感知能力是进一步实现认知分析的基础和前提。
第三,统一产线的缺陷质量检测标准。减少缺陷检测在实际产线中的抖动。
依托百度自有的PaddlePaddle和昆仑智能芯片等核心深度学习技术平台,以及百度行业化实践,并结合深度学习学术界最新成果,本文对工业生产过程中的表面缺陷检测、无人监控的机器巡检两大场景进行了研究和实践,利用机器视觉技术对两大实际场景中的实际问题进行研究。
本文接下来的组织结构如下,第二部分重点介绍工业视觉数据处理问题;第三部分介绍计算机视觉的核心技术,缺陷检测与分割在实际场景中的改进;第四部分介绍百度智能制造整体的技术框架;第五部分对关键技术的实验结果进行展示和分析;第六部对机器视觉在智能制造中的小结与未来发展的展望。
2工业数据处理算法
在实际的工业生产环境中,面临着数据搜集难,标注昂贵费时,并且数据标注标准难以统一的问题。因此,如何在仅有少量缺陷样本实现深度学习模型的冷启动训练,在数据标注存在质量低,二义性强的情况下如何有效的保证模型的训练效果,成为深度学习算法在实际落地中面临的主要困难。本节从缺陷数据生成和无监督缺陷发现两个方面来减轻工业质检中缺陷数据匮乏,减小深度学习模型在实际落地过程的影响。
2.1数据生成
在工业制造场景中,通过收集产品的缺陷样本图片扩充训练集,是一种可靠且高效的完成缺陷检测任务的方法。模型的效果很大程度上依赖于数据集的质量,而实际生产中积累的真实缺陷图片经常是稀少且珍贵的,因此通过数据生成的方法来扩充数据集是非常重要的。
现有数据增广主要包括三种方法。第一种为空间变换,既随机裁剪、随机缩放、水平翻转、垂直翻转、随机旋转等方式;第二种 为颜色变换,既改变图像的透明度、亮度、饱和度等颜色特征;第三种为信息删除,既在图像上随机丢弃一块区域的信息,可以起到在模型网络上添加正则项的作用,避免模型训练过拟合[15][16]。
以上几种数据增广方法可以起到很好的扩充数据集作用,但是无法处理相同缺陷在不同光照,纹理背景下的迁移,因此本文提出了一种自动化、快速、高性能的缺陷生成方法。大部分的数据生成应用场景可以分为关注局部和谐性与关注全图和谐性两大类,针对第一类场景,我们采用泊松融合方法[17],在保持背景区域和缺陷区域特征的同时,使二者的过渡边界更加流畅;针对第二类场景,我们使用基于生成对抗网络(GAN)的方法[18][19],在生成新图片的同时,能够保持全图整体的真实性与和谐性。
1. 关注局部和谐性的泊松融合方法
由于光照、风格、纹理等原因,缺陷区域与背景良品图片无法自然过渡,可以使用泊松融合的方法,分别计算得到缺陷区域和背景良品图片的梯度场,将缺陷区域的梯度场放置在背景良品图片梯度场的目标位置上,融合重叠区域的梯度场得到组合梯度场,根据任务需要选择两个梯度场的保留程度,在组合梯度场的基础上计算散度场并构建泊松方程,通过求解泊松方程可以得到合成图片,该方法可以不同程度的保留缺陷与背景的纹理信息,使二者的过渡更加自然。
2. 关注全图和谐性的GAN方法
分别构建判别网络和生成网络,使用缺陷图片和良品图片训练判别网络,生成网络输入的则是将特定缺陷复制粘贴到背景良品图片上的组合图片,再将该组合图像精细修改为融合良好、风格协调的监督图片,用于指导生成网络的训练,同时在网络训练损失函数中加入泊松方程,为图片的合成同时加入判别损失、颜色约束和梯度约束,使缺陷区域与背景融合的同时保持全图的和谐性。
2.2无监督缺陷发现
由于实际质检场景高度开放,新形态未知缺陷层出不穷,同时项目初期缺陷数据收集困难,但良品数据数量较多且数据较容易收集,无监督缺陷发现主要探索在缺乏真实缺陷数据的情况下,仅依赖无缺陷良品数据,综合利用传统特征、机器学习方法以及深度生成网络寻找良品数据的分布,并标示出异常区域[20]。
无监督缺陷发现包括基于传统的图像处理方法与基于深度学习的方法,传统的图像处理方法需要针对每个场景设计特征提取器以及检测方案,鲁棒性一般比较差。基于深度网络的无监督缺陷发现主要利用良品数据训练AutoEncoder[21]或者VAE[22]等模型,使其具有对图像的重建能力;在测试阶段,模型能够将缺陷图像进行重建,重建后的图像与原始缺陷图像存在较大的差异,从而在检测出缺陷的同时定位缺陷区域。同时针对部分复杂场景下重建的图像较为模糊的问题,可在网络中加入判别器构造一个GAN[23]网络提高重建图像的真实性;针对结构性较强的场景,可在网络中加入Attention[24]模块,避免模型陷入局部区域的过学习;整体的网络如下图;
图1无监督缺陷发现网络结构图
3实例分割与目标检测
在实际工业场景中,模型效果容易受到检测目标不明显、目标极小化、目标部分被遮挡等不利因素的影响。该部分重点介绍基于深度学习实例分割算法框架,而在低层特征和高层语义特征的集成[26][27]、样本类别分布不均衡[13]、针对检测框而采用的不同损失函数[12]、网络训练策略[11][25]等设计技巧则不展开讨论。
检测与分割是光学自动外观检测和无人巡检场景用到的主要视觉算法技术,现在主流检测分割技术主要分单阶段和两阶段目标检测与实例分割。由于现有主流实例分割算法都在目标检测基础之上添加分割分支,因此本文主要介绍实例分割相关算法,而针对仅需要目标检测的场景,则可通过删除实例分割分支来完成。
基于单阶段和两阶段的技术框架之间的关系可以通过统一流程框架来表示,如下图所示。
图2两阶段和单阶段统一框架图
3.1两阶段实例分割
无论是物体检测还是实例分割,两阶段的算法整体结构都可分为主干网络(Backbone)、区域生成网络(Proposal)和检测/分割网络(Heads)三个阶段。双阶段算法主要适用于对图像检测和分割精度要求也比较高的场景,相应的所需算法的时间计算复杂度也较高。
图3两阶段实例分割流程
3.1.1Mask-RCNN的基本结构:
Mask-RCNN[7]是目前最常见的两阶段的实例分割算法框架。该框架基于Faster-Rcnn[9]的目标检测的结构上添加了实例分割的分支。基本网络结构利用主干网络提取图片特征,然后通过RPN(Region Proposal Network)网络产生建议区域,最后使用回归检测框头部分支网络预测类别和框的位置,并同时使用Mask分支来预测mask区域。其算法的主要流程图如下所示。
图4Mask-RCNN算法处理流程框架
3.1.2HTC (HybridTaskCascade)
HTC[7]是一种级联的实例分割模型,作为两阶段的一种扩展把基于级联的结构也放到两阶段的实例算法中,其简单思想是把三个Mask-RCNN头部网络使用交叉级联的方式串联起来,来实现一种由粗到细的方法对检测框和mask逐级回归与细化。下图所示分别表示直接级联的Mask-RCNN、交叉级联网络结构、Mask-RCNN信息流的结构、HTC的网络头部结构。其他部分的主干网络和ProposalNet和Mask-RCNN采用相同的网络结构。
图5HTC的网络头部示意图
3.1.3分离bbox Head的结构
根据文献[14]思路分析物体的分类其实是对位置不敏感的特征,而检测框位置定位的分支是对位置比较敏感的。因此可解耦bboxhead的分类和定位分支,并且利用卷积加分组归一化的方法对bbox分支进行更好的学习。下图左边是原始结构,右边是改进的结构。
图6检测框回归分支,左边是原始,右边是改进后的结构
3.2单阶段实例分割与目标检测
单阶段的物体检测与分割算法主要考虑的检测分割速度和效率能够有效的平衡,在对实践要求比较高、计算资源有限的情况下,单阶段的实例分割与目标检测算法在无人巡检的场景下有比较突出的优势,其中目标检测Yolov1-v4[1][2]和ssd[3][4]系列的算法通过调整主干网络可以很好的实现运算速度和检测效果的平衡,solov1-v2[6]单阶段的分割算法,本文重点对采用YOLACT++[5]算法框架进行介绍。
该算法通过一个全卷积模型将实例分割分为两个独立的子任务来完成。这两个任务分别是(1)生成原型的mask;(2)预测每个实例的mask系数;然后通过将原型系数和模板系数线性组合生成最终的mask。该方法可以生成高质量的Mask。在主干网络部分采用了可变形卷积的模块,并且重新设计了anchor的尺度和横纵比提高召回率。Yolact++的算法处理的总体流程如下图所示。蓝色和黄色分别代表原型中高和低值,灰色的结点表示不需要训练的模块,我们采用RetinaNet[13]的网络架构,基石网络采用ResNet101+FPN。
图7yolact++算法处理流程框架
4百度工业智能视觉解决方案
百度智能工业视觉整体技术方案作为首个全流程国产自主可控的质检方案提供商,打破了Halcon,Cognex等海外厂商在核心工业质检产品和方案上的垄断地位,也作为国产工业4.0的重要环节,整体技术框架可分为硬件层,训练框架层,核心算法层,以及标准化解决方案层。
首先在算力层,由于工业质检对成本要求苛刻,根据所需环境的不同,百度支持端上以及边缘侧两种硬件形态。在云上设备层,目前除了传统的NvidiaTeslaT4/P4,以及2080/1080消费卡设备以外,还支持了国产芯片( 比特大陆/华为升腾)等系列,并支持百度自主可控的昆仑芯片,在相同算力条件下较Nvidia系列成本可降低50%以上。
在端上系列产品,除了支持Nvidia传统芯片Xavier系列外,百度提出了可自主可控的EdgeboardFPGA系列,并提供相应的全自研FPGA加速库,打破了Nvidia/Intel等海外闭源硬件厂商在端上推理垄断,目前在通用质检场景的检测模型仅使用25%的成本可达到P4 80%的算力水平,同时也兼容其他国产芯片比如华为海思/麒麟系列。
其次在框架层,目前百度基于全流程深度学习框架PaddlePaddle集成了丰富的模型工具,在训练框架层,百度公有云平台依托PaddleCloud平台,在同时针对私有云集群以及单机场景百度BML深度学习平台,可自动实现负载均衡,进行资源管理运维,保持公有云/私有云99.9%的SLA率以及模型自动重载;同时在框架层也提供质检专用的少样本增量学习算法,可针对已部署的质检服务实现数据回流以及自动校验,同时针对相似场景冷启动,提供已有相似产线数据/模型的迁移。
针对预测框架,百度集成了PaddleLite实现在ARM/FPGA/GPU/昆仑等异构芯片的算法移植,较原生TensorFlow/Pytorch框架在无损伤情况下可提速50%以上,同时可进一步通过PaddleSlim等工具实现模型加速和压缩,整体压缩比可进一步提高20%以上,模型文件大小可降低35%以上,同时也支持将高度复杂化的质检模型编排部署成标注预测服务并通过公有云/私有云RPC方式一键化部署,并支持多平台(Android/Linux/Windows) 多语言(Python/PHP/C++/C#)灵活部署方式。
百度核心算法层,主要分为数据,标注,定位,检测,测量几大类,其中针对数据层面提供无监督良品的缺陷发现,同时针对新场景冷启动环节通过缺陷合成来实现相似纹理/背景的迁移,最终通过待优化的数据回环,可自动筛选待优化数据供模型迭代,同时针对质检场景标注工作量大且困难的问题,通过采用良品模型预标注,少样本的智能标注以及复核,交互式分割等场景,可综合降低74%标注工作量,同时标注单图时间提升35%。针对定位模块,提供快速的模版定义,可降低传统版式定义从2小时降低到3-5分钟,同时高精度的匹配点检测可使用高噪声光照变化场景,并采用孪生网络对部件异常区域进行分类,在5-10张新类别的冷启动场景可提升10%-20%准确率以上。针对背景复杂目标弱小的场景,低标注质量以及单视角缺陷可见性差的问题,提供了一套大图缺陷patch训练策略,可自动解决漏标问题,并集成统一多视角的缺陷检测。针对质检精细化的需求,针对2D场景,采用精细像素级分割/定位,并被动立体匹配实现缺陷曲面3D测量,并可针对3D缺陷进行精细检测分割。
在核心算法层基础上,针对3C类场景,百度与合作伙伴合作协助建立了可量化的质检标准(亮度/对比度/面积/长度等),可以帮助客户适应不同供应商的灵活需求,同时在客户无法给出精细缺陷定级标准情况下,可结合机器学习实现定级成因分析和要素分析。在纺织类等场景则通过良品模型大大降低模型计算量,在汽车零配件针对自由曲面结合被动3D测量可进行精细轮廓分析和测量。
综上所述,百度工业视觉提供了端云一体,支持公有云/私有云的灵活部署方案,并综合利用行业理解,飞桨,昆仑芯片,在效果/标注速度/成本/项目启动速度等核心指标上较通用方案提升明显,并通过数据筛选以及少样本模型迭代实现模型快速运维和迭代。
图8解决方案架构图
5实验结果与分析
5.1高精度分割定位的实验结果与分析
本文从实例分割与语义分割两个方面分别在液晶面板与3C场景中使用的高精度分割定位进行结果分析。针对质检行业一些固定目标类缺陷的精细分割,通常采用实例分割的方法,如下图a所示,在某液晶面板场景中,实例分割的baseline方法对缺陷的分割结果比较粗糙,通过在head加入mask来实现像素级目标类缺陷轮廓抽取。针对质检行业中无固定形态类缺陷,该类缺陷通常无固定形态且分布无具体规律,该类缺陷较为适合语义分割来进行处理;如下图b所示,针对一些背景存在噪声的场景,对底层纹理特征以及高层语义特征效果均较为敏感,而常见的U-Net 不能较好实现平衡,多层特征融合的HRNet来作为基础分割网络能取得较好效果。
5.2无监督缺陷发现实验结果与分析
本文采用实际应用中的纺织数据以及3C数据的良品图进行了模型的训练,并使用产线上的缺陷数据作为测试集进行模型效果测试。针对实际应用中的需求,我们采用图像级别的分类准确率以及缺陷区域分割效果两个方面进行模型评估。从图a与b的ROC曲线可以看出,模型区分良品与缺陷图像分类准确率均较高。缺陷区域的定位分割结果如图c与d所示,第一张图为原始图像,第二张图为原图与重建图的差异热力图,第三张图为缺陷区域分割结果图,从图中可以看出,针对不同形态,大小的缺陷,以及背景亮度对比度变化较大的场景,模型均能准确的进行缺陷区域的分割。
5.3缺陷数据合成的实验结果与分析
本文使用了结构件质检数据集,挑选“漏线圈”和“裂纹”两种典型缺陷,分别用于泊松融合和GAN的数据生成实验。
图15泊松融合生成“漏线圈”缺陷图片效果图
上图所示为基于泊松融合生成“漏线圈”缺陷图片的效果图,我们在缺陷数据集中随机分割出“漏线圈”缺陷局部图,将这些缺陷局部图随机粘贴在原始良品图中的合理位置上,得到组合图片和与其对应的缺陷mask图片,使用泊松融合方法融合缺陷区域和背景区域的梯度场并重建得到生成图片,从图中可以看出,生成图片中的缺陷区域与背景区域边界消失,过渡明显更加流畅且自然。相比于复制粘贴的组合图片,泊松融合生成图片真实性明显提高。
图16 GAN生成“裂纹”缺陷图片效果图
上图所示为基于GAN生成“裂纹”缺陷图片效果图,采用与上述泊松融合相同的方法构建复制粘贴组合图片和与其对应的mask图片,分别使用GAN判别损失、颜色约束和梯度约束来训练生成网络,得到GAN生成图片,将局部缺陷与背景融合,使二者边界自然过渡,同时调整二者的亮度等特征,使生成图片的整体风格统一,尽量和谐化全图呈现效果。
5.4巡检场景实验结果与分析
巡检场景利用无人机或者机器人等移动的端侧设备,由于算力有限,则需要在时间复杂度和检测效果上做平衡。对算法模型蒸馏、加速、量化都有较高的要求。
在无人监控的高压电路巡检场景,利用单阶段快速检测模型对高压电路的异物和烟雾进行了检测,检测结果如图所示。
图17高压线路异物检测结果
图18烟雾检测
6结论
本文利用百度自主可控的深度学习技术,对在工业生产的过程遇到的实际问题进行了研究,并为技术推动产业变革提供良好的实践。通过不断探索技术在实际产业场景的边界,寻找提升工业产业能力突破点,并已在3C、钢铁、水务、纺织、电力、汽车等工业领域的场景得到有效的验证。后续期望技术的进步能够在更多领域推动制造能力的提升。
参考文献
[1]Alexey Bochkovskiy, Chien-Yao Wang, Hong-Yuan Mark Liao.YOLOv4: Optimal Speed and Accuracy of Object Detectionhttps://arxiv.org/abs/2004.10934, 2020.
[2]Joseph Redmon and Ali Farhadi. Yolov3: An incremental improvement. CoRR, abs/1804.02767, 2018.
[3]W. Liu, D. Anguelov, D. Erhan, S. Christian, S. Reed, C.-Y. Fu, and A. C. Berg. SSD: single shot multibox detector. In ECCV, 2016.
[4]C.-Y. Fu, W. Liu, A. Ranga, A. Tyagi, and A. C. Berg. DSSD: Deconvolutional single shot detector. arXiv:1701.06659, 2016.
[5]Bolya, D., Zhou, C., Xiao, F., Lee, Y.J.: Yolact++: Better real-time instance segmentation. arXiv preprint arXiv:1912.06218, 2019.
[6]Xinlong Wang, Rufeng Zhang, Tao Kong, Lei Li, Chunhua Shen. SOLOv2: Dynamic, Faster and Strongerhttps://arxiv.org/abs/2003.10152, 2020.
[7]Kai Chen, Jiangmiao Pang, Jiaqi Wang, Yu Xiong, Xiaoxiao Li, Shuyang Sun, Wansen Feng, Ziwei Liu, Jianping Shi, Wanli Ouyang, Chen Change Loy, and Dahua Lin. Hybrid task cascade for instance segmentation. In IEEE Conference on Computer Vision and Pattern Recognition, 2019.
[8]Kaiming He, Georgia Gkioxari, Piotr Dolla ́r, and Ross Gir- shick. Mask r-cnn. In IEEE International Conference on Computer Vision, 2017.
[9]Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun. Faster r-cnn: Towards real-time object detection with region proposal networks. In Advances in Neural Information Pro- cessing Systems, 2015.
[10]Jiaqi Wang, Kai Chen, Shuo Yang, Chen Change Loy, and Dahua Lin. Region proposal by guided anchoring. In IEEE Conference on Computer Vision and Pattern Recognition, 2019.
[11]Zhuliang Yao, Yue Cao, Shuxin Zheng, Gao Huang, and Stephen Lin. Cross-iteration batch normalization. arXiv preprint arXiv:2002.05712, 2020.
[12]Zhaohui Zheng, Ping Wang, Wei Liu, Jinze Li, Rongguang Ye, and Dongwei Ren. Distance-IoU Loss: Faster and better learning for bounding box regression. In Proceedings of the AAAI Conference on Artificial Intelligence (AAAI), 2020.
[13]T.-Y. Lin, P. Goyal, R. Girshick, K. He, and P. Dolla ́r, “Focal loss for dense object detection,” in CVPR, 2017.
[14]Yue Wu, Yinpeng Chen, Lu Yuan, Zicheng Liu, Lijuan Wang, Hongzhi Li, and Yun Fu. Rethinking Classification and Localization for Object Detection,https://arxiv.org/abs/1904.06493, 2020.
[15]Zhong Z, Zheng L, Kang G, et al. Random Erasing Data Augmentation[J]. arXiv: Computer Vision and Pattern Recognition, 2017.
[16]Chen P, Liu S, Zhao H, et al. GridMask Data Augmentation.[J]. arXiv: Computer Vision and Pattern Recognition, 2020.
[17]Perez P , Gangnet M , Blake A . Poisson Image Editing[J]. ACM Transactions on Graphics, 2003, 22(3):p.313-318.
[18]Wu H , Zheng S , Zhang J , et al. GP-GAN: Towards Realistic High-Resolution Image Blending[C]// the 27th ACM International Conference. ACM, 2019.
[19]Cong W, Zhang J, Niu L, et al. Deep Image Harmonization via Domain Verification.[J]. arXiv: Computer Vision and Pattern Recognition, 2019.
[20]Zhao Z, Li B, Dong R, et al. A Surface Defect Detection Method Based on Positive Samples[C]//Pacific Rim International Conference on Artificial Intelligence. Springer, Cham, 2018: 473-481.
[21]Makhzani A, Shlens J, Jaitly N, et al. Adversarial autoencoders[J]. arXiv preprint arXiv:1511.05644, 2015.
[22]Doersch C. Tutorial on variational autoencoders[J]. arXiv preprint arXiv:1606.05908, 2016.
[23]Gulrajani I, Ahmed F, Arjovsky M, et al. Improved training of wasserstein gans[C]//Advances in neural information processing systems. 2017: 5767-5777.
[24]Liu W, Li R, Zheng M, et al. Towards Visually Explaining Variational Autoencoders[J]. arXiv preprint arXiv:1911.07389, 2019.
[25]Abhinav Shrivastava, Abhinav Gupta, and Ross Girshick. Training region-based object detectors with online hard ex- ample mining. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pages 761–769, 2016.
[26]Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Spatial pyramid pooling in deep convolutional networks for visual recognition. IEEE Transactions on Pattern Analy- sis and Machine Intelligence (TPAMI), 37(9):1904–1916, 2015.
[27]Songtao Liu, Di Huang, et al. Receptive field block net for accurate and fast object detection. In Proceedings of the European Conference on Computer Vision (ECCV), pages 385–400, 2018.