Link to this section计算机视觉的数据收集与标注策略#
Link to this section简介#
任何计算机视觉项目成功的关键都在于有效的数据收集和标注策略。数据的质量直接影响模型的性能,因此理解与数据收集和数据标注相关的最佳实践非常重要。
Watch: How to Build Effective Data Collection and Annotation Strategies for Computer Vision 🚀
每一项关于数据的考量都应与你项目的目标紧密对齐。标注策略的改变可能会改变项目的重点或有效性,反之亦然。考虑到这一点,让我们仔细看看处理数据收集和标注的最佳方法。
Link to this section设置类别与收集数据#
为计算机视觉项目收集图像和视频涉及定义类别数量、寻找数据源以及考虑伦理影响。在开始收集数据之前,你需要明确以下几点:
Link to this section为你的项目选择正确的类别#
开启计算机视觉项目时的首要问题之一是包含多少个类别。你需要确定类别成员身份,这涉及你希望模型识别和区分的不同类别或标签。类别的数量应由你项目的具体目标来决定。
例如,如果你想监控交通,你的类别可能包括“汽车”、“卡车”、“公交车”、“摩托车”和“自行车”。另一方面,如果是在商店中跟踪商品,你的类别可以是“水果”、“蔬菜”、“饮料”和“零食”。根据项目目标定义类别有助于保持数据集的相关性和针对性。
当你定义类别时,另一个重要的区分是选择粗略还是精细的类别计数。“计数”是指你感兴趣的不同类别的数量。这个决定会影响数据的粒度和模型的复杂性。以下是每种方法的考量因素:
- 粗略类别计数:这些是更广泛、更具包容性的类别,例如“车辆”和“非车辆”。它们简化了标注并需要更少的计算资源,但提供的信息较少,可能会限制模型在复杂场景中的有效性。
- 精细类别计数:具有更细微区别的更多类别,例如“轿车”、“SUV”、“皮卡车”和“摩托车”。它们能捕捉更详细的信息,提高模型的准确性和性能。然而,它们更耗时、更费力,且需要更多的计算资源。
从更具体的类别开始非常有帮助,特别是在细节很重要的复杂项目中。更具体的类别让你能收集更详尽的数据,获得更深刻的洞察,并在类别之间建立更清晰的区别。这不仅提高了模型的准确性,而且在需要时更容易调整模型,节省了时间和资源。
Link to this section数据来源#
你可以使用公共数据集或收集你自己的自定义数据。Kaggle 和 Google Dataset Search Engine 等公共数据集提供了标注良好、标准化的数据,是训练和验证模型的理想起点。
另一方面,自定义数据收集允许你根据具体需求定制数据集。你可以用相机或无人机拍摄图像和视频、从网络爬取图像,或使用你组织内部现有的数据。自定义数据让你能更好地控制其质量和相关性。结合公共数据和自定义数据源有助于创建一个多样化且全面的数据集。
Link to this section避免数据收集中的偏见#
当数据集中的某些群体或场景被低估或过度代表时,就会出现偏见。这会导致模型在某些数据上表现良好,但在其他数据上表现不佳。避免AI 中的偏见至关重要,这样你的计算机视觉模型才能在各种场景中表现出色。
以下是你如何在收集数据时避免偏见的方法:
- 多样的来源:从许多来源收集数据,以捕捉不同的视角和场景。
- 平衡的代表性:包含来自所有相关群体的平衡代表性。例如,考虑不同的年龄、性别和种族。
- 持续监控:定期审查和更新你的数据集,以识别并解决任何新出现的偏见。
- 偏见缓解技术:使用诸如过采样代表性不足的类别、数据增强和公平感知算法等方法。
遵循这些实践有助于创建一个更稳健、更公平的模型,使其能在现实应用中良好泛化。
Link to this section什么是数据标注?#
数据标注是为标签数据以便使其可用于训练机器学习模型的过程。在计算机视觉中,这意味着用模型需要学习的信息来标记图像或视频。没有经过正确标注的数据,模型就无法准确学习输入和输出之间的关系。
Link to this section数据标注的类型#
根据计算机视觉任务的具体要求,有不同类型的数据标注。以下是一些示例:
- 边界框:在图像中物体周围绘制的矩形框,主要用于目标检测任务。这些框由它们的左上角和右下角坐标定义。
- 多边形:物体的详细轮廓,允许比边界框更精确的标注。多边形用于诸如实例分割等任务中,其中物体的形状很重要。
- 掩码:二值掩码,其中每个像素要么是物体的一部分,要么是背景。掩码用于语义分割任务,以提供像素级的细节。
- 关键点:在图像内标记的特定点,用于标识感兴趣的位置。关键点用于姿态估计和面部特征点检测等任务。
Link to this section常见的标注格式#
选择标注类型后,选择合适的格式来存储和共享标注非常重要。
常用的格式包括 COCO,它支持各种标注类型,如目标检测、关键点检测、stuff 分割、全景分割和图像描述,并以 JSON 存储。Pascal VOC 使用 XML 文件,在目标检测任务中很受欢迎。另一方面,YOLO 为每个图像创建一个 .txt 文件,包含物体类别、坐标、高度和宽度等标注,使其适用于目标检测。
Link to this section标注技术#
现在,假设你已经选择了标注类型和格式,是时候制定清晰客观的标记规则了。这些规则就像是整个标注过程中确保一致性和准确性的路线图。这些规则的关键方面包括:
- 清晰与详细:确保你的说明清晰。使用示例和插图来展示期望的结果。
- 一致性:保持标注统一。为标注不同类型的数据设定标准准则,以便所有标注遵循相同的规则。
- 减少偏见:保持中立。训练自己保持客观,尽量减少个人偏见,以确保标注的公平性。
- 效率:聪明工作,而非辛苦工作。使用能自动处理重复任务的工具和工作流,使标注过程更快、更高效。
定期审查和更新标记规则将有助于保持标注的准确、一致并与你的项目目标保持对齐。
Link to this section流行的标注工具#
假设你现在准备好进行标注了。有几种开源工具可用于简化数据标注过程。以下是一些实用的开放标注工具:
- Label Studio:一个灵活的工具,支持广泛的标注任务,并包含管理项目和质量控制的功能。
- CVAT:一个功能强大的工具,支持各种标注格式和可定制的工作流,使其适合复杂项目。
- Labelme:一个简单易用的工具,允许通过多边形快速标注图像,使其非常适合简单任务。
- LabelImg:一个易用的图形图像标注工具,特别擅长创建 YOLO 格式的边界框标注。
这些开源工具预算友好,并提供了一系列功能来满足不同的标注需求。Ultralytics Platform 还提供了一个内置的标注编辑器,支持检测、实例分割、姿态、OBB 和分类标注,并为空间任务提供了 SAM 驱动的智能标注。
Link to this section标注数据前需要考虑的其他事项#
在投入标注数据之前,还有几点需要记住。你应该了解准确性、精密度、异常值和质量控制,以避免以事倍功半的方式标记数据。
Link to this section理解准确性和精密度#
理解准确性和精密度的区别及其与标注的关系很重要。准确性是指标注数据与真实值之间的接近程度。它帮助我们衡量标签反映真实世界场景的程度。精密度则表示标注的一致性。它检查你是否在整个数据集中为相同的物体或特征赋予了相同的标签。高准确性和高精密度通过减少噪声并提高模型从训练数据中泛化的能力,从而带来训练效果更好的模型。
Link to this section识别异常值#
异常值是偏离数据集中其他观察结果的数据点。就标注而言,异常值可能是一个标记错误的图像,或者是不符合数据集其余部分的标注。异常值令人担忧,因为它们会扭曲模型的学习过程,导致预测不准确和泛化能力差。
你可以使用多种方法来检测和纠正异常值:
- 统计技术:要检测数值特征(如像素值、边界框坐标或物体大小)中的异常值,可以使用箱线图、直方图或 z-score 等方法。
- 视觉技术:要发现分类特征(如物体类别、颜色或形状)中的异常,请使用绘图图像、标签或热图等视觉方法。
- 算法方法:使用聚类(例如 K-means 聚类、DBSCAN)和异常检测算法等工具,根据数据分布模式识别异常值。
Link to this section标注数据的质量控制#
就像其他技术项目一样,质量控制是标注数据的必备环节。定期检查标注以确保其准确和一致是一个好习惯。这可以通过几种不同的方式完成:
- 审查标注数据的样本
- 使用自动化工具发现常见错误
- 让另一个人复核标注
如果你与多人合作,不同标注者之间的一致性很重要。良好的标注者间一致性意味着准则清晰,且每个人都以同样的方式遵循它们。这使每个人都保持一致,并确保标注的一致性。
在审查时,如果你发现错误,请纠正它们并更新准则以避免将来犯错。为标注者提供反馈并进行定期培训以帮助减少错误。拥有处理错误的强大流程能保持数据集的准确性和可靠性。
Link to this section高效的数据标记策略#
为了使数据标记过程更顺畅、更有效,请考虑实施以下策略:
- 清晰的标注准则:提供包含示例的详细说明,以确保所有标注者对任务的理解一致。例如,在标记鸟类时,明确是包含整只鸟还是仅包含特定部分。
- 定期质量检查:设定基准并使用特定指标来审查工作,通过持续反馈维持高标准。
- 使用预标注工具:许多现代标注平台提供 AI 辅助的预标注功能,这些功能可以通过自动生成人类随后可以精炼的初始标注,从而显著加快过程。
- 实施主动学习:此方法优先标记最具信息量的样本,这可以在维持模型性能的同时减少所需的总标注数量。
- 批量处理:将相似的图像组合在一起进行标注,以保持一致性并提高效率。
这些策略有助于保持高质量标注,同时减少标记过程所需的时间和资源。
Link to this section与社区分享你的想法#
向其他计算机视觉爱好者征求意见和问题可以帮助加速你的项目。以下是一些学习、排查故障和建立人脉的好方法:
Link to this section在哪里寻找帮助与支持#
- GitHub Issues: 访问 YOLO26 GitHub 仓库并使用 Issues 标签页来提出问题、报告错误并建议功能。社区和维护者随时为你解决面临的问题。
- Ultralytics Discord 服务器: 加入 Ultralytics Discord 服务器与其他用户和开发者建立联系、获得支持、分享知识并交流创意。
Link to this section官方文档#
- Ultralytics YOLO26 文档: 参考 YOLO26 官方文档,获取关于众多计算机视觉任务和项目的详尽指南及宝贵见解。
Link to this section总结#
通过遵循数据收集和标注的最佳实践、避免偏见,并使用正确的工具和技术,你可以显著提高模型的性能。与社区互动并利用可用资源将让你随时了解最新信息,并帮助你有效地解决问题。记住,高质量数据是成功项目的基石,正确的策略将帮助你构建稳健且可靠的模型。
Link to this section常见问题解答#
Link to this section在计算机视觉项目中,避免数据收集偏见的最佳方法是什么?#
避免数据收集中的偏见可确保你的计算机视觉模型在各种场景下表现良好。为了尽量减少偏见,请考虑从不同来源收集数据,以捕捉不同的视角和场景。确保所有相关群体(如不同年龄、性别和种族)之间具有平衡的代表性。定期审查和更新数据集,以识别并解决任何新出现的偏见。过采样代表性不足的类别、数据增强和公平感知算法等技术也有助于缓解偏见。通过采用这些策略,你将保持一个稳健且公平的数据集,从而增强模型的泛化能力。
Link to this section我该如何确保数据标注的高度一致性和准确性?#
确保数据标注的高度一致性和准确性涉及制定清晰客观的标记准则。你的说明应详细,并辅以示例和插图以阐明预期结果。通过为标注各类数据设定标准准则,确保所有标注遵循相同的规则,从而实现一致性。为减少个人偏见,请训练标注者保持中立和客观。定期审查和更新标记规则有助于保持准确性并与项目目标对齐。使用自动化工具检查一致性并从其他标注者那里获取反馈,也有助于保持高质量的标注。
Link to this section训练 Ultralytics YOLO 模型需要多少张图像?#
为了进行有效的迁移学习和使用 Ultralytics YOLO 模型进行目标检测,请从每类至少几百个标注对象开始。如果仅针对一个类别进行训练,请从至少 100 张标注图像开始,并训练约 100 个轮次。更复杂的任务可能需要每类数千张图像才能获得高可靠性和高性能。高质量的标注至关重要,因此请确保你的数据收集和标注流程严谨,并与你项目的具体目标一致。在 YOLO26 训练指南中探索详细的训练策略。
Link to this section有哪些流行的数据标注工具?#
几种流行的开源工具可以简化数据标注过程:
- Label Studio:一个灵活的工具,支持各种标注任务、项目管理和质量控制功能。
- CVAT:提供多种标注格式和可定制的工作流,使其适合复杂项目。
- Labelme:非常适合使用多边形进行快速且简单的图像标注。
- LabelImg:非常适合通过简单界面创建 YOLO 格式的边界框标注。
这些工具可以帮助提升你标注工作流的效率和准确性。有关广泛的功能列表和指南,请参考我们的 数据标注工具文档。
Link to this section计算机视觉中通常使用哪些类型的数据标注?#
不同类型的数据标注满足各种计算机视觉任务的需求:
- 边界框:主要用于目标检测,这些是图像中物体周围的矩形框。
- 多边形:提供更精确的物体轮廓,适用于实例分割任务。
- Masks:提供像素级细节,用于语义分割,以区分物体与背景。
- Keypoints:识别图像中特定的兴趣点,适用于姿态估计和面部特征点检测等任务。
选择合适的标注类型取决于你的项目需求。了解更多关于如何实施这些标注及其格式的信息,请参阅我们的 data annotation guide。