跳到主要内容

SO Development

如何使用 CVAT 从设置到提取项目

目录
    添加标题以开始生成目录

    介绍

    在机器学习和人工智能领域,准确且标注完善的数据对于训练出性能优异的模型至关重要。CVAT (计算机视觉标注工具)是一款开源标注工具,专为标注图像和视频数据而设计,支持目标检测、图像分割和视频跟踪等多种应用场景。

    本指南将引导您完成从在本地机器上设置 CVAT 到管理项目、执行注释以及提取注释数据进行机器学习模型训练的所有步骤。无论您是初学者还是经验丰富的用户,本指南都将帮助您全面了解如何有效使用 CVAT。

    什么是 CVAT?

    CVAT 是英特尔开发的一款基于 Web 的工具,旨在简化计算机视觉应用中图像和视频的标注流程。它允许团队协作标注具有不同格式和任务的大型数据集,例如创建边界框、图像分割和目标跟踪。

    CVAT 的主要特点
    • 用户友好的界面:CVAT 提供了直观的界面,方便初学者和专家浏览。
    • 多种注释格式:它支持多种注释格式,包括PASCAL VOC、COCO、TFRecord 等,可以导出用于机器学习模型。
    • 任务型管理:项目被划分为可管理的任务,可分配给不同的注释者。这有助于有效地组织数据注释工作,尤其是对于大型团队而言。
    • 机器学习模型集成:CVAT 允许您集成预先训练的机器学习模型,以通过自动标记功能加快注释过程。
    • 支持视频和图片注释:您可以使用边界框、多边形、关键点和语义分割等工具注释静态图像和动态视频数据。
    使用 CVAT 进行数据注释的好处
    • 可扩展性:CVAT 非常适合处理大型数据集,使其成为企业级项目的理想选择。
    • 协同环境:多个用户可以在同一个项目上工作,并且注释者、主管和管理员的角色明确。
    • 搭建你自己的:用户可以使用插件或自定义脚本修改或扩展该工具的功能。
    CVAT 与其他注释工具

    尽管 CVAT 很受欢迎,但还有其他标注工具,例如Labelbox SuperviselyVGG Image Annotator (VIA) 。然而,CVAT 具有诸多优势,包括其开源特性、易用性以及对不同数据类型的灵活处理,使其成为大规模标注任务的有力竞争者。

    创建 CVAT 账户

    在 CVAT 网站上创建帐户很简单。请按照以下步骤操作:

    1. 访问 CVAT 网站: 导航 CVAT 官方网站.
    2. 点击“注册”:在主页上,找到并点击“注册”按钮。
    3. 填写您的详细信息:输入您的电子邮件地址、创建安全密码并提供您的全名。
    4. 验证邮件:检查您的收件箱中的验证电子邮件,然后单击提供的链接来确认您的帐户。
    5. 登录:返回CVAT网站,使用您的电子邮件和密码登录,开始使用该平台!

    享受使用 CVAT 进行注释的乐趣

    设置 CVAT

    2.1先决条件

    在设置 CVAT 之前,请确保您已准备好以下事项:

    • 操作系统:CVAT 可在 Linux、macOS 或 Windows 系统上运行。Docker 用于容器化安装过程,从而简化了跨系统安装。

    • 软件工具

      • Docker :CVAT 使用 Docker 进行容器化,因此您的机器上需要安装 Docker 和 Docker Compose。

      • Git :从 GitHub 克隆 CVAT 存储库所必需的。

      • Python :运行与 CVAT 相关的脚本或附加服务所必需的。

    2.2安装过程

    1. 安装 Docker

    首先,确保已安装 Docker 和 Docker Compose。以下是每个平台的基本指南:

    对于Linux:运行以下命令安装Docker 和 Docker Compose:
    打坏

    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io
    sudo apt-get install docker-compose
    Linux的

    对于 macOSWindows 系统:从官方网站下载 Docker Desktop,并按照安装说明进行操作。

    2. 克隆 CVAT 存储库

    安装 Docker 后,您可以克隆 CVAT 存储库:

    git clone https://github.com/openvinotoolkit/cvat.git
    cd cvat
    windows-mac

    3.构建Docker容器

    运行以下命令来设置 Docker 容器并在本地构建 CVAT:

    docker-compose build
    docker-compose up

    这将初始化必要的服务,并使 CVAT 可从您的本地服务器访问(通常是http://localhost:8080 )。

    4.创建超级用户帐户

    Docker 容器启动并运行后,您可以通过 Web 浏览器访问 CVAT http://localhost:8080。第一次登录时,您需要创建一个超级用户帐户:
    提供所需的用户名、电子邮件和密码。

    docker exec -it cvat bash
    python3 manage.py createsuperuser
    
    3 初始配置
    • 数据库设置:CVAT支持两种类型的数据库: SQLite (默认,适用于小型项目)和 PostgreSQL的 (适用于较大的项目)。建议使用 PostgreSQL 来处理较大的数据集和多用户环境。
    • 电子邮件通知:如果您想要为用户启用电子邮件通知,请在 泊坞窗,compose.yml 文件中。
    4 排除安装问题

    安装过程中常见的问题包括:

    • 端口冲突:如果端口 8080 正在使用,请更改端口 泊坞窗,compose.yml.
    • 数据库错误:确保您的数据库正在运行且配置正确。对于 PostgreSQL,请检查连接字符串。
    • 权限问题:如有必要,使用提升的权限运行 Docker 命令(例如, 须藤).

    浏览 CVAT 界面

    1 CVAT 仪表板

    登录 CVAT 后,您将看到仪表板,它是管理项目和任务的中心枢纽。仪表板分为几个部分:

    • 项目管理 :管理所有活跃和已存档的项目。
    • 用户管理:添加用户并分配角色,例如注释者、主管或管理员。
    • 任务列表:查看与您的项目相关的所有任务及其状态。
    2 创建和管理项目

    要创建新项目:

    1. 项目 部分并单击 创建新项目.
    2. 输入项目名称、描述,并选择注释类型(例如, 影像分类, 物体检测).
    3. 上传您的数据集(通过直接文件上传或 URL)。
    4. 设置适当的配置,如图像大小、标签选项等。

    一旦创建项目,就可以将任务分配给注释者,并可以跟踪进度。

    3 用户权限和角色

    在 CVAT 中,用户角色定义访问级别和功能:

    • 管理員:完全控制项目,包括任务创建、用户管理和设置。
    • 注释者:仅限于注释任务并提交审核。
    • :可以审查、编辑和批准注释,确保质量控制。
    CVAT 仪表板

    使用 CVAT 进行注释

    注释是 CVAT 的核心功能。它对于为机器学习模型准备数据集至关重要。本节探讨 CVAT 中可用于注释图像和视频的工具和技术,以及示例、最佳实践和案例研究,以确保准确、高效的注释。

    1 将数据导入 CVAT

    在开始注释数据之前,需要先将其上传到 CVAT。CVAT 支持多种图像和视频文件类型。

    1. 支持的数据格式
    • 图像优化 :JPEG、PNG、TIFF、BMP 等。
    • 视频:MP4、AVI、MOV、MKV 等。

    计费示例:

    • 对于涉及交通摄像头的物体检测任务,您可以上传一个文件夹 JPEG图像 街景或 MP4视频 监控交通的摄像头拍摄的片段。每一帧或视频片段都将根据手头的任务进行注释。
    2. 上传数据

    要上传数据,请按以下步骤操作:

    1. 立即开始,点击 项目 您想要添加数据的位置。
    2. 选择 创建任务 或编辑现有任务。
    3. 点击 上传文件,从本地机器中选择数据集,然后上传。

    一旦数据上传完成,CVAT 就会将其组织成可管理的任务,您可以开始进行注释。

    2 注释工具概述

    CVAT 提供多种注释工具,每种工具都针对不同类型的注释而设计。以下是每种工具的概述及其使用方法。

    1.边界框

    边界框用于标记图像和视频中物体的位置。该工具对于目标检测任务至关重要,在目标检测任务中,您需要定位和分类图像或视频帧中的物体,例如汽车、行人或动物。

    计费示例:

    在一个包含道路上汽车图像的数据集中,您可以使用边界框来识别每辆车,并用适当的类别(例如,汽车卡车摩托车)对其进行标记。

    步骤:
    • 点击 边界框 注释工具栏中的工具。
    • 单击并拖动以在对象周围创建一个框。
    • 分配标签(例如, 汽车行人交通标志).
    • 如果需要,可以通过拖动框的边缘来调整它。
    最佳实践:
    • 平台精度:确保边界框紧密包围物体,不留下明显的空白空间。

    一致性:在整个数据集中始终应用相同的标签约定(例如,始终使用car表示车辆,而不是vehicleautomobile)。

    边界框
    2.多边形

    多边形比边界框更灵活,适用于分割任务,在这些任务中,你需要标注不规则形状对象的精确边界。

    计费示例:

    在卫星图像数据集中,您可能需要标注森林区域,而森林区域的形状可能非常不规则。使用多边形,您可以创建森林边界的精确轮廓。

    步骤:
    • 点击 Polygon 工具。
    • 单击即可在对象周围放置顶点。
    • 通过将最后一个顶点连接到第一个顶点来闭合多边形。
    • 标记多边形(例如, 森林, 建设等)。
    最佳实践:
    • 最小化复杂性:使用合理数量的顶点确保多边形紧密遵循物体的形状,但避免过多的细节。
    • 闭合形状:始终确保多边形封闭,以避免数据错误。
    多边形
    3. 直线和折线

    线和折线用于注释具有连续或路径状结构的对象,例如道路、管道和轨道。折线对于注释卫星图像中的道路网络或注释视频中移动物体的路径特别有用。

    计费示例:

    对于卫星图像中的道路检测任务,您可以使用折线来描绘道路网络。

    步骤:
    • 点击 折线 工具。
    • 单击以放置要注释的路径上的点。
    • 单击端点来完成折线。
    最佳实践:
    • 直线代表直线物体:在适用的情况下使用直线(例如高速公路或铁路)以减少注释的复杂性。
    • 详图:对于河流等弯曲的物体,确保放置足够的点以紧跟该物体。
    折线
    4. 要点

    关键点用于标注物体上的特定点。该工具对于地标标注任务至关重要,在地标标注任务中,您需要定位特定特征,例如面部地标或人体姿态中的关节位置。

    计费示例:

    在面部识别任务中,您可以使用关键点来注释图像中个人的眼睛、鼻子和嘴巴。

    步骤:
    • 点击 关键点 工具。
    • 单击您想要标记的特定位置(例如,眼角、鼻尖)。
    • 标记每个点(例如, 左眼, 右眼, 嘴角).

    最佳实践:

    • 准确放置:尽可能精确地将关键点放置在相关特征上,以保持一致性和数据质量。
    • 使用足够的积分:对于人体姿势检测,注释所有相关关键点(例如肘部,肩膀,膝盖等)。
    关键点
    5. 语义分割

    对于需要像素级精度的任务,语义分割是必需的。这种技术需要对图像中的每个像素进行标记,以识别不同的对象或区域。

    计费示例:

    在医学成像任务中,您可能需要分割 CT 扫描或 MRI 图像中的组织区域。

    步骤:

    • 点击 语义分割 工具。
    • 使用画笔在图像中感兴趣的区域上绘画。
    • 为分割区域分配正确的标签(例如, , 健康组织).

    最佳实践:

    • 持续一致:保持标记像素区域的一致性(例如,始终使用相同的阈值来确定构成 健康组织).
    • 精致:仔细细化分割区域的边缘,以避免错误标记小细节。
    分割
    3 注释视频数据

    CVAT 还支持视频标注,引入了逐帧标注和对象跟踪等附加功能。

    1.逐帧注释

    在视频注释中,对象可能会从一帧到下一帧改变位置、形状或方向。您需要逐帧注释这些对象,确保每帧的注释都准确无误。

    计费示例:

    在跟踪移动汽车的监控视频中,您会在视频的每一帧中在汽车周围绘制边界框。

    步骤:

    • 选择工具(例如边界框或多边形)。

    • 注释第一帧中的对象。

    • 移动到下一帧,将注释调整到对象的新位置,并重复直到视频结束。

    2. 物体追踪

    对于运动物体,CVAT 支持自动跟踪插值,以加快标注速度。此功能使用算法跟踪连续帧之间的物体。

    计费示例:

    在车辆跟踪任务中,一旦在第一帧中注释了车辆,CVAT 就可以使用跟踪工具自动将边界框或多边形传播到后续帧。

    步骤:

    • 在第一帧中注释一个对象(例如,在汽车周围画一个边界框)。

    • 选择跟踪选项,使 CVAT 能够跨帧跟踪对象。

    视频注释的最佳实践:

    • 关键帧注释:注释对象发生显著变化的关键帧,让 CVAT 处理中间帧的插值。

    手动校正:即使启用跟踪,也需要手动调整物体运动偏离预期方向的帧的注释。

    影片注解
    4 协作注释工作流程

    在大型项目中,多个注释者可能在同一个项目上工作。CVAT 的协作功能使团队之间的注释管理和协调变得容易。

    1. 分配任务
    • 管理员角色:管理员创建任务、设置截止日期,并为每个任务分配标注员。

    • 标注员角色:标注员会被分配任务,然后开始标注分配给他们的图像或视频。

    • 主管角色:主管审核并批准注释,并在必要时提供反馈。

    计费示例:

    在为自动驾驶汽车注释道路图像的大型项目中,管理员可以将数据集划分为较小的任务,为每个注释者分配一个图像子集进行处理。主管可以审查工作并批准符合质量标准的注释。

    2.反馈和质量控制

    利用评论审核功能,主管可以向标注者提供反馈,确保标注符合所需标准。

    最佳实践:

    • 清晰的沟通:向标注者提供详细的反馈,以避免混淆并减少校对所花费的时间。

    • 迭代反馈:标注者修改标注后,主管应及时核实,以确保标注的一致性。

    5 案例研究:自动驾驶汽车注释

    在本案例研究中,我们描述了一个使用 CVAT对街道摄像头拍摄的视频进行标注,以训练自动驾驶车辆系统的目标检测模型的项目。

    问题:

    该任务是注释从移动车辆拍摄的 10,000 张街道图像,其中包含各种物体(例如汽车、行人、街道标志),以训练用于物体检测的机器学习模型。

    解决方案:
    • 步骤 1 :将数据上传到 CVAT,并使用边界框工具对车辆和行人进行标注。

    • 步骤 2 :对于街道标志,使用多边形来紧密贴合标志的不规则形状。

    • 步骤 3 :一组标注员协同工作,主管每审核 500 张图像的标注情况。

    • 步骤 4 :启用了移动车辆的跟踪功能,从而可以更快地标注视频帧中的车辆轨迹。

    结果:

    该项目按时完成,标注准确率超过95%,随后用于训练物体检测模型,显著提高了车辆实时检测物体的能力。

    通过遵循这些步骤、示例和最佳实践,您可以确保您的注释具有高质量、准确性,并可用于机器学习模型训练。注释项目成功的关键在于选择合适的工具、保持一致性以及定期审查进度以确保质量控制。

    自主车辆

    使用 CVAT 自动注释

    1 将 CVAT 与外部工具集成

    CVAT 支持集成外部机器学习模型来协助注释过程。操作方法如下:

    1. 设置预训练模型:选择像YOLO或者Faster R-CNN这样可以自动标记数据的模型。
    2. 将模型连接到 CVAT:修改 CVAT 配置以包含模型的 API 或集成点。

    一旦设置完成,模型将通过建议注释来提供帮助,然后注释者可以验证或改进注释。

    2 导出和导入注释

    CVAT 支持多种导出注释的格式,包括:

    • COCO:非常适合物体检测和分割任务。
    • 帕斯卡VOC:对象检测任务的另一种格式。
    • 记录:由 TensorFlow 使用。

    通过导入功能还可以轻松从其他来源(如以前的 CVAT 任务或其他工具)导入注释。

    管理和监控项目

    1 任务管理

    高效的项目管理是处理大规模注释任务的关键。CVAT 可让您:

    • 拆分任务:将大型数据集分割成易于管理的小块。

    • 跟踪进度:监控任务完成情况并管理截止日期。

    • 监控性能:使用 CVAT 的内置工具检查每个任务的状态。

    2质量控制

    为了确保高质量的注释:

    • 制定标准:定义标注的质量标准,例如准确性和一致性。

    • 审核任务:主管可以审核标注员提交的工作并提出修改意见。

    • 迭代改进:在审查注释后,可以提供反馈以改进未来的注释过程。

    导出数据和项目完成

    1 数据导出选项

    注释完成后,您可以导出与机器学习工具兼容的各种格式的数据。导出方法如下:

    1. 前往“任务”部分。

    2. 选择任务并点击导出

    3. 选择格式(COCO、PASCAL VOC、TFRecord 等)并继续。

    2 准备机器学习模型训练

    导出数据时,请确保注释的格式正确,适合当前任务。例如:

    • 目标检测:确保边界框坐标正确。

    • 图像分割:验证多边形或掩膜标注是否清晰。

    3 归档项目

    CVAT 允许您存档已完成的项目以供将来参考。您可以将其存储在服务器上或将其导出到云存储以进行安全保管。

    结语

    通过遵循本指南中概述的步骤,您可以有效地设置 CVAT、管理注释任务并提取可用于训练机器学习模型的数据。CVAT 的灵活性和功能范围使其成为处理大型注释项目的团队的绝佳选择。通过实践,您将能够简化注释工作流程并确保为您的 AI 和机器学习应用程序提供高质量的标记数据。

    访问我们的数据注释服务


    此窗口将在20秒后关闭。