【自有技术大讲堂】数据驱动的AI(系列8):用于监督学习的图像标注
成功的工业深度学习应用项目依赖于高质量的标签。在机器视觉领域,标签是人类提供的信号,用于指导模型如何识别特定的缺陷类别和如何突出缺陷区域。
什么是数据标签
根据定义,标注数据是使用标记或标签手动注释内容的过程。我们将添加这些标签的人称为标注人员。在计算机视觉领域,标注图像中的元素,然后在监督学习中使用标注好数据。标记的数据集用于通过示例教导模型。数据标签对于深度学习模式的成功至关重要,标签中的错误可能导致模型的成功率降低。
根据实际需求,有不同类型的数据标记。在目标检测任务中,我们不仅想知道目标对象的类别,而且想知道它们的位置信息,因此在图像中的目标对象周围绘制边界框。还有图像分类、语义分割和实例分割任务。我们使用类、分割图和实例分割图进行标记,如下图所示。
计算机视觉中数据标注的挑战
根据我们过去的经验,我们观察到的两个关键挑战:
与ImageNet和COCO等研究数据集相比,缺陷样本的数量相对较少。
标注人员对缺陷样品的判断不一致。
少数缺陷样本图像
现代质量控制程序已将检验线的缺陷率降低到1%以下。对于一些罕见的缺陷类别,缺陷样本可能仅显示百万分之一。因此,模型迭代只能收集每个缺陷类的少量唯一样本。
制造中的缺陷类别在日常生活中并不常见。有时缺陷被定义为“3厘米长的间隙”或“左上角反射光的毛发状划痕”。它们比猫、狗或摩托车更难贴标签。
图像数据标签不一致
对于相同的缺陷样品,不同的标注人员可能对图像中存在的缺陷类型有不同的意见。此外,同一标注人员可能会根据日期或时间做出不同的判断。
传统上,深度学习研究团队通过从大型团队收集大量样本来处理这种不一致性。在较大的一组数据中,偏差被平均化。然而样本数据数量非常有限。培养一支大型中小企业团队的时间过于昂贵。因此,我们需要一些其他方法来消除不一致性。
下面是一个示例图像,显示了目视检查中的明确缺陷与模糊缺陷。
获取数据标签的一致性
落地AI开发了一个解决上述两个挑战的过程。它包括几个关键步骤,我们将详细介绍这些步骤:
3,审查数据标签以保证质量
创建缺陷手册
缺陷手册提供了关键缺陷及其清晰定义的列表,并附有一些示例图像。当出现诸如“图像中的这个区域是否应该被认为是有缺陷的?”或“模型的预测是否正确?”之类的问题时,缺陷书为读者提供了准确的缺陷描述。
根据我们过去的经验,创建一个准确完整的缺陷手册是项目的关键之一。可以在缺陷手册中记录缺陷的正式定义,以便快速培训新的标签工以正确捕获缺陷。标注人员的判断与缺陷手册之间的差异将导致标签错误。
下面我们描述创建缺陷手册的关键要素。
记录项目背景和术语
根据我们过去的经验,许多人忽略了描述背景的这一步骤,直接列出了缺陷。然而,我们发现对项目背景和目的的详细描述会增强与标注人员的沟通,并使他们更加关注感兴趣的区域或区分关键缺陷和噪声。
大多数视觉项目都有特殊的前景和背景组成或特定领域的术语。它通过在缺陷书的开头介绍关键术语和解释图像布局来帮助读者理解。
指定每类缺陷
缺陷手册的每一部分都应提供特定类型缺陷的准确描述。包括它的主要视觉模式以及它可能出现在图像中的位置。我们发现,通过提供代表大多数缺陷(包括常见缺陷和一些边缘情况)的样本图像,可以非常有效地理解缺陷。包含一些具有相似图案但不是有效缺陷的图像的反例是有用的。这有助于标注人员正确地确定不同于其他缺陷的一类缺陷。
如果缺陷由几个不同的外观组成,那么为了避免混淆,请多创建几个小节来分别介绍它们。
提供如何标记缺陷的明确说明
在没有定义一套明确的标签说明的情况下开始标注,标签质量非常差,不同标注人员之间存在很大的不一致性。这个问题可以通过在开头定义一个清晰的标签书来避免。
如果正在绘制边界框或分割标签,以下是推荐的最佳做法:
紧紧围绕目标对象绘制标签
这些模型将根据其预测与标签的像素匹配程度而受到惩罚或奖励。如果在标签和对象之间保留不必要的边距,则会误导模型。
分别标记每个目标对象
标注可能会遇到这样的情况,即有一组小的目标缺陷对象距离靠近。用单独的边界框标记每个对象将花费时间,并使模型难以精确地与每个地面真相标签匹配。相反,绘制一个覆盖缺陷对象簇的大边界框的标准并不统一,且包含了许多无用背景区域进去。何时绘制单个边界框以及何时绘制单独边界框,在标注人员之间应该保持一致。
应经常更新缺陷手册
保持缺陷手册更新,以便所有标注人员都能了解有关缺陷的最新信息。当有一个新的缺陷类型或边缘案例样本时,是时候更新缺陷手册了。
建立缺陷标签共识
创建缺陷手册后,在标记所有数据之前,快速测试其准确性和覆盖范围。如果有错误的定义或缺陷手册中未充分涵盖的边缘案例,请尽早捕捉这些问题。依靠缺陷共识来评估人们是否对其缺陷定义和标签保持一致。
通常,将有三个人参与缺陷共识任务。我们要求标注人员和新标注人员参考缺陷手册为同一组缺陷样品贴上标签。它可以帮助我们发现任何可能的错位。建议的组成是一个标注人员、一个深度学习工程师(DLE)或一个额外的标注人员。标注人员将根据其知识和缺陷手册进行标记。而其他标注人员将完全依赖缺陷手册的指导,因为他们没有太多领域知识。
建议让DLE参与这一过程。通过参与缺陷共识任务,DLE将获得更多关于标签规则的上下文,并更好地理解缺陷定义。稍后在分析模型错误时,DLE可以快速判断错误是否是由于缺陷手册中的歧义造成的。这是我们见过的最常见的错误类型。
我们建议从整个数据集中随机抽取每类缺陷10个样本。这允许检查所有缺陷类,并覆盖每个类中的主要模式类型。然后要求每个标注人员独立标记这些样本。标注人员完成后,将为每个图像计算一致分数。对于对象检测和语义分割标签,将使用所有标注人员标记的类别和区域来计算一致性分数。
通过聚集所有图像的一致性得分来计算总体得分,得分反映了样本数据集中缺陷手册的准确性和完整性。对于获得非常低一致性分数的图像,请与标注人员讨论未对齐的根本原因。一旦确定了源,请更新缺陷手册中的相应部分。如果需要,将图像添加为数据标签示例。
建立缺陷共识并非一次性任务。每次更新缺陷手册,或在项目中添加新标签时,都要达成缺陷共识。这可确保标注人员在理解缺陷手册时达到相对一致。
审查质量保证数据标签
为了确保标签的质量,通常有一个审查过程。只有审核通过的标注图像才会运用于模型训练和评估。
凭借一本准确完整的缺陷手册,它可以帮助使用标注人员的知识培训标注人员。因此,现在可以让多个标注人员处理的数据集。建议使用两个或多个标注人员分别标记同一数据集。对于每个图像,指定多个标注人员进行标注,并且只接受所有标注人员之间高度一致的标签。
在标注完成后,将为每个图像计算一致性分数。这是基于类别以及所有标注人员标记的地区。可以设置最小阈值,以自动拒绝标签不一致的图像。查看剩余的图像,其一致性分数高于条形图。通过这样做,可以快速检查标记的数据集,并防止任何不一致的标签泄漏到下一步。
成功的DL项目正式化数据标签
我们有些项目花费了不必要的时间和痛苦的过程才能完成,主要是因为缺陷定义不明确或标签质量差。相比之下,拥有一个具有高质量标签的数据集将使整体工作更加轻松,整个项目的开发周期也更短。因此,在项目的早期阶段投入时间来明确缺陷定义和形式化标记是非常重要的。
我们在许多项目中重复了上述的标记过程。将缺陷定义形式化,并引入了标注人员关于如何将缺陷识别到缺陷手册中的启发式方法。在模型迭代阶段,培训标注人员以及评估模型预测是十分重要的。
有了缺陷共识,可以检查缺陷手册的准确性和完整性,根据标注人员之间的缺陷定义确定可能的不一致。在最后的标记步骤中,让多个标注人员标记同一数据集,然后只批准具有一致和明确标记的图像。一旦整个过程完成,数据就可以用于模型训练和评估。