【《手机表面缺陷检测系统平台搭建与实验验证分析案例》4200字】_第1页
【《手机表面缺陷检测系统平台搭建与实验验证分析案例》4200字】_第2页
【《手机表面缺陷检测系统平台搭建与实验验证分析案例》4200字】_第3页
【《手机表面缺陷检测系统平台搭建与实验验证分析案例》4200字】_第4页
【《手机表面缺陷检测系统平台搭建与实验验证分析案例》4200字】_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

手机表面缺陷检测系统平台搭建与实验验证分析案例目录TOC\o"1-3"\h\u5537手机表面缺陷检测系统平台搭建与实验验证分析案例 122891.1缺陷检测系统的软件平台搭建 1236221.1.1图像预处理模块 1118821.1.2深度学习模型搭建模块 360851.1.3系统操作界面模块 4122411.2数据集构建可行性验证 6207401.3基于YOLOv3的缺陷检测系统精度验证 8164711.3.1评价指标 832771.3.2精度验证实验 91.1缺陷检测系统的软件平台搭建 本课题的软件平台是基于Windows系统下的Anaconda开源软件包管理系统进行搭建的,并通过Pycharm、Halcon等软件实现算法开发。PyCharm是一种PythonIDE,是Python语言开发的高效工具,该软件界面简洁,容易上手,并且基于python运行,python语言具有简单易懂、可移植性强、丰富拓展库等优点,是当前深度学习领域最受欢迎的编程语言。德国MVtec公司开发了一款机器视觉处理软件:机器视觉算法库Halcon,该软件集成大量二维图像处理算法,语言简单且调试方便,可以结合Python、C++等众多高级语言进行联合开发,开发效率较高。如图5-1所示,该课题的软件架构主要分为三部分,分别为图像预处理模块、深度学习模型搭建模块以及系统操作界面模块,接下来详细介绍这三个模块:图像预处理模块图像预处理模块深度学习模型搭建模块系统操作界面模块Pycharm+Halcon负责进行图像裁剪、增广等预处理工作负责模型搭建、模型训练及模型测试负责系统UI界面搭建Anconda+pytorch1.8.0PyQt图5-1系统软件架构图1.1.1图像预处理模块图像预处理模块由Pycharm和Halcon平台共同开发,主要负责图像的裁剪、图像数据增广以及缺陷标注工作。软件操作界面如图5-2所示,缺陷标注工作通过labelimg完成,并保存为XML文件,图像数据增广源码见附录1。为了后续模型搭建效果的验证,此模块还需要把数据集分成训练集和测试集两个部分。这里选取增广后的图像共3061张,训练集的缺陷样本构成如图5-3(a)所示,根据图表信息可知,除去少数缺陷本身数据量较少外,大多数缺陷的样本数据分布均衡,数量符合少样本的数量要求。同理的,选取255张原缺陷图像作为测试集,测试集缺陷样本构成如图5-3(b)所示。(a)pycharm软件界面(b)Halcon软件界面图5-2软件操作界面(a)训练集数据分布(b)测试集数据分布图5-3数据集缺陷类型分布1.1.2深度学习模型搭建模块第二部分为深度学习模型搭建模块,该模块基于Anconda搭建的虚拟python环境运行,并使用Pycharm作为IDE。该模块主要负责模型搭建,模型训练以及模型测试,训练好的模型文件以pth权重文件保存下来。本论文所采用的模型基于深度学习框架PyTorch实现。PyTorch由Torch7团队开发,能够使用GPU和CPU优化模型。实验使用的深度学习工作站的硬件配置如表5-1所示,软件配置如表5-2所示。表5-1深度学习工作站硬件配置名称型号主要参数CPUINTELi7-8700k6C12T@4.7GHzGPUNVIDIARTX2080Ti11GBGDDR6SSDSAMSUNG970EVO512GB内存ADATADDR416GB*2@3200MHz主板PRIMEZ390-AINTEL1151表5-2计算机软件配置名称版本深度学习平台PyTorchv1.8.0编译环境Windows1064位系统PythonPyCharmGPU运算平台CUDAv10.2GPU加速库CuDNNv7.6.1.32在模型的训练过程中,涉及到的过程主要有参数初始化、优化求解以及超参数调试。对于参数初始化方法的选择,由于模型中起的特征识别、信息提取的卷积核的作用是相同的,因此使用数据迁移,这比从头开始训练的效果要更好,随机赋值是对模型中的参数赋随机数值,一般采用将权重参数的每个元素初始化为随机采样于均值为0,标准差为0.01的正态分布,偏差初始化为0。因为要考察不同模型结构之间的差异性,所以选择随机赋值作为模型的初始化方法。第二个优化求解表示通过不断的迭代,并将损失函数不断降低。在进行模型训练时,常采用梯度下降算法,本文选用自适应矩估计算法来作为优化算法。最后一个为超参数调试。神经网络中的参数可以分为两类,分别是权值参数和超参数。超参数用于控制模型训练属性,决定模型结构。学习率是超参数中最主要的一个,用于调整参数更新的步幅。若学习率过大,则损失函数变法幅度也大;若学习率过小,则函数收敛较慢,且可能陷入局部最优。因此需要根据训练的进程选用不同的学习率,选用Adam算法进行优化的初始学习率参数一般设置为0.001,采用如式(5-1)所示的指数型衰减策略。QUOTEldecayed=l×γe式中,为学习率,QUOTEγ为控制学习率下降的乘数因子,QUOTEepoch表示迭代次数,QUOTEstep_size是调整学习率的步长,每过一定的步长,更新一次学习率。确定好模型训练的参数后,开始将数据集送入卷积神经网络模型,并进行训练。如图5-4所示,设定Freeze_Epoch迭代次数10次,Unfreeze_Epoch迭代次数40次,训练pth权重模型,基于yolov3的深度学习模型源码见附录4。图5-4开始模型训练1.1.3系统操作界面模块第三个模块为系统操作界面模块,该模块负责系统的UI界面搭建。本文的UI界面基于PyQt工具包开发,PhilThompson开发了用于创建GUI应用程序工具包的PyQt,该库基于python编程语言,是py编程语言与Qt库的成功融合。系统操作界面如图5-5所示,分别为图像显示区域、权重文件输入区域以及软件操作区域。图像显示区域负责显示待检测的原图以及缺陷检测图;权重文件输入区域负责加载训练好的pth权重文件;软件操作区域负责执行输入图片、开始检测以及批量检测图片等任务,接下来简要介绍软件检测流程。图像显示区域权重文件输入区域图像显示区域权重文件输入区域软件操作区域图5-5手机表面缺陷检测程序软件界面如图5-6所示,打开手机表面缺陷检测程序后,需要首先将训练好的权重文件加载进入系统,加载完毕后会弹出加载成功提示。图5-6权重文件加载成功提示随后输入需要检测的图片,点击开始检测按钮,即可完成对该图的缺陷检测工作,如图5-7所示。检测图中各种不同颜色的方框表示不同的缺陷类型,方框上面的数值表示缺陷类型的概率,最高为1.0,数值越高表示模型的预测结果越好。如果需要对批量图片进行缺陷检测,可以选择批量输入图片按钮,检测结果会以PNG图片格式保存在predict_image文件夹下,如图5-8所示。本系统的UI界面模块源码见附录2。图5-7进行缺陷检测图5-8批量进行缺陷检测1.2数据集构建可行性验证在第三章的手机表面缺陷数据集构建中,本文对图像的裁剪、增广方式进行设计,现基于该算法流程对数据集构建可行性进行实际效果验证。在图像数据增广小节中,本文分别采用旋转、镜像、模糊、变亮变暗、增加噪声这六种方法进行数据增广,为验证增广效果,本文抽取126张缺陷图并对这些图像进行数据增广。但在缺陷增广过程中,由于部分增广涉及旋转、镜像等改变缺陷位置的因素,因此在进行图像增广时还需修改标注xml文件中的缺陷坐标位置,否则会造成实际缺陷位置与标注位置不相符的情况,大大降低模型的准确度与可信度。如图5-9所示,当原图数据进行不同组合的增广时,其缺陷改变的位置也不尽相同。(a)原缺陷图标注位置(b)镜像图缺陷标注位置(c)逆时针旋转90°+加噪缺陷标注位置(d)逆时针旋转+镜像缺陷标注位置图5-9数据增广造成部分缺陷标注位置不准确为解决这一问题,需要根据图像的旋转方式来改变缺陷坐标。如图5-9(b)所示,对于镜像图片,设原标注坐标为x、y,改变后的坐标x1、y1,则有:x1=416-x,y1=416-y(5-2)如图5-9(c)所示,对于逆时针旋转90°的图片,则公式改写为:x1=416-y,y1=x(5-3)如图5-9(d),对于逆时针旋转90°加上镜像图片,公式改写为:x1=y,y1=416-x(5-4)依此类推,可以得到数据增广后的缺陷标注位置,并重新写入到xml文件中,缺陷标注位置更改程序源码见附录3,更改缺陷标注后的图像如图5-10所示。至此,数据集的预处理工作实行完毕。(a)原缺陷图标注位置(b)镜像图缺陷标注位置(c)逆时针旋转+加噪缺陷标注位置(d)逆时针旋转+镜像缺陷标注位置图5-10更改缺陷标注位置后的图像1.3基于YOLOv3的缺陷检测系统精度验证1.3.1评价指标在训练完成后,使用模型对测试集进行推理。推理结果的好坏需要统一的指标进行衡量。模型的评价指标较多,需要根据需求选择恰当的指标。由于检测的目标是工业应用,因此更加关注是否存在漏检,即优先检出缺陷,避免产生大量缺陷造成损失,其次是对缺陷进行分类,提供相关信息调整生产,最后是缺陷的位置信息。模型的相关属性可以用混淆矩阵(ConfusionMatrix)及其二级指标进行衡量[26]。混淆矩阵是用于统计分类模型归类结果的表格。混淆矩阵的具体形式如图5-11所示。混淆矩阵真实值positivenegative预测值positiveTPFPnegativeFNTN图5-11混淆矩阵根据被检测对象(Positive和Negative)和预测结果(Positive和Negative)的不同,可以将缺陷识别结果分为四种情况。真实值为positive,检测结果为positive( TruePositive,TP),表示检测结果准确;真实值为positive,检测结果为negative(FalsePositive,TF),表示误检;真实值为negative,检测结果为positive(FalsePositive,TF),表示漏检;真实值为negative,检测结果为negative(FalsePositiveTF),表示检测结果准确。基于混淆矩阵,衍生出几个二级指标,分别是准确率(accuracy),精确率(precision),召回率(recall)和特异度(specificity),计算方式如下:QUOTEaccuracy=TP+TNTP+(5-6)(5-7)(5-8)准确率衡量的是模型中所有正确判断结果占总推理结果的比重;精确率表征在所有预测为positive的结果中,正确结果的比重;召回率代表在真实值为positive中,预测正确的比重;特异度代表真实值为negative中,推理正确的比重。由于在现场操作中,一般不改变置信度阈值,因此在这里不使用平均精确度和均值平均精度指标,而是选取准确率、召回率、精确率作为模型在手机背板表面缺陷检测的性能衡量指标。1.3.2精度验证实验基于YOLOv3的深度学习模型训练完毕后,在系统界面输入权重文件,并通过批量导出图片按钮将检测结果图进行批量导出,如图5-12所示。图5-12批量导出检测图依照上一小节所讲述的评价指标,统计测试集的原图缺陷数量与检测图缺陷数量,并绘制混淆矩阵,如表5-3所示。表5-3最终测试结果混淆矩阵原图检测图崩边纹路缺损脏污白点划伤无缺陷总计准确率总准确率崩边37000023991.0%91.6%纹路缺损07210078090.0%脏污017400108587.1%白点59116196.7%划伤2012191.2%无缺陷00000286286100%通过实验结果对比分析,可以得到以下结论:由表5-3可知基于YOLOv3的权重模型经过50次迭代后模型测试效果较好,loss函数呈收敛趋势,各类缺陷检测效果基本都能达到90%以上的准确率,但仍存在一部分漏检情况,下面主要分析漏检的情况。如图5-13所示,从图中可以看出在手机背板的闪光灯孔周围存在三块脏污缺陷,但在实际检测时模型只检测到了两块,产生这类漏检的情况主要有两大原因:一是漏检的缺陷样貌过小,且先前的训练集中没有与之类似样貌的缺陷,导致模型训练不充分,造成漏检;二是缺陷过于靠近图片边缘,或者在进行图像裁剪时将一整块大型缺陷裁剪为两份,导致在进行测试集验证时检测不完全。脏污缺陷不同于其他缺陷类型,该缺陷样貌众多且不规则,其在手机背板上造成的黑块既可能是油墨等黏着性污渍,也有可能是毛丝等飘落上去的污渍,因此要解决这类缺陷的漏检问题,可以通过增加训练集样本的方式来解决。图5-13造成漏检的缺陷样貌除了脏物类缺陷样本集不足的问题,训练的权重模型还存在部分误分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论