0 引言
尿素泵为机动车尾气后处理系统的提供尿素液,是该系统的核心部件。受到质量化的要求,泵体材料一般采用泵合金材质。然而,在铝型材的生产过程中,受生产工艺等因素的影响,铝型材表面会产生擦花、凸粉、漏底等瑕疵,这些瑕疵会严重影响铝型材的质量,降低产品性能。因此,在生产过程中,必须进行缺陷检测,传统的方法主要靠人工进行肉眼目测,检验费时费力,且容易受主观因素的影响,质检的效率不高。近年来,基于深度学习的人工智能技术在许多领域获得进展[1-3],该技术成功的关键为特征提取算法,常用的特征提取算法有SIFT算子[4]、HOG算子基于空域的算法[5];傅里叶变换[6]、小波变换[7]等基于频域的算法。再者,机器学习和神经网络是表面缺陷检测的一种监测方法,文献[8]利用高斯滤波器对图像将降噪,进而采用支持向量机(SSVM)分类器对金属表面缺陷分类。文献[9]用于太阳能电池片表面缺陷检测,利用深度置信神经网络(DBN)应用于特征提取。这些基于浅层的神经网络的机器学习算法,很难表示复杂函数,在复杂特征提取中表现不佳。而深度学习架构的多层次神经网络结构,可以实现输入输出间复杂函数表示,经过训练和学习,可以实现复杂的特征提取和分类[10-12]。因此,本文以尿素泵合金材质为研究对象,采用基于深度学习算法的铝合金表面缺陷检测的检测方法,并进行缺陷特征分类,解决图像容易出现灰度不均匀和纹理扭曲等方面技术难题,提高泵表面缺陷检测准确率,相关研究成果可以推广至类似铝型材表面瑕疵检测领域。
1 基于深度卷积神经网络的表面缺陷检测原理
基于计算机视觉的目标检测系统,是目前研究的热门领域,利用深度学习算法通过模拟大脑认知机理,实现目标检测。表面缺陷检测也属于目标检测,利用卷积神经网络(DCNN)提取图像缺陷信息,并对缺陷进行识别和分类。
观念障碍:对实验课程教学本质含义认知的片面化在传统高职院校教学过程中,过度重视教师个人在理论教学过程中的作用,过度强调教学个体自主性,忽视了团队建设。其主要原因是,教学工作不是单独一个教师能够完成的工程,它需要团队合作,只有这样才能够完成教学这个巨大的工程。传统的教学方式在很大程度上限制了现阶段的教学进步,过度强调教学个体在教学活动中的作用,忽视教学团队的力量,实验课程团队教学得到的重视程度远远不够[2]。
深度学习与传统图像检测方法的最大不同在于其提取的特征是从大数据中自动学习得到,不需要设计特征提取器,从而避免了复杂人工提取特征算法设计,使得这一方法具备一定的普适性。利用深度学习缺陷检测的网络模型,通过卷积神经网络进行特征提取,进而进行识别和分类。具体缺陷检测的基本过程:首先通过光源和摄像头获取待检测物体的表面图像,对图像进行预处理,然后利用深度学习算法提取缺陷特征,最后对特征进行识别和分类,如图1所示。
⑨张丹丹:《社区自治的特征:偏态自治和无序自治——社区自治空间有限性的原因》,《华东理工大学学报》(社会科学版)2015年第2期。
图1 基于深度学习的视觉感知步骤
传统的表面缺陷检测方法优势是识别速度快,其局限性,灵活性不高,算法只能针对特定缺陷,受环境变化影响大,很难满足自动识别的要求。通过深度学习检测表面缺陷,主要是利用深度卷积神经网络DCNN作为主干网络来提取表面的缺陷特征,DCNN权重参数需要足够多的大数据样本训练得到,训练后机器就可以提取缺陷特征和对缺陷特征进行分类,在深度学习神经网络的框架下,特征表示和分类器是联合优化的,可以最大程度地发挥二者联合协作的性能。
1.1 深度卷积神经网络
深度卷积神经网络通常称为深度学习(DL),其最大的优势是可以从原始数据中自动学习原始特征的而无需设计特征提取算法[13]。深度学习方法的特点是具有多个隐藏层的深层次架构,可以让其学习多层次的抽象特征。比如一个常见例子是灵长类视觉系统通过一系列变换和特征表示来处理信息,由浅入深感知和学习:先提取边缘,然后形状,最后得到更复杂的特征。Hinton等[13]提出了深度信念网络,它采用了一种新的无监督训练方法,称为分层贪婪训练,从而受到各国学者的研究兴趣,掀起了深度学习的热潮。它超越传统的机器学习和依赖于人工特征提取的传统人工智能方法,DL技术凭借其自动高级特征提取和数据指数增长的能力,已经在自然语言处理(NLP)[1]中取得了突破性成果,语音识别,计算机视觉和图像分析于其在手写字、语音识别及人脸识别等领域取得较好的试验效果。常用的DL架构主要有4种,即受限玻尔兹曼机(RBM)[14],DBN[13],自动编码器(AE)和深度卷积神经网络(DCNN)[15]。基于深度学习的工业视觉缺陷检测是深度学习应用的新领域,也符合新的工业化进程的方向,目前应用报道虽然并不多,将来的发展将更加迅速。
DCNN已经证明在处理视觉数据(例如图像和视频)方面非常有效。DCNN利用最低级别的原始输入数据,并通过一系列基本计算单元(卷积核)处理和转换,以获得更高层次的特征表示[13]。DCNN通常由3种层类型组成:卷积层,池化层和全连接层。卷积层通过通道数,内核大小,步幅因子,边界模式和连接表进行参数化。卷积层获取输入图像并对其应用卷积滤波器以产生输出图像或滤波器响应。多个卷积层用于兼顾图像像素之间的空间依赖性。池化层会使神经网络更加稳健,增加鲁棒性。池化层通常采用最大池化方法,实践表明它能更快的收敛和更好的泛化。在几轮卷积之后通常使用多个全连接层,用于对特征进行分类。
在那次竞标成功以后,宁波一院承担起宁波市糖尿病、心脑血管病、口腔疾病防治临床指导任务。医院随后成立慢病管理中心,来承接这一项新工作。
根据目标检测的定义,需要检测不同缺陷类型并定位。目前常用的模型都是基于DCNN,比如 Faster R-CNN[16],YOLO[17],SSD[3]等。
最新的YOLOv3模型在取得相当准确率的情况下实现了检测速度的很大提升,速度比Fast R-CNN快100倍,与SSD的准确率相当但是速度快3倍。本文将在YOLOv3模型基础上优化模型参数,实现铝型材表面缺陷的快速检测。
1.2 迁移学习
DCNN通常需要大量带标注的图像数据集才能实现高预测精度。然而,在许多领域中,难以获取大批量数据,并且标记数据本身也耗费大量精力。鉴于此,可以使用VGG-16,AlexNet和GoogLe-Net等成熟的训练好深度卷积神经网络模型。这些DCNN模型大都经过几十万图像的数据集,经历了几万次迭代训练,已达到了非常高的准确率。通过预训练迁移学习和微调的方法,可以实现在小数据前提下,实现高的预测精度。这个方法已经被证明在解决跨域图像分类问题非常有用[18]。在DCNN中,网络的不同层处学习的特征表示对应于输入图像中不同级别的抽象。初始层提取边缘和颜色信息,而后一层过滤器编码实现形状和纹理的提取。转移学习背后的思想是,使用在“大数据”图像数据集(如COCO数据集)[19]上训练的深度学习模型并将其学习能力“转移”到新的分类场景而不是从头开始训练DCNN分类器。通过充分的微调DCNN,其预训练精度甚至可以胜过某些从头开始训练的网络模型。
DCNN通常包含数百万个参数,甚至几千万个参数。例如,基于ImageNet模型[20]的网络结构包含超过6 000万个参数。直接学习如此大量的参数是非常困难的,尤其是当数据集不够大时。迁移学习理论指出,从一项任务中学到的知识可以用来处理其他任务[21];也就是说,通过从已经学习的任务中学习到技能,可以改善其它任务中的学习效果。这种改进在深度学习等大数据驱动的任务中非常重要。通常,DCNN中的通用特征(例如边缘和颜色斑点)总是会存在[22]。此外,DCNN中的低级卷积层学习具有强可转移性和更多通用特征,而更高级别的层学习更具体的任务知识[16]。在考虑迁移学习中的具体任务时,应考虑3个问题:迁移什么知识,如何迁移学习以及何时迁移学习。在本文中,只使用COCO数据集预训练模型低级卷积层知识,用于预训练,可以保证网络迅速收敛,而不使用其高级别的层的知识。原因如下:(1)大部分的缺陷,比如“擦花”其图图案相对简单,有明显的边缘,即通用特征,这部分知识可以通过迁移学习从预训练网络的低级卷积层中获取,不必重新学习。(2)其它的缺陷,如“漏底”、“桔皮”区域特征明显,也属通用特征,也可通过迁移学习获得。对于COCO数据集中自然物体的图案(例如汽车和狗)属于高级知识对检测铝型材缺陷毫无用处,因此不会进行迁移学习。
2 试验与结果分析
2.1 数据集
本次试验总共有1 416幅铝型材图像,包含有缺陷图像856幅和无缺陷图像560幅,针对常见的6种缺陷:“擦花”、“凸粉”、“漏底”、“碰凹”、“桔皮”、“脏点”,如图2所示。使用标注工具labelImg进行了标注,按照VOC2007数据集格式制作训练集和测试集。数据集,共分为3种类型:训练集为包含缺陷的图像;测试集,既包含缺陷图片又包含无缺陷图像(每种缺陷10幅);负样本为无缺陷图像,是训练集的一部分,共计500幅。数据集每种样本的数量见表1。
图2 铝型材常见的6类缺陷类型
表1 数据集及分类
缺陷种类 训练集 测试集 负样本擦花 120 28+10凸粉 112 24+10漏底 122 24+10碰凹 118 27+10桔皮 121 30+10脏点 106 26+10 500
2.2 表面缺陷模型训练
使用开源的Keras[20]深度学习框架用于模型的训练和预测。在Keras深度学习框架中,嵌入YOLOv3模型( 一个基于darknet-53的神经网络模型),该模型已经在COCO数据集上进行了预训练。COCO数据集是微软团队制作的一个数据集[19],这个数据集以场景理解为目标,主要从复杂的日常场景中截取图像,图像的目标经过精确的图像分割与位置标定,共包括80类对象,包含33万副图像,标注250万个标签。所以这个模型经过与训练以后,已经具备了很强的特征提取能力,并可以根据特征对图像进行分类,这种网络的图像识别和分类已经其他领域有所应用。
基于多时相高分四号卫星图像的积雪范围分布和基于HJ-1B卫星图像的积雪范围分布见图4、图5,其中灰色表示积雪覆盖区.结果显示,高分四号卫星积雪监测覆盖面更广,单幅图像空间范围约是HJ-1B CCD图像的4倍.在两类数据的重叠区域,提取的积雪空间分布具有较好的趋势一致性.
YOLOv3模型是由一个252层的DCNN网络,只有卷积层,没有池化层和全连接层,池化层被卷积层(3×3的卷积,stride=2)代替。它的主干网络为darknet-53,顾名思义包含53个卷积层,作为YOLOv3特征提取的主要网络结构。我们利用迁移学习的思想,对于低层的网络参数权重,采用大数据COCO数据集的训练结果,后面的网络用自己的数据集进行训练如图3所示。
图3 迁移学习流程框
实际训练时我们冻结了最前面的249层,最后3层采用我们制作的数据集进行训练。
在高中语文教材中,存在很多优秀文章,能够实现对于学生审美能力和创新能力的培育。教师可以借助于多媒体的教学形式,将有关图片、音频或者视频进行综合呈现,并对其中的优美词句进行深入分析[3]。学生在身临其境感受到自然美的同时,可以增强对于美的创造能力。
网络训练过程主要包括如下过程:(1)图像预处理:对图像进行数据增强处理,样本均衡处理。(2)利用迁移学习预训练:加载基于COCO数据集的官方预训练模型,冻结前面的249层网络,只训练后面3层,保存训练后的模型参数和权重。(3)训练调参:加载步骤(2)的训练模型和权重参数,采取部分层冻结、调整学习率等方法继续调参优化。网络参数见表2。
表2 卷积神经网络模型训练参数
训练参数 训练设置值激活函数 ReLu优化方法 SGD损失函数 cross-entropy loss
网络模型训练框架采用Keras开源学习框架,操作系统是Ubuntu 16.04,CPU是intel i7 8 700 K,GPU是NVIDIA GeForce GTX TITAN Xp,内存32G。第1阶段预训练设置总迭代次数60轮,网络前面249层参数冻结,只训练最后3层,由于采用YOLOv3官方预训练权重,大约经过20轮后,Loss值基本收敛,60轮后Loss下降缓慢;第2阶段,解冻部分网络层,采用第一阶段训练的权重参数开始训练后,迅速收敛在经过126轮迭代后设置early stop自动停止训练,得到最终的训练模型参数,保存此训练参数,结果如图4,5所示。
图4 YOLO模型的Loss曲线
图5 YOLO模型的IOU曲线
由图4,5可知,改进的YOLO模型的Loss曲线比YOLO模型的Loss曲线随着迭代次数的增加振荡幅度更小,更趋于平缓。而且改进的YOLO模型IOU曲线与YOLO模型IOU曲线比,随着迭代次数的增加波动范围更小,能够快速收敛,表明了新模型模型更稳定,性能更好。
2.3 IOU和mAP
IOU为预测框与实际框的交集面积与并集面积之比。mAP(mean average precision)是指每个类别的平均查准率的算术平均值。通过计算得出2种模型下各分类的AP,mAP(见表3)以及对验证集的检测成功率。
表3 AP及mAP对比
项目AP mAP擦花 凸粉 漏底 碰凹 桔皮 脏点YOLO模型 1.000 0 0.775 3 0.750 0 0.603 6 0.780 0 1.000 0 0.826 3改进YOLO模型 1.000 0 0.818 2 0.840 0 0.780 1 0.890 0 1.000 0 0.874 3
在验证集中,改进的YOLO模型的mAP为0.8743,比YOLO模型mAP提高了3.63%,取得了较为理想的效果。
2.3 缺陷识别模型效果分析
将测试集中的所有图像输入上文已经训练好的模型,测试缺陷图片中每一缺陷分类的预测情况,如图6所示,模型会用一个矩形框把相应的缺陷标出,并标记上相应的缺陷类型。
图6 模型预测结果示例
将测试集中的所有图片输入网络,给出预测结果,并与事先标记的标签比较,计算预测精度,其中平均预测精度计算式为:
Application of improved ant colony algorithm in optimization design of sewage pipe network
1.2.2 在对观察组患者进行随访的基础上,同时对其进行延续性护理:1)出院后及时加患者或家属进入微信群,在其出院后,定期在微信群发布有关糖尿病知识的手册,并对其提出的疑问进行详细的解答。
由表4可知,原YOLOv3模型的预测准确率为95.9%,改进的YOLOv3模型来预测铝型材表面缺陷的平均准确率为98.2%,提高了2.3%,这个数值已经超过了人工检测准确率98.0%。
表4 测试集预测结果
预测正确数/总数缺陷种类预测正确数/总数YOLO模型准确率(%)改进YOLO模型准确率(%)擦花 36/38 37/38 94.7 97.4凸粉 33/34 34/34 97.0 100.0漏底 33/34 33/34 97.0 97.0碰凹 36/37 37/37 97.3 100.0桔皮 38/40 40/40 95.0 100.0脏点 34/36 34/36 94.4 94.4平均准确率 95.9 98.2
在所有6类的缺陷预测中,“脏点”的准确率最低。“脏点”属于小目标探测,尽管YOLOv3模型的具备多尺度预测能力,但其大小只有几个像素大小,还是容易引起漏检。除了精度外,检测速度也是工业应用所关心的主要因素。我们用上文训练网络所用的PC机,加载训练模型所需时间为2 s左右,检测每一幅图片所用的时间大约是100 ms,即每秒钟可以检测10幅图片,基本满足在线生产的要求。并没有达到YOLOv3官方给出的 50 ms[17],主要原因是试验所用的YOLOv3模型是基于Keras框架,而Keras是基于python,YOLOv3模型是基于Darknet框架,Darknet是采用C和CUDA编写的神经网络框架,其效率要高于Keras框架。
3 结语
为改进铝型材生产过程中的表面缺陷检测方法,本文提出将深度学习算法应用于铝型材表面缺陷检测识别,通过研究深度学习的基本理论和建模方法,建立了基于YOLOv3的网络模型缺陷检测网络,并通过迁移学习和调参的方法训练网络,利用训练后的网络权重参数用于预测铝型材表面缺陷。实验表明本文所采用的基于深度学习的识别方法具有较高的准确率,达到了人工检测的准确度,可以满足工业产品表面质量检测的要求。