深圳Yolo 视觉
深圳
立即加入

利用Ultralytics 实现计算机视觉中的智能数据集管理

了解如何利用Ultralytics 在计算机视觉项目中实现更高效的数据集管理。轻松追踪、比较并优化您的数据集。

借助Ultralytics扩展您的计算机视觉项目

开始使用

视觉人工智能(即计算机视觉)自诞生之初便取得了长足进步,已从实验性研究发展成为驱动现实世界应用的核心技术。如今,人工智能爱好者可以利用易于获取的工具和框架,构建用于物体检测和实例分割等任务的强大模型。

然而,随着这些应用从实验阶段迈向生产环境,数据集管理仍然是一个至关重要却常被忽视的挑战。随着计算机视觉数据集的规模和复杂性不断增加,团队往往难以保持标注的一致性、track 不同版本间的track ,并确保整体数据质量。

即使是最先进的模型,如果其训练数据存在不完整、不平衡或管理不善等问题,在实际应用环境中也可能表现不佳。开发阶段的性能与实际应用中的可靠性之间日益扩大的差距,正是我们需要采取更系统化的数据集管理方法的原因。

另一个常见的局限在于,数据采集、标注和训练通常由不同的工具分别处理。这种分散的工作流程使得高效管理数据集变得更加困难,增加了数据不一致的风险,并延缓了迭代进程。

为了解决数据集管理和工作流割裂等视觉AI领域的瓶颈,我们近期Ultralytics 。这是一个端到端的集成工作空间,将数据集管理、标注、训练、部署和监控整合到一个统一的工作流中。 

通过将计算机视觉生命周期的各个阶段相互连接,可以更轻松地track 的变化、比较不同版本的性能,并持续优化数据以获得更佳效果。

图 1. 在Ultralytics 查看数据集图像的示例(来源

在本文中,我们将深入探讨Ultralytics 如何帮助您track、比较和优化数据集,从而构建更可靠的计算机视觉模型。让我们开始吧! 

数据集管理在计算机视觉中的重要性

计算机视觉模型的性能与其训练数据密切相关。模型的准确率——即预测正确的频率——不仅取决于算法,还取决于数据集能否充分反映现实世界的情况。 

简而言之,模型是直接从数据中学习模式的,因此数据集中的任何缺失、偏差或不一致都会影响其预测结果。换句话说,即使模型架构本身很强大,低质量的数据、错误的标注,或者图像未能充分涵盖现实世界中的各种变化(例如不同的光照条件、物体角度、背景或遮挡程度),都可能显著降低准确率。

这一点在模型微调时同样适用——即利用预训练模型,结合新的或更新的数据进行进一步训练,以使其更好地适应特定的应用场景或环境。由于模型的准确性在很大程度上取决于数据,因此妥善管理这些数据至关重要。 

数据集管理包括对数据进行整理、标注和持续更新,以确保其准确性和时效性。这有助于随着时间的推移不断提升性能,尤其是在使用新数据对模型进行重新训练或微调时。

数据集质量如何影响实际应用中的可靠性

计算机视觉的应用场景(例如安防监控系统)很好地说明了为何妥善的数据管理至关重要。这些系统需要在各种现实环境条件下都能可靠运行,包括不同的光照环境、摄像机角度、人群密集程度以及部分遮挡等情况。

如果训练数据未能涵盖这些变化,或者在不同场景和条件下物体的外观缺乏多样性,模型可能难以准确detect 。例如,一个主要在光线充足、环境整洁的场景中训练的模型,在光线较暗的环境或拥挤的场合中表现可能不佳。在安防系统中,这可能会导致事件漏报或误报。

为避免这种情况,必须确保数据集不仅干净且标注准确,还要保持平衡并持续更新。这意味着要发现数据中的缺失,随着情况的变化添加新样本,并确保不同类别和环境都能得到均衡的体现。 

借助更完整且结构化良好的数据集,模型能够更好地应对现实世界中的变异性,并生成更可靠的预测结果。

数据集管理的关键方面

那么,数据集管理具体是指什么呢?它包括对数据进行整理、标注和维护,以便在整个模型开发过程中有效利用这些数据。

例如,数据整理包括对数据集进行结构化处理,并将其划分为训练集、验证集和测试集。训练集用于训练模型,验证集用于监控性能并在开发过程中指导调整,而测试集则用于评估最终模型在完全未见数据上的表现。

与此同时,标注工作涉及为图像添加各类细节信息,例如类别标签、边界框或分割掩膜。由于模型是通过这些标注进行学习的,因此标注的准确性和一致性对于帮助模型识别有意义的模式并做出可靠的预测至关重要。

此外,维护数据集还包括随着时间的推移对数据进行审查和更新。这可能包括修正标注错误、删除低质量或重复的数据,以及添加新示例以涵盖缺失的情况或变化的条件。 

从更广泛的角度来看,数据集管理是一个持续的过程。随着模型的评估和新数据的收集,数据集需要不断更新,以反映现实情况和边界案例。追踪这些更新并比较不同版本,有助于团队了解哪些方面提升了性能,以及哪些地方还需要进一步调整。

使用Ultralytics 管理数据集

Ultralytics 提供了一个结构化的工作流,可在单一环境中管理数据集,涵盖从数据准备到导出的全过程。该平台旨在同时支持个人开发者和团队,无论您是独立工作还是跨项目协作,都能更轻松地以一致的方式管理数据集。

每个阶段的设计旨在简化数据集在模型开发生命周期中的组织、处理和使用流程。通过将这些步骤整合到一个平台中,该平台减少了流程的分散性,并使在各个工作流中保持一致性变得更加简单。

接下来,让我们逐一了解其中的关键步骤,以及该平台如何支持每个步骤。

将数据集上传至Ultralytics

在该平台上开始使用数据集非常灵活,有多种方式可以导入或复用数据。您可以上传自己的数据,也可以利用平台提供的公开数据集更快地入门。此外,您还可以克隆社区共享的现有数据集,并在此基础上进行开发。

该平台的社区功能让您能够轻松探索和复用现有成果。通过访问其他用户创建的数据集(包括数百万张图像和标注),您无需亲手收集和标注所有数据,即可快速入门。克隆数据集会在您的工作区中创建一份副本,让您可以在保留原始数据集的同时对其进行修改和扩展。

在文件上传方面,该平台支持单张图片、视频以及ZIP、TAR或GZ格式的数据集压缩包。此外,它还支持YOLO COCO等广泛使用的数据集格式,因此无需额外转换即可轻松导入现有数据集和标注。不仅如此,您还可以使用从平台导出的NDJSON文件上传数据集,从而在不同项目间无缝重建或复用数据集。

数据上传后,平台将通过结构化的处理流程对数据进行处理。这包括验证文件格式和大小、在必要时调整图像尺寸、解析标注信息,以及生成数据集统计信息。

例如,视频会被转换为帧,以便用于训练;而图像则经过优化和处理,以便更轻松地浏览和分析。处理完成后,数据集即可在平台内用于标注、分析和模型训练。

Ultralytics 上的数据标注

数据集上传后,可直接在平台内进行审查和标注。该平台内置了适用于多种计算机视觉任务的图像标注工具,例如目标检测、实例分割、姿势估计 、定向边界框(旋转框检测)检测以及图像分类。

图2. 使用Ultralytics 进行数据标注(来源

您可以使用这些工具手动创建标注,也可以借助AI辅助功能(如SAM智能标注)来加快标注速度。SAM,您可以通过与图像交互来生成蒙版、边界框或定向框,从而在保持准确性的同时加快标注流程。

通过Ultralytics 分析数据集质量

除了准备和标注数据外,了解数据集的质量对于构建可靠的计算机视觉模型至关重要。如果无法清晰掌握类别分布、标注质量、数据集划分以及数据在不同条件下的呈现方式等因素,就很难发现那些影响模型性能的问题。

Ultralytics 内置了多种功能,可帮助用户更高效地分析数据集。这些分析结果可在数据集界面中直接查看,涵盖“图像”、“类别”和“图表”等标签页。

在“图表”选项卡中,您可以查看数据集级别的统计信息,例如数据集划分(训练集、验证集和测试集)、类别频率,以及显示图像中对象出现位置的标注热力图。 

“类”选项卡按类详细列出了标注数量,便于发现类不平衡问题。与此同时,“图像”选项卡显示了图像级别的详细信息,例如图像尺寸、标注数量,以及各图像中标签的分布情况。

这些洞察有助于更轻松地发现诸如类别不平衡、场景缺失或数据分布不均等问题。例如,您可能会发现某些类别的样本非常少,或者大多数标注都集中在图像的特定区域。

除了数据分析之外,该平台还支持数据集整理和增强,即通过修复或删除有问题的数据来优化数据集,并基于现有数据生成变体,从而提升模型性能。用户可以直接在平台内进行这些优化操作,包括更新标注、添加新数据,或根据分析结果重新调整数据集的划分。

从Ultralytics 导出数据集

数据集准备并验证完成后,即可导出以便在不同环境中使用。这使您能够灵活地在任何您希望的地方使用计算机视觉数据,无论是本地训练模型、在云端训练,还是在其他工具和工作流中使用。

Ultralytics 支持多种导出格式,包括YOLO、COCO 和 NDJSON,便于将数据集集成到不同的训练工作流和工具中。

图 3. 从Ultralytics 导出数据集(来源

导出数据集会在特定时间点生成该数据集的固定快照,其中包括其图像、标注和结构。此功能非常有用,因为随着新数据的添加、标注的更新或划分方式的调整,数据集往往会发生变化。通过导出快照,您可以保留用于特定训练运行的数据集的精确版本。

这样一来,日后复现结果就变得更加简单,因为你可以再次使用相同的数据配置来训练模型,并比较不同数据集版本之间的性能表现。例如,你可以评估添加新图像或修正标注是否确实提高了模型的准确率,而不是去猜测究竟发生了什么变化。

导出操作以异步方式进行,数据集准备就绪后,即可下载并在本地、云端或离线训练环境中使用。

通过在Ultralytics 进行迭代来提升数据集质量

在机器学习和深度学习的工作流程中,即使在部署之后,数据集管理仍需持续进行,因为实际数据往往与训练时使用的数据存在差异。 

随着模型处理新的输入数据,数据集中的不足之处——例如低光环境、不同拍摄角度、物体遮挡或拥挤场景等缺失条件,以及标注错误——便愈发凸显,因此有必要随着时间的推移对数据进行优化。

有几种方法可以改进数据集。您可以添加新的图像或视频来涵盖缺失的场景,例如低光环境、不同的拍摄角度、物体遮挡或拥挤的场景,从而有助于减少数据中的盲点。 

与此同时,确保标注的准确性和一致性——例如正确标注对象以及精确的边界框或遮罩——有助于模型学习更可靠的模式。

这一过程通常遵循一个简单的循环:训练模型、评估结果、识别错误、改进数据集,然后重新训练。每个步骤都有助于发现诸如标注错误、数据缺失或样本不足等问题。

假设你正在开发一个用于detect 商店内detect 实时零售货架监控系统。数据集的早期版本可能未涵盖某些商品类型、光照条件或货架拥挤的情况。在评估过程中,你可能会发现模型在这些情况下难以detect 。

为了提升性能,您可以收集涵盖这些缺失场景的新图像,并在必要时更新标注。随着时间的推移,重复这一过程有助于模型在实际应用中变得更加准确和可靠。

Ultralytics 通过将数据集更新与训练和评估相连接,支持这一工作流程。借助内置的实验跟踪和性能指标,用户可以更轻松地监控进度,并随着时间的推移持续优化数据集。

使用Ultralytics 跟踪数据集的变化

在模型开发过程中,我们简要讨论了数据集随时间推移的演变情况。随着新数据的加入、标注的优化以及类别的更新,track 这些变化对于维护数据质量和确保模型性能的一致性至关重要。

以下是Ultralytics 支持数据集跟踪和版本控制的一些关键功能:

  • 数据集版本控制 您可以将固定的数据集版本保存为 NDJSON 快照。每个版本都会记录特定时间点的关键信息,例如图像数量、类别数量、标注数量以及数据集大小。这些版本会被存储起来,供日后下载,从而更方便地复现实验,并在不同数据集状态下比较结果。
  • “版本”选项卡:所有数据集版本均整理在“版本”选项卡中,您可以在此查看版本历史记录、为更改添加说明,并track 数据集随时间track 演变track 。
  • 与模型关联:在“模型”选项卡中,会显示所有基于该数据集训练的模型,包括mAP 等指标mAP 训练详情。数据集版本与训练运行相关联,这有助于您了解数据变化如何影响模型性能。
  • “错误”选项卡:该选项卡会突出显示处理过程中出现问题的文件,并提供错误详情和建议。这有助于您在训练前识别并修复诸如文件损坏或格式不支持等问题。
  • 数据集界面(“图像”和“类别”选项卡):通过这些视图,您可以浏览图像、查看标注、管理类别标签以及分析类别分布。筛选、排序和识别未标注图像等功能,使您能够更轻松地随时间推移监控数据集的质量。
  • 统计数据与图表:内置的数据可视化功能(如分位分布、分类频数和注释热力图)有助于track 数据分布track ,并在数据集演变过程中识别不平衡现象。
图 4. 在Ultralytics 分析数据集的类别分布(来源

在Ultralytics 将数据集与训练和部署关联

Ultralytics 将人工智能模型开发的各个阶段整合到一条统一的管道中。这简化了从原始数据到可投入生产的视觉人工智能应用程序的开发流程。

数据集准备并标注完成后,即可直接在平台内用于训练计算机视觉模型,例如Ultralytics 。在训练过程中,您可以通过内置仪表盘监控性能指标、track ,并评估模型的学习效果。

图5.Ultralytics 查看模型训练指标的界面(来源

训练完成后,可直接在浏览器中使用新图像对模型进行测试,以评估预测结果,并在部署前找出需要改进的地方。当模型表现良好时,即可将其部署到生产环境中。 

该平台支持将模型导出为多种格式,或通过推理服务和专用端点进行部署,从而使其能够在不同环境中运行。

部署完成后,内置的监控工具可帮助track 随时间推移的性能表现,包括与使用情况和模型行为相关的指标。这使得在实际应用中维护和改进视觉人工智能系统变得更加简单。

Ultralytics 数据集管理的最佳实践

在使用Ultralytics 管理数据集时,请注意以下关键因素:

  • 使用过滤器查找缺失数据:利用过滤工具识别未标注或覆盖不足的数据,从而更顺畅地完成标注并提高覆盖率。
  • 尽早修复错误:在训练前,利用“错误”选项卡进行质量控制,以发现上传失败、文件损坏或格式不兼容的情况。
  • 持续更新数据集:添加新数据、修正标注,并在出现边界情况时将其纳入。这有助于提高数据覆盖率,并确保模型在实际应用场景中表现可靠。
  • 请谨慎管理数据集的分割:确保训练集、验证集和测试集之间保持良好的平衡。您可以手动调整分割比例,或在需要时使用自动重新分配功能。

如需进一步了解Ultralytics ,请查阅Ultralytics 官方Ultralytics

主要要点

随着计算机视觉项目的规模扩大,有效管理数据集的重要性已不亚于模型开发。采用结构化的数据集管理方法,有助于提升数据质量、优化工作流程,并随着时间的推移持续提升模型性能。

Ultralytics 通过将数据集管理、训练和部署整合到单一工作流中,简化了这一流程。通过采用结构化的数据集管理方法,团队能够降低复杂性、提高效率,并构建更具可扩展性和可靠性的计算机视觉系统。

加入我们不断壮大的社区,并浏览我们的GitHub 仓库以获取 AI 资源。若想立即开始构建视觉 AI 应用,请查看我们的许可方案。访问我们的解决方案页面,了解农业领域的 AI如何重塑农业,以及医疗保健领域的视觉 AI如何塑造未来。

让我们携手共创人工智能的未来!

开启您的机器学习未来之旅