使用缺陷分割模块
本文提供 Mech-DLK 焊盘图像数据(单击下载 ),带领用户使用缺陷分割模块训练模型。本文将从标注缺陷、调整参数以及训练、验证和迭代模型等方面,带领用户利用较少数据,高效训练缺陷分割模型,达到示例工程中检出多锡和铜线裸露缺陷的效果。
用户可使用自己准备的数据。除标注环节存在差异外,整体使用流程一致。 |
准备工作
若用户使用自己准备的数据,导入图像数据前,请根据数据采集规范采集业务所需图像数据。请确保采集的图像中所有缺陷清晰可见,否则将影响模型训练效果。
-
新建工程并添加缺陷分割模块:单击初始页面上的新建工程 ,选择工程路径并输入工程名以新建一个工程。再单击右上角的 +新建,选择缺陷分割模块。
-
导入图像数据:解压缩下载的数据压缩包,单击左上方的导入/导出 ,选择导入文件夹 导入图像数据。图像数据中应包含焊盘上多锡、铜线裸露以及完好无缺陷的情况。
若图像数据中有重复图片,可在弹出的导入图像 对话框中选择跳过或导入、设置标记。由于每张图片只支持一个标记,因此对已有标记的图像添加新标记后,新标记会覆盖旧标记。若导入数据集,可选择是否替换重复图像。
-
选择导入图像、导入文件夹方式时的对话框:
-
选择导入数据集方式时的对话框:
选择导入数据集选项时,此模块仅支持导入 DLKDB 格式(.dlkdb)的数据集,即仅限于从 Mech-DLK 中导出的数据集。
-
-
截取 ROI:若每张图像中的缺陷位置接近,可使用ROI工具为模型训练框选感兴趣区域。设置ROI可以减少无关背景信息的干扰。本示例工程中,缺陷均出现于焊盘的位置,因此可单击标注工具栏中的
,在图像标注区调整ROI,单击
确定。ROI设定将应用于所有图像。
-
使用掩膜工具排除训练干扰(可选):若缺陷区域和非缺陷区域特征相似或存在重叠,可使用掩膜工具遮盖可能干扰模型训练的部分。多锡缺陷和周边四个焊点在外观、反光特征上高度相似,且焊点位置在采集图像中基本一致,因此,可使用全局掩膜,遮盖标准焊点,如下图所示。
-
使用ROI或全局掩膜工具前,请确保导入图像中工件位置一致,否则会导致全局掩膜遮盖不同图像的实际位置不同,影响模型训练。若不同图像中工件位置差异较大,可使用级联模块进行调整。用户可首先使用目标检测或快速定位模块,完成工件位置定位或将图像调整一致后,再级联缺陷分割模块训练模型。
-
使用掩膜功能时,应确保掩膜全面覆盖非缺陷区域。
-
更多掩膜工具使用技巧,请参照进阶:使用掩膜工具排除训练干扰。
-
数据标注
-
新建类别:支持建立多个类别进行标注,可根据缺陷种类建立类别后按类别进行标注。
-
挑选少量数据进行标注:模型训练无需标注全部数据。精细、少量的标注有助于减少人工标注任务量,从而提升标注质量,加快训练和验证速度;还有助于在模型训练和验证阶段排查可能存在的问题,降低更换训练参数带来的时间成本。例如,本示例工程中,可挑选全部导入图像中的5张图进行标注。
-
选用合适的标注工具:本工程中,缺陷特征明显,轮廓清晰,推荐使用智能标注工具。
-
标注差异较大的缺陷:请严格遵循数据标注规范标注数据,以免影响模型训练。尽量避免反复多次标注缺陷特征高度相似的图像,选择缺陷特征差异较大的图像(如缺陷位置、数量、面积、形状、颜色、轮廓等不同)进行标注。标注时,注意贴合缺陷边缘轮廓,标注不要超出缺陷区域范围。若使用掩膜功能,避免掩膜区域和标注区域重合。
-
例如,下面两张图中缺陷的位置分布、形状均相似,仅缺陷亮度略有不同。为提升训练效率,减少人工标注工作量,只标注一张图片即可。
-
下图中,缺陷差异较大(缺陷数量不同,缺陷位置不同),两张图均需要标注。
长按Ctrl键并向上滚动鼠标中键可以放大图像,方便更精准地标注。
-
-
将标注过的图像加入训练集:标注完成后,筛选出所有标注过的图像,划为训练集,参与模型训练。训练模型时,建议使用少量、精细标注的图像作为训练集,降低排查问题和更换训练参数的时间成本。
-
设置至少一张OK图(可选):选择一张无缺陷的图像设置为OK图并移动到训练集中。在左侧数据列表中一张无缺陷的图像后,可点击标注工具栏中的
,或右键单击图像选择设置为OK,之后再右键单击图像选择移到训练集。
训练模型
-
配置参数:单击训练选项卡下训练参数设置右侧的
按钮,根据实际情况,配置训练参数。请参阅训练模型了解各参数说明。
-
配置数据增强参数,在原有数据的基础上丰富训练数据。数据增强参数的作用是在训练数据有限的情况下,提升模型的泛化能力。本示例工程中,根据实际情况,调整数据增强选项卡下的参数,如下图所示:
-
即使工件的摆放位置、光照等条件都高度一致,也仍然建议设置一定量的数据增强参数,以获得更好的训练效果。设置数据增强参数时,需确保增强后的图像中缺陷的特征不被破坏,必要时应禁用相关数据增强参数,以免影响模型训练效果。本示例工程中,多锡缺陷可能分布于焊盘的任何位置,不同的缺陷间大小、亮度、形状有可能不同,采集图像时的光线条件也可能有差异,因此本示例工程无需禁用任何数据增强参数项。
-
通常情况下,无需设置过大的数据增强参数值。
-
-
配置训练参数。通常情况下,建议使用评估间隔轮次、学习率、GPU ID等参数的默认设置。
-
若缺陷分割任务难度较大、精度要求高,建议将模型类型设置为高精度。本示例工程中,由于缺陷面积较大、轮廓清晰,使用高速度模型即可满足需求。
-
调整输入图像尺寸参数时,务必确保原始图像在经过缩放之后,仍可清晰观察到标注图和原始图像中的缺陷区域,否则可能导致训练效果不佳。用户可在图像列表中选中任一图像,单击右键,并在弹出的选项列表中单击缩放预览,确认图像的缩放效果。若能清楚观察到原始图像中的缺陷区域和标注图中的标注区域,则表明设定的输入图像尺寸满足要求。
-
在输入图像尺寸满足要求的情况下,较小的输入图像尺寸有助于加快模型训练和推理速度。
-
较大的输入图像尺寸有利于验证区域和缺陷区域轮廓的拟合,提高模型精度,但会增加迭代轮次和训练轮次。
-
若图像尺寸较大而缺陷区域较小,在最大的输入图像尺寸下仍无法看清标注区域和缺陷区域,可使用网格剪切工具,将图像剪切成大小相同的小图,便于检出较小的缺陷。
-
-
在显卡运算能力支持的情况下,可适当增加批量大小,以提升训练推理速度。
-
首次开启训练时,推荐使用较大的总轮次(500以上),便于观察模型精度曲线,选择最佳模型。若训练总轮次过小,可能导致模型未到达最高精度时训练就已经停止。例如,本示例工程中,首次开启训练前可将总轮次设为500。
-
-
启动训练:参数配置完成后,单击训练选项卡下的训练按钮,即可开始训练模型。
-
通过训练信息观察训练情况:在训练选项卡下的训练信息栏,可实时查看模型训练信息。
-
通过训练图表窗口查看训练情况:单击训练选项卡下的显示图表按钮,即可在模型训练过程中实时查看模型精度曲线和损失曲线变化情况。精度曲线整体呈现上升趋势、损失曲线整体呈现下降趋势表明当前训练正常运行。
-
根据实际情况,提前中止训练(可选):当模型精度已经达到要求时,为节约时间,用户可单击训练中心按钮,在任务列表中选则工程后单击
中止训练。用户也可等待模型训练结束,观察最高精度等参数,初步判断模型训练效果。
若精度曲线在经过较多轮次后仍无上升趋势,表明当前模型训练可能存在问题。请中止模型训练流程,检查各参数设置,检查训练集中是否出现漏标错标,修改后重新启动训练。 |
验证模型
-
验证模型:训练完成或手动中止训练之后,单击验证选项卡下的验证按钮,验证模型。
-
检查训练集中模型的验证结果:验证结束后,可在验证选项卡的验证统计中查看验证结果数量统计;点击详细报表按钮可打开详细报表窗口,查看更具体的验证统计结果。报表中的标注结果匹配矩阵显示模型推理结果与人工标注之间的对应关系,可以此判断模型中各类别的匹配情况。矩阵纵向为人工标注数据,横向为推理结果;矩阵中蓝色单元格表示推理结果与人工标注一致,其余单元格表示存在误差,可用于模型优化参考。点击矩阵里的数值,软件主界面图像列表将自动筛选,只显示点击数值对应的图像。
若验证结果在训练集中存在漏检、错检,则说明模型训练效果不佳,请检查标注,调整训练参数,重新开始训练。 用户也可以点击详细报表窗口右下角的导出报表选择导出缩略图报表或原图报表。
不需要把测试集中所有存在漏检或错检的图像都标注后划分为训练集。可补充标注一部分图像,加入训练集,重新训练和验证模型,将剩余图像作为参考,观察验证结果,检验模型迭代效果。 -
重新开始训练:将新标注的图像加入训练集后,单击训练按钮,重新开始训练。
-
重新检查模型验证结果:训练结束后,再次点击验证按钮验证模型,重新检查模型在各数据集上的验证结果。
-
模型微调(可选):用户可启用开发者模式,在训练参数设置中启用模型微调。具体操作请参阅迭代模型。
-
不断优化模型:重复以上步骤,不断优化模型性能,直至模型达到使用要求。