草庐IT

CVAT——计算机视觉标注工具

ftmagician 2023-07-18 原文

CVAT——计算机视觉标注工具

一、CVAT简介

  1. CVAT 是用于计算机视觉的强大、有效、免费、在线、交互式视频和图像注释工具
  2. Intel团队正在使用它来注释数百万个具有不同属性的对象
  3. 许多 UI 和 UX 决策都是基于专业数据注释团队的反馈
  4. CVAT官方地址
  5. 视觉开源工具排行榜
  6. CVAT架构图

二、CVAT核心概念

项目

在 CVAT,您可以创建一个包含相同类型任务的项目。 与项目相关的所有任务都将继承标签列表

  1. 更改项目的标题
  2. 打开“操作”菜单。 每个按钮负责操作菜单中的特定功能
  3. 更改问题跟踪器或打开问题跟踪器(如果指定)
  4. 更改标签。 您可以在 Raw 模式或 Constructor 模式下添加新标签或为现有标签添加属性
  5. 分配给——用于将项目分配给一个人。 开始输入受让人的姓名和/或从下拉列表中选择合适的人
  6. 任务 — 是特定项目的所有任务的列表,可以在项目中搜索任务

云存储

云存储模式

  1. AWS-S3
  2. Azure Blob Container
  3. Google Cloud Storage
  4. COS(腾讯云或者阿里OSS,需要自己定制化支持)

云存储预览

  1. 云存储页面包含元素,每个元素都与单独的云存储相关
  2. 每个元素包含:预览、云存储名称、提供者、创建和更新信息、状态

云存储操作

  1. Update — 修改云存储
  2. Delete — 删除云存储
  3. Attach a new storage — 添加云存储

任务

任务细节

  1. 更改任务的标题
  2. 打开操作菜单
  3. 更改问题跟踪器或打开问题跟踪器(如果指定)
  4. 更改标签
  5. 分配给 - 用于将任务分配给一个人

任务页面

  1. 导出任务数据集
  2. 上传标注数据集
  3. 自动化标注
  4. 备份任务
  5. 移动到项目中
  6. 删除

作业列表

  1. 带有超链接的作业名称
  2. Frames — 帧间隔
  3. 工作的一个阶段
  4. Started on — 这份工作的开始日期
  5. Assignee — 是从事该工作的用户
  6. Reviewer - 指定执行审阅的用户

作业

在作业页面上,用户(例如,具有工作人员角色)可以查看分配给他们的作业,而无需访问任务页面,还可以跟踪进度、对作业列表进行排序和应用过滤器

CVAT标注UI页面

Header

用于导航 CVAT 部分和帐户设置的固定标题

Top panel

包含导航按钮、主要功能和菜单访问

Workspace

显示图像的空间

Controls sidebar

包含用于导航图像、缩放、创建形状和编辑轨道(合并、拆分、分组)的工具

Objects sidebar

包含标签过滤器,两个列表:对象(在框架上)和标签(在框架上的对象)和外观设置

Pop-up messages

在 CVAT 中,您会在任何页面的右上角收到弹出消息。 弹出消息可以包含有用的信息、链接或错误消息

训练模型

模型

模型页面包含为半自动和自动注释部署的深度学习 (DL) 模型列表

类型

  1. detector - 用于自动注释
  2. interactor - 用于半自动形状注释
  3. tracker - 用于半自动轨迹标注
  4. reid - 用于将单个对象组合成一个轨道

AI标注

AI Tools

CVAT 中可用的半自动和自动注释工具概述

OpenCV tools

该工具基于 Open CV 计算机视觉库,这是一个包含许多 CV 算法的开源产品

Automatic annotation

自动注释用于创建初步注释。要使用自动注释,您需要一个 DL 模型

Open Model Zoo

  1. 该存储库包括优化的深度学习模型和一组演示,以加快高性能深度学习推理应用程序的开发。 使用这些免费的预训练模型而不是训练自己的模型来加快开发和生产部署过程。
  2. 存储库组件包括英特尔预训练模型、公共预训练模型、模型下载器和其他自动化工具、使用 OpenVINO™ 工具包演示模型使用的演示、用于模型准确性验证的准确性检查器工具

openvino_notebooks

一系列可立即运行的 Jupyter 笔记本,用于学习和试验 OpenVINO™ 工具包。这些笔记本介绍了 OpenVINO 基础知识,并教开发人员如何利用我们的 API 优化深度学习推理

OpenVINO™ Toolkit

该工具包允许开发人员通过与应用程序逻辑集成的高级 OpenVINO™ 运行时 C++ 和 Python API 部署预训练的深度学习模型

CVAT分析监控

分析

