在处理非结构化数据时,尤其是图像数据,经常面临管理上的挑战。这些挑战源于不同标注格式和数据集版本之间的复杂性。与表格数据相比,进行数据移动、更改或删除筛选子集等操作需要编写自定义脚本。即使对于熟悉编程的人来说,创建、测试和维护这些脚本所需的时间也可能随着项目规模的扩大而急剧增加。处理图像数据的困难会减慢工作进度,阻碍实现部署准确计算机视觉模型的目标。
新的标签过滤预处理步骤允许根据标签来策划数据集的不同版本。可以选择从某个版本中排除带有特定标签的图像,或者完全排除它们。通过标签过滤和巧妙使用标签,可以快速策划数据集,例如“从训练数据中移除昨天上传的所有图像,并包含widget类别”。在Roboflow之外执行相同的逻辑将需要处理JSON、元数据和代码。本文的其余部分提供了一些灵感,展示如何可以在计算机视觉工作中使用标签过滤。如果找到了其他策划数据集的方法,请在论坛上告诉!
在能够使用标签过滤功能之前,需要标签!主要有三种方式来标记图像:上传时、从“图像”标签页以及直接查看图像时。
当将图像批量上传到Roboflow时,可以选择标记它们。这个功能最适合用于跟踪图像的来源。
可以选中图像并点击“已选图像”按钮来添加标签。在这个例子中,正在为测试集中包含类别2的所有图像添加标签。
当直接查看图像时,可以在用户界面的左下角添加标签到该图像。确保点击了垂直导航栏中的“注释”。
从训练中排除图像是很常见的,数据集中可能有一些图像还没有准备好被包括在模型训练中。这可能是因为质量低(例如,太模糊而无用),图像需要重新标注,或者只是想看看模型在更少数据上的表现如何。要实现这一点,标记相关图像,然后在标签过滤预处理步骤中排除该标签。
许多Roboflow用户需要在广阔的地理区域部署模型。如果位置差异足够大,训练特定位置的模型而不是一个通用模型可能是有利的。要在保持所有数据在同一个项目中组织的同时测试这些特定位置的模型,根据它们的位置在上传时标记图像。然后,在版本生成期间`要求`特定的位置标签。
验证集中的图像对模型性能的影响比训练数据集中的图像更大。可以有选择地过滤验证集中的图像,看看哪些类型的图像能带来最好的模型准确性。假设想运行一个实验,看看如果验证集过度索引模型挣扎的“困难”图像,整体模型是否会变得更好。首先,将数据集过滤为只包括验证集,并以两组标记图像,`Easy`和`Tough`。然后训练模型,`排除`一个或另一个标签,看看哪个表现得最好。只要记住用相同的测试集测试这些模型,以确保准确性指标是可比的!
除了为训练创建策划的版本外,还可以使用标签过滤有选择地导出图像以添加到另一个项目中。当一个数据集包含另一个数据集所需的一小部分图像时,这通常是必要的步骤。首先,搜索数据集以找到相关图像(比如说,所有包含某个类别的图像)。然后选择并标记它们。一旦它们被标记,创建这个数据集的版本(没有增强,因为只想要原始图像),并导出它以便重新上传到第二个数据集中。
当数据集中的一个或两个类别代表性不足时,模型性能可能会受到负面影响。如果模型在图像包含代表性不足的类别B时检测到过度代表性的类别A,模型可能会从类别重新平衡中受益。要成功地重新平衡类别,根据它们是否包含代表性不足的类别将所有图像分成两组,并相应地标记它们。生成两个版本;每个版本应该`要求`一个标签。当生成版本时,对于代表性不足的版本,使用更多的增强应用到每个图像上。完成后,导出每个版本,并在Roboflow中的新项目中重新组合它们进行训练。