进阶:检出大图中的微小缺陷
针对图像尺寸较大而缺陷较小的数据训练场景,本文提供 Mech-DLK 样例工程中的电脑外壳数据(单击下载),带领用户使用缺陷分割模块训练模型。整体流程包括七个步骤:数据采集、数据处理、数据标注、图像尺寸处理、模型训练、验证模型、导出模型。
用户可使用自己准备的数据。除标注环节存在差异外,整体使用流程一致。 |
准备工作
-
新建工程并添加缺陷分割模块:单击初始页面上的新建工程 ,选择工程路径并输入工程名以新建一个工程。再单击右上角的 +,选择缺陷分割模块。
-
导入图像数据:解压缩下载的数据压缩包,单击左上方的导入/导出 ,选择导入文件夹 导入图像数据。
-
浏览图像,分析缺陷特征和位置:浏览所有导入图像,分析缺陷特征和位置。笔记本电脑外壳上的亮斑为缺陷,是本项目中的检测目标。各图像中的缺陷面积较小且位置不固定,缺陷区域和其他区域差异明显,因此本示例工程不能使用ROI工具和掩膜工具。
数据标注
-
新建类别:由于本项目目标缺陷只有一种,因此创建一个类别即可。
-
标注图像:浏览图像可以发现,目标缺陷非常小,因此建议选择使用画笔工具并调节画笔大小(建议调节至最小值2)。标注时请贴合缺陷形状。本项目中图像数量较多,可以选择标注10张图像后进行训练。
长按Ctrl键并向上滚动鼠标中键可以放大图像,方便更精准地标注。 -
划分训练集和验证集:完成10张图像的标注并移动至训练集中。也可以选择一张没有缺陷的图像作为OK图像并加入训练集中,帮助模型区分缺陷与正常状态。之后划分训练集和验证集,一般场景推荐将80%的数据划分为训练集,20%划分为验证集。软件会自动将已经标注完成并移动至训练集中的图像数据进行划分。
图像尺寸处理
-
放大图像:由于本项目中原始图像尺寸较大而目标缺陷非常小,因此建议使用输入图像尺寸参数放大图像,使模型能够清晰识别较小的缺陷。可以在训练选项卡点击缩放预览按钮打开窗口,选择能够清晰看到标注的图像尺寸。
-
使用网格剪切工具:可以使用网格剪切工具将原始图像剪切成多个小图,放大标注在图像中的比例,使模型更容易识别出缺陷标注。在标注工具区单击网格剪切工具按钮,可启动网格剪切工具。用户可在图像标注区顶部设置行数和列数,并单击应用按钮,将图像裁成大小相同的小图。将行数和列数均设置为3,效果如下图所示。
请先标注数据再使用网格剪切工具。 -
预览并调整输入图像尺寸:点击应用按钮后,图像尺寸指的是剪切后的小图输入神经网络的尺寸。如果需要确认输入训练模型的小图效果,可再次打开缩放预览窗口,在窗口上方选择相应的行数和列数,查看对应小图缩放后的效果。本示例工程中,剪切后的图像被分为九个大小相同的小图,小图中可清晰地观察到标注图和原始图像中的缺陷区域,表明当前输入图像尺寸符合要求。
-
使用边缘扩展(可选):若使用网格剪切工具后,标注区域被分割至两个网格,可以使用网格剪切工具的边缘扩展功能,拖动滑块扩大每个网格小图的边缘,直到小图容纳整个标注区域。边缘扩展设置对全局图像生效。
-
使用网格选择工具:将图片裁剪为多个小图后,参与模型训练的图像数量会增加,导致模型训练速度变慢。为了缩短训练时间,可右键单击标注工具区的
按钮,选择网格选择工具,在图像标注区选择加入训练的图像。选中后的小图效果如下图所示。
默认设置下,有缺陷标注的小图将自动加入训练,OK图的所有小图也将参与训练。 |
训练模型
-
配置数据增强参数:理想的训练数据应该反应实际生产条件中的各种情况,例如在本项目中,图像数据应体现现场多种光照条件,但采集数据时可能无法覆盖各种光照条件,因此需要适度扩大亮度范围,增强模型的泛化能力。本项目中,部分缺陷与笔记本电脑外壳颜色接近,因此需要适度调整亮度和对比度两个参数,保证训练数据既能体现现场多种光照条件,又可以使模型更容易识别缺陷。部分缺陷位于小图边缘或与周围区域颜色接近,因此不建议使用旋转和缩放参数。单击训练选项卡下训练参数设置右侧的
按钮,在数据增强选项卡中配置数据增强参数。
请参阅训练模型了解各参数详细说明。
-
配置训练参数:通常情况下,建议使用评估间隔轮次、学习率、GPU ID等参数的默认设置。
-
模型类型:本示例工程中,亮斑缺陷面积较小,轮廓较为模糊,模型识别难度较大,建议使用高精度模型。
-
总轮次:首次开启训练时,推荐使用较大的总轮次(500以上)以充分训练模型。
输入图像尺寸已经在前述步骤中设置完成,因此此时不需要再次设置。其余参数保持默认值即可。点击确认保存设置。
-
在输入图像尺寸满足要求的情况下,较小的输入图像尺寸有助于加快模型训练和推理速度。
-
较大的输入图像尺寸有利于验证区域和缺陷区域轮廓的拟合,提高模型精度,但会增加训练轮次和模型训练时间。
-
-
-
启动训练:训练参数调整完成后,单击训练选项卡下的训练按钮,即可开始训练模型。
-
通过训练信息观察训练情况:在训练选项卡下的训练信息栏,可实时查看模型训练信息。
-
通过训练图表窗口和训练中心查看训练情况:单击训练选项卡下的显示图表和训练中心按钮,即可实时查看模型精度曲线和损失曲线变化情况以及训练进程。用户可等待模型训练结束,观察最高精度参数和测试集验证结果区域,判断模型训练效果。精度曲线整体呈现上升趋势、损失曲线整体呈现下降趋势表明当前训练正常运行。
-
中止训练(可选):
-
根据实际情况,提前中止训练(可选):当模型精度已经达到要求时,为节约时间,用户可中止训练。也可等待模型训练结束,观察最高精度等参数,初步判断模型训练效果。
-
模型训练不理想时,可中止训练排查问题后再次启动训练。
-
验证模型
-
验证模型:训练完成或手动中止训练之后,单击验证选项卡下的验证按钮,验证模型。
-
模型表现不佳时,排查问题后重启训练:例如在本次训练、验证后发现漏检、过检数较高,模型表现不理想,用户可以使用筛选规则设置(如面积筛选项)改善过检问题,补充标注来改善漏检问题,之后再次进行训练和验证。
对于测试集中存在漏检和过检的图像,补充标注,并将该图像划分为训练集,加入下一次训练。 当模型在训练集上无过检、漏检,表明模型已初步具备泛化能力。
不需要把测试集中所有存在漏检或过检的图像都标注后划分为训练集。可补充标注一部分图像,加入训练集,重新训练和验证模型,将剩余图像作为参考,观察验证结果,检验模型迭代效果。 -
导出模型:单击 导出模型。在弹出的对话框中选择存放路径,然后单击导出,即可导出模型。

导出后的模型可在 Mech-Vision 与 Mech-DLK SDK 中使用,单击此处查看详细说明。