零部件外观缺陷目标检测

无损检测 (NDT) 在工业应用中起着至关重要的作用,这些应用可以直接从计算机视觉算法中受益。它们广泛用于制造业,用于检测缺陷,包括划痕、缺陷、气孔、泄漏、断裂和裂缝。

零部件外观缺陷目标检测
在线工具推荐:三维数字孪生场景工具 - GLTF/GLB在线编辑器 - Three.js AI自动纹理化开发 - YOLO 虚幻合成数据生成器 - 3D模型在线转换 -  3D模型预览图生成服务

1、无损检测的概念

无损检测 (NDT) 在工业应用中起着至关重要的作用,这些应用可以直接从计算机视觉算法中受益。它们广泛用于制造业,用于检测缺陷,包括划痕、缺陷、气孔、泄漏、断裂和裂缝。除了损害相应物体的美观外,物体表面的这些缺陷还可能对质量控制产生负面影响,甚至造成严重的制造安全风险。执行无损检测方法的传统程序更容易受到人为因素的影响,这可能导致同一测试的不同结果。因此,将自动化和计算机视觉技术相结合是可取的。计算机视觉模型因其速度、准确性和可重复性而擅长检查物体细节和缺陷检测任务。

2、无损检测的应用

MPI 用于检测各种不同形式的制成品,包括铸件、锻件和焊件。MPI利用磁性原理来发现钢、铁、镍、钴等磁性材料中的缺陷。MPI 的第一步是将平行于待检测表面的组件磁化。如果组件表面或附近存在缺陷,则缺陷会产生泄漏场。然后,将湿悬浮形式的铁颗粒施加到组件上。在泄漏场的地方,颗粒被吸引并聚集在一起。这些缺陷在紫外光下可以提供可见的指示。有几个因素会影响 MPI 的有效性。主要因素包括:

  1. 零件几何形状:被检测零件的形状和尺寸会影响检测的有效性。例如,与较大或较厚的零件相比,检测薄零件或小零件的缺陷可能更困难。
  2. 材料特性:被检测零件的材料特性也会影响检测的有效性。例如,非铁磁性材料可能不适合磁粉检测。
  3. 表面光洁度:粗糙或不平整的表面会使使用磁粉检测检测缺陷变得更加困难。
  4. 磁化力:检测过程中施加的磁化力的强度会影响检测的灵敏度。更强的磁化力可能更有效地检测较小的缺陷。
  5. 颗粒大小和类型:检测中使用的磁性颗粒的大小和类型也会影响检测的有效性。较小的颗粒可能对缺陷更敏感,但可能更难看到。
  6. 光强度:用于照亮磁性颗粒的光强度会影响颗粒的可见度和检测缺陷的能力。

3、数据收集

由于缺陷发生的可能性很低,因此大规模收集具有这些因素的不同组合(类内变异)的缺陷图像成本很高。这导致缺陷数据在获取变异性大的缺陷数据时存在一些困难,因此缺陷检测模型的泛化能力较差。开发缺陷检测模型最具挑战性的任务之一是提高其泛化能力。

针对数据有限导致缺陷检测算法泛化能力不足的问题,我们将采用UnrealSynth虚幻合成数据生成器 - NSDT 来生成人工合成数据集来训练人工智能模型。人工合成数复制了真实数据的质量和统计属性,但不是真实的。一组合成数据是由算法或模型构建的假数据的集合,用于复制实际的数据集模式和分布。

当现实世界的数据有限或不足时,人工生成的数据集可以通过促进数据增强来提供帮助。它们使用合成数据点增强数据集,从而提高模型在各种现实情况下的泛化和性能。此增强功能有助于提高机器学习和深度学习模型的准确性和有效性。

4、NSDT-UnrealSynth虚幻合成数据生成器的使用

在本文章,将使用UnrealSynth虚幻合成数据生成器 来生成训练所需要的数据集,用户只需要将安全帽的3D模型导入UnrealSynth中,经过简单的配置就可以自动生成数据集,非常的简单方便:

基于YOLO的实时计算机视觉零件外观缺陷检测:

1. 场景准备

  • 将模型导入到场景。
  • 配置场景先关参数,如:生成的图片数据集的图片分辨率、生成的图片的数量等。

2. 生成数据集

设置参数后,点击【确定】后会在本地目录中...\UnrealSynth\Windows\UnrealSynth\Content\UserData 生成本地合成数据集,本地数据包含两个文件夹以及一个 yaml 文件:images、labels、test.yaml 文件;images中存放着生成的图片数据集,labels中存放着生成的标注数据集。

images和labels目录下各有两个目录:train 和 val,train 目录表示训练数据目录,val 表示验证数据目录,标注数据的格式如下所示:

0 0.68724 0.458796 0.024479 0.039815
0 0.511719 0.504167 0.021354 0.034259
0 0.550781 0.596759 0.039062 0.04537
0 0.549219 0.368519 0.023438 0.044444
0 0.47526 0.504167 0.009896 0.030556
0 0.470313 0.69537 0.027083 0.035185
0 0.570052 0.499074 0.016146 0.040741
0 0.413542 0.344444 0.022917 0.037037
0 0.613802 0.562037 0.015104 0.027778
0 0.477344 0.569444 0.017188 0.016667

synth.yaml是数据的配置文件,数据格式如下:

path:
train: images
val: images
test:
names:
 0: Safety helmet

3、YOLOv5模型训练

生成数据集后,下一步就是利用Yolo来训练模型,第一步,打开 ultralytics hub 在线训练工具,将刚才生成的数据集上传到ultralytics hub

将合成数据上传后,选择YOLO模型版本,确定好YOLO模型版本后,点击【continue】就可以开始使用ultralytics来训练集我们的模型了,如下所示:

选择YOLO模型后点击下一步将会生成用户key值,这个key值将在下一步模型训练时用到

复制【step1】中中的内容,点击【step2】进入到google Colab页面,如下所示:

首先,先点击step中的播放按钮,安装环境依赖,如上图所示;环境安装成功后,接下来将【Start】中的整个内容给都换掉,用在上一步中复制的key值整体替换里面原来的信息,如图:

然后点击播放按钮,开始训练模型,如下图所示:

模型训练需要一段时间...

4、训练模型验证

模型训练完成之后,可以用训练好的模型验证一下,用几张工地工人干活的场景图片,导入用图片来验证一下,操作步骤如图所示:

图片验证结果如下:

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号