如何通过设计稿图片,批量泛化出大量训练样本
2024-01-27 20:59:48
在 UI2CODE 项目中,我们大量使用了深度学习方法来做一些物体检测。而深度学习模型的训练,避免不了存在需要大量的样本。在这篇文章中,我们将介绍我们如何利用工具,批量泛化出大量样本,为模型训练提供数据保障。
样本现状
我们的模型要解决的问题是在一个设计稿图片上识别出基础控件等目标物体。以识别 button
为例,其样本示意图如下:
上图中左半部分是我们希望模型可以学会识别的 button
样本,右半部分是我们希望模型可以避开的负样本。
从图中我们可以看出,同一个目标物体在不同的设计稿中,展现出来的样式、位置、大小等信息都存在着很大的差异性。而这些差异性使得我们很难在一个设计稿图片上获得大量目标物体的样本,这严重制约了模型训练。
批量泛化样本工具介绍
为了解决上述问题,我们开发了一个批量泛化样本的工具。该工具可以将一个设计稿图片上的目标物体泛化出多个具有不同样式、位置、大小等信息的样本。
该工具的原理如下:
- 首先,我们需要将设计稿图片中的目标物体标注出来。
- 然后,我们将标注好的目标物体按照一定的规则进行变形,比如平移、旋转、缩放等。
- 最后,我们将变形后的目标物体合成到新的设计稿图片上,就得到了一个新的泛化样本。
工具使用示例
下面我们以识别 button
为例,介绍一下该工具的使用方法。
首先,我们需要将设计稿图片中的 button
标注出来。我们可以使用任意一款图像标注工具,比如 LabelImg。
标注完成后,我们将标注好的 button
保存为 JSON 格式的文件。
然后,我们就可以使用该工具将标注好的 button
泛化出多个样本。
该工具提供了多种泛化方式,比如平移、旋转、缩放等。我们可以根据需要选择不同的泛化方式。
泛化完成后,我们将泛化出的样本保存为新的设计稿图片。
最后,我们将新的设计稿图片导入到模型训练集中,就可以使用这些泛化出的样本训练模型了。
泛化样本的效果
我们使用该工具泛化出了大量的 button
样本,并使用这些样本训练了一个 button
检测模型。
实验结果表明,使用泛化样本训练的模型在 button
检测任务上的准确率要比使用原始样本训练的模型高出 10% 以上。
这说明了该工具可以有效地帮助我们解决样本不足的问题,并提高模型的训练效果。
结语
在本文中,我们介绍了我们开发的批量泛化样本工具。该工具可以将一个设计稿图片上的目标物体泛化出多个具有不同样式、位置、大小等信息的样本。
我们使用该工具泛化出了大量的 button
样本,并使用这些样本训练了一个 button
检测模型。
实验结果表明,使用泛化样本训练的模型在 button
检测任务上的准确率要比使用原始样本训练的模型高出 10% 以上。
这说明了该工具可以有效地帮助我们解决样本不足的问题,并提高模型的训练效果。