Python的计算机视觉标注工具(CVAT)SDK

2025年3月5日 | 阅读 4 分钟

计算机视觉标注工具 (CVAT) 是一个开源的设备,用于在计算机视觉应用中标注图像和视频数据。它支持多种标注任务,包括物体检测、分割和跟踪。CVAT 的 Python SDK 允许用户以编程方式与 CVAT 服务器进行交互,自动化上传数据集、创建标注和下载已标注数据等流程。

计算机视觉与标注

计算机视觉是人工智能的一个分支,它使计算机能够从其环境中分析和理解视觉数据。机器学习模型需要大量的已标注数据才能学习并执行物体检测、图像分类和分割等任务。

标注是对照片和视频进行标记和注释,以识别物体、边界和其他相关信息。这些标注对于训练机器学习模型至关重要。标注的类型多种多样,包括:

  • 边界框:矩形框用于表示图像中的物体。
  • 多边形:比边界框更精确地描绘物体的形状。
  • 折线:用于描述高速公路和边界等线性特征的线条。
  • 关键点:用于识别面部特征或骨骼关节等特征的特定点。

标注的重要性

标注提供了机器学习算法用来学习模式和预测结果的真实情况数据。高质量的标注对于以下方面至关重要:

  • 训练模型:精确细致的标注有助于创建在现实场景中表现良好的可靠模型。
  • 在测试和验证过程中,标注可作为评估模型性能的标准。
  • 提高准确性:一致且精确的标注可以提高机器学习模型的整体准确性。

设置 CVAT 和 Python SDK

  1. 安装 CVAT: 要安装 CVAT,请按照 CVAT GitHub 上的安装说明进行操作。
  2. 安装 Python SDK
    • 请确保您的计算机上已安装 Python。
    • 使用 pip 安装 cvat-sdk

语法

使用 Python SDK

1. 连接到 CVAT 服务器

  • 首先,我们将导入指定的模块并设置一个客户端实例以连接到 CVAT 服务器。

2. 上传数据

  • 然后,我们将把照片或视频上传到服务器以创建一个新任务。

3. 创建标注

  • 我们可以对上传的任务使用标注。此过程涉及定义形状并将它们关联到轮廓。

4. 下载标注

  • 我们将能够以多种格式下载标注,包括 COCO、Pascal VOC 和 CVAT XML。

5. 管理项目和任务

  • 我们可以利用这些项目来处理多个任务。
  • 我们还可以管理任务内的任务,以便将工作量分配给多个人。

代码

输出

 
Task 'Example Task13' created successfully.
Annotations exported to /home/user/annotations/exportedAnnotations.json.   

说明

  • 连接到 CVAT 服务器并使用所需的凭据登录。
  • 使用提供的标题和名称创建一个新任务。
  • 将一组图像文件上传到新创建的任务。
  • 创建一个多边形标注并将其应用到任务。
  • 将标注导出为 COCO 格式,并显示成功消息。

注意

  • 请将 'your_username', 'your_password', 'path/to/image001.jpg', 'path/to/image002.jpg', 和 'path/to/exportedAnnotations.json' 替换为适当的值。
  • 调整时间。sleep(5) 的时长取决于服务器处理提交文件所需的时间。通常,这是一种简单的等待策略;对于更强大的处理,请尝试轮询任务状态直到文件准备就绪。

CVAT 架构

理解 CVAT 的架构可以帮助您更好地利用其功能。CVAT 包含几个组件:

  • 前端:前端是用于标注图像和视频的基于 Web 的客户端界面。它使用 React 和 Redux 构建。
  • 后端:处理前端请求并与数据库交互的服务器端组件。它使用 Django 和 Django REST 框架构建。
  • 数据库:数据库存储所有标注信息、任务数据、用户信息等。PostgreSQL 被广泛使用。
  • 存储:这负责管理已标注照片和视频的存储。它可以是本地的或基于云的(例如 Amazon S3)。
  • 任务管理:管理标注任务的创建、分配和管理。

CVAT Python SDK 是一个有价值的工具,可用于自动化和管理计算机视觉中的复杂标注操作。了解其架构、理论基础和高级功能,可以显著提高用户标注流程的效率和准确性。它不仅加快了处理大型数据集的速度,还增强了标注者的协作,并最终提高了机器学习模型的质量。使用 CVAT 及其 Python SDK 可以构建更强大、更可靠的计算机视觉应用程序,最终为该领域的进步做出贡献。