通过分析,您可以查看每个用户在每项任务上花费了多少时间,以及他们在任何时间范围内做了多少工作

监控

它还有一个活动图,可以通过显示的用户数量和时间范围进行修改

三、Nuclio

CVAT训练模型部署平台,无服务事件数据处理平台

  1. 以最小的 CPU/GPU 和 I/O 开销和最大的并行度进行实时处理
  2. 与大量数据源、触发器、处理模型和 ML 框架的原生集成
  3. 具有数据路径加速的有状态函数
  4. 跨低功耗设备、笔记本电脑、边缘和本地集群以及公共云的可移植性
  5. 开源但专为企业设计(包括日志记录、监控、安全性和可用性)

四、Fiftyone

FiftyOne 是一个开源数据集管理和模型分析工具,用于可视化、探索和改进计算机视觉数据集和模型,它与 CVAT 紧密集成,用于注释和标签细化

  1. 评估对象检测
  2. 评估分类器
  3. 使用图像嵌入
  4. 使用 CVAT 进行标注
  5. 下载和评估开放图像
  6. 探索图像唯一性
  7. Fiftyone 查找分类错误
  8. 发现检测错误

五、写在最后

Tips:CVAT最近停更了5个月,现在已经交给了opencv组织来维护了,项目已经修改成MIT协议,作为一直关注的CVAT粉丝觉得这是最好的归宿了,俄罗斯的Intel团队核心成员全部加入opencv组织,希望大家多多去star支持一下,优秀开源之作不易,期待俄乌早日停战,世界和平🙏

参考链接:

  1. CVAT官方地址
  2. CVAT官方Demo
  3. CVAT安装文档
  4. Nuclio
  5. FiftyOne

有关CVAT——计算机视觉标注工具的更多相关文章

  1. ruby-on-rails - 使用一系列等级计算字母等级 - 2

    这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,

  2. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  3. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

  4. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  5. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

  6. ruby - 如何计算 Liquid 中的变量 +1 - 2

    我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我

  7. ruby-on-rails - 有没有一种工具可以在编码时自动保存对文件的增量更改? - 2

    我最喜欢的Google文档功能之一是它会在我工作时不断自动保存我的文档版本。这意味着即使我在进行关键更改之前忘记在某个点进行保存,也很有可能会自动创建一个保存点。至少,我可以将文档恢复到错误更改之前的状态,并从该点继续工作。对于在MacOS(或UNIX)上运行的Ruby编码器,是否有具有等效功能的工具?例如,一个工具会每隔几分钟自动将Gitcheckin我的本地存储库以获取我正在处理的文件。也许我有点偏执,但这点小保险可以让我在日常工作中安心。 最佳答案 虚拟机有些人可能讨厌我对此的回应,但我在编码时经常使用VIM,它具有自动保存功

  8. ruby - 使用 Ruby,计算 n x m 数组的每一列中有多少个 true 的简单方法是什么? - 2

    给定一个nxmbool数组:[[true,true,false],[false,true,true],[false,true,true]]有什么简单的方法可以返回“该列中有多少个true?”结果应该是[1,3,2] 最佳答案 使用转置得到一个数组,其中每个子数组代表一列,然后将每一列映射到其中的true数:arr.transpose.map{|subarr|subarr.count(true)}这是一个带有inject的版本,应该在1.8.6上运行,没有任何依赖:arr.transpose.map{|subarr|subarr.in

  9. arrays - 计算数组中的匹配元素 - 2

    给定两个大小相等的数组,如何找到不考虑位置的匹配元素的数量?例如:[0,0,5]和[0,5,5]将返回2的匹配项,因为有一个0和一个5共同;[1,0,0,3]和[0,0,1,4]将返回3的匹配项,因为0有两场,1有一场;[1,2,2,3]和[1,2,3,4]将返回3的匹配项。我尝试了很多想法,但它们都变得相当粗糙和令人费解。我猜想有一些不错的Ruby习惯用法,或者可能是一个正则表达式,可以很好地回答这个解决方案。 最佳答案 您可以使用count完成它:a.count{|e|index=b.index(e)andb.delete_at

  10. ruby - 使用 Ruby 开发工具包将文件上传到 Amazon S3 - 2

    我正在尝试上传文件。一个简单的hello.txt。我正在关注文档,但无法将其上传到我的存储桶。#STARTAWSCLIENTs3=Aws::S3::Resource.newbucket=s3.bucket(BUCKET_NAME)begins3.buckets[BUCKET_NAME].objects[KEY].write(:file=>FILE_NAME)puts"Uploadingfile#{FILE_NAME}tobucket#{BUCKET_NAME}."bucket.objects.eachdo|obj|puts"#{obj.key}=>#{obj.etag}"endresc

随机推荐