CVAT——2. CVAT简单使用

文章目录

  • 基本使用
    • 管理员界面登录
      • 管理用户
        • 添加/删除用户及用户权限管理
        • 组管理
      • 任务管理
    • 创建任务和上传标签
    • datumaro
      • anaconda安装
      • datumaro安装
      • datumaro基本使用
        • 支持的格式
        • 查看帮助文件报错
        • 导入projects
        • 数据增加
    • 数据标注
      • 标注面板使用
        • 快捷键
        • 左侧工具栏和右侧面板说明
        • 追踪模式Track mode (视频标注使用)
      • 提升标注效率
        • 方式一:视频追踪,自动插帧
        • 方式二:使用模型自动标记
    • 参考链接:

基本使用

以下测试均建立在 github上 CVAT Release 1.0.0版本上

管理员界面登录

在上篇配置好CVAT后,可以使用类似:http://localhost:8080/admin来登录 (localhost换成自己的服务器ip)

管理用户

添加/删除用户及用户权限管理

主要是 AUTHENTICATION AND AUTHORIZATION 认证和授权 下面可以添加组和用户
在这里插入图片描述
大概就是常规的用户名,密码,确认密码之后就可以 成功注册了新用户了,下面其实还有继续一些权限控制的选项。在这里插入图片描述
这里的三种Permissions分别表示:

  • Activate(活跃用户):指定是否应将此用户视为活动用户,如果想使这个账号暂时失去权限,取消选择就可以,不需要删除。
  • Staff status(员工身份):指定用户是否可以登录此管理站点。
    +Superuser status( 超级用户状态):指定该用户具有所有权限,而无需显式分配它们。
    在这里插入图片描述

组管理

上面那四个原本就有的组,经过2020.7.27测试 (github上 CVAT
Release 1.0.0版本),组是没有权限区别的。

  • 即:你不在annotator,也可以对task进行标注
  • 但是在admin 就是有区别的,这里大概没设计好
  • 在新建组部分,也只有 group name这一个字段,大概CVAT设计人员觉得对用户有权限控制就可以,剩下的就是管理员自行组织相同权限的用户在一个组,所以组没有权限管理

用户管理界面在这里插入图片描述

任务管理

在这里插入图片描述
Engine->Tasks->选择具体的task名称进入,就可以看到该task的相关属性。

  • 其中有一点需要注意:正常情况下,task创建后,除了标签和分配给谁可以改,其他都没法改,也没法再在Web端直接修改。
    • Segment size:一个task无法分配给多个人(assignee),但是可以通过这个参数把一个task分成多个job,每个job再分给不同的人,就可以达到多人共同标注一个task的效果。 PS:虽然这里提供了这个选项,但是实际不生效,
      在这里插入图片描述
      即便改了Segment size ,但是可以看到后面的Segments各种都没有反应。无效,所以如果想要把一个任务分配给多个人,只能在一开始创建任务的时候就全都考虑不好,要么就重新创建。在这里插入图片描述

创建任务和上传标签

进入CVAT界面后,选择新建任务(很简单,填填就好了)

  • 创建任务完成后,如果还需要上传对应的标记文件,则该文件需要是zip格式的。同时,还会提示你:
    在这里插入图片描述
    即:这里上传的标记会将你在CVAT平台上标记的全都覆盖!
    此外,如果上传的标记文件中标签与该task建立时的标签不一致,会报错。且已经创建好的项目的标签无法修改,可以新加,但无法修改之前已经定义的
    上传完毕后显示
    在这里插入图片描述
    然后回到任务面板,打开就可以看到已经标注好的结果了,不错
    在这里插入图片描述

datumaro

这个是基于python的,可以在user-guide中看到 这个datumaro要求是python3.5+的环境。

为此,先查看服务器上python环境的情况

which python
//返回 /usr/bin/python
python --version
2.7.17

anaconda安装

环境不太好,所以要安装python3.5的环境,选择anaconda,直接去官网下载linux版本,右键存储链接

wget https://repo.anaconda.com/archive/Anaconda3-2020.07-Linux-x86_64.sh 

(这个版本是python3.8的 所以安装结束后还要再新建一个python3.5的环境)

下载完之后再进行安装:

bash Anaconda3-2020.07-Linux-x86_64.sh

一开始会让你阅读协议,输入yes,然后会让你确定安装位置,记住这个前缀,等一会就安装好了。安装结束后,提示:
For changes to take effect, close and re-open your current shell 所以最好把这个shell连接关闭重启一下(不然无法识别conda命令),重启之后就Ok了,剩下就是anaconda里操作,新建环境安装py36,安装一些必要的包了。

  • !!!!
  • 不要安装py3.5 虽然datumaro写得是 python3.5+ 但是在执行pip git XXX后,当安装 pycocotools时,报错 RuntimeError: Python version >= 3.6 required。所以安装3.6最好
PREFIX=/home/XXX/anaconda3
conda create -n py36 python=3.6
conda activate py36
pip list
pip install --upgrade pip

环境配好就可以去安装datumaro了

datumaro安装

需要先安装好gcc

> sudo apt update
> sudo apt install build-essential
# 这句会安装 gcc, g++ and make
> sudo apt-get install manpages-dev
# 这个是一些手册

安装:

pip install 'git+https://github.com/opencv/cvat#egg=datumaro&subdirectory=datumaro'

安装这个的过程中会默认安装一些别的依赖包(反正等着就好了,要等挺久,可以在requirements文件中看到)。

Cython>=0.27.3 # include before pycocotools
defusedxml>=0.6.0
GitPython>=3.0.8
lxml>=4.4.1
matplotlib<3.1 # 3.1+ requires python3.6, but we have 3.5 in cvat
opencv-python-headless>=4.1.0.25
Pillow>=6.1.0
pycocotools>=2.0.0   # 这个要求python>=3.6
# 这个还要求安装有gcc 安装gcc后再进行安装就没问题了
PyYAML>=5.1.1
scikit-image>=0.15.0
tensorboardX>=1.8

datumaro基本使用

安好后,就可以开始跟着用户手册继续使用一些基本功能了。重点放在数据增加与合并上。

说明:命令调用语法可能会改变,始终遵循 --help的说明。
datumaro的关键对象是Project,一个Project是一个project自己包含的数据集,大量外部数据资源以及一个环境的组合。可以通过 project create命令来创建一个空的Project,现有的数据集可以使用project import命令导入。最简单的获取任务的方式就是在CVAT的UI中导出task


所以基本可以认为,datumaro的使用需要不断跟CVAT进行导出和导入操作。

支持的格式

-f参数的取值可以有:

  • COCO
  • PASCAL VOC
  • YOLO
  • TF Detection API
  • CVAT

可以在CVAT的tasks面板中看到导出的文件格式有(从名字上来看,最好使用Datumaro):
在这里插入图片描述

查看帮助文件报错

ImportError: libSM.so.6: cannot open shared object file: No such file or directory
解决,参考github issue:

>sudo apt-get update
>sudo apt-get install -y libsm6 libxext6 libxrender-dev
//执行完这步 就可以正常查看help文件了 ok 下面那句不用管了
>pip install opencv-python

导入projects

从现有的数据集中创建一个project,支持的就是上面的格式。Datumaro数据格式是由Extractors和Importers支持的。提取器产生对应于数据集的数据项目列表,导入器从数据源的位置创建一个项目。支持自定义提取器和导入器,但是需要将二者的实现脚本放入<project_dir>/.datumaro/extractors and <project_dir>/.datumaro/importers文件夹中

导入代码,例如 从一个coco格式的数据集中创建项目:

//先
datum project import --help
// 以help的内容为准,执行时报错,
WARNING: Failed to import module 'tf_detection_api_format.extractor.py': Traceback (most recent call last):File "<string>", line 1, in <module> ModuleNotFoundError: No module named 'tensorflow'datum project import \-f coco\-i /home/coco_dir \-o /home/project_dir \  

数据增加

数据标注

标注面板使用

快捷键

  • 上一张D
  • 下一张F
  • 新建矩形标注框 N
    在这里插入图片描述

左侧工具栏和右侧面板说明

其实就是这个 适应图片 功能比较好。

  • 滑动鼠标滚轮:标注图片缩放(不是网页缩放)
  • 双击图片:图片自适应当前窗口宽度
    在这里插入图片描述

追踪模式Track mode (视频标注使用)

为了使用这一功能,上传了一个 104.5MB的flv文件上去。

  • 创建时注意:
    Advanced configuration中的frame step是控制提取帧的间隔:使用此选项过滤视频帧。 例如,输入25将在视频中每隔第二十五帧或每25幅图像保留一个。
  • 视频和图片要进行压缩上传,所以很慢。。上传过程无法停止,等着吧
  • 14分钟 7500帧 也就是差不多 每秒8帧-10帧左右

依然打开标注面板,这里标注的时候不使用默认的shape 而是选择track。

  • 标记的物体于?帧开始移动,就可以将?帧 打上星号或者点击K将其标记为关键帧。
  • 如果对象开始更改其位置,则需要修改其发生的矩形。 不必更改每个帧上的矩形,只需更新几个关键帧,它们之间的帧就会自动插入。
    • 例如:第0帧上画框,然后到第30帧,把之前那个框的位置进行移动(会自动帮你把这帧标记为关键帧 打上星号)
    • 两帧之间就会根据一个框(一个track)的两个位置 (两个位置框的大小可以不同)来自动进行 插帧标注 效果不错
    • 当标注物体变得很小或者消失的时候,需要选择Outside Property.
      • 跳出之后,从那一帧开始 就不再追踪了。尤其是物体到视频边缘,物体大小持续发生变化,就需要自己慢慢标注了。
    • 如果物体在某几帧消失了然后又出现,这时可以使用 Merge融合特性将不同的tracks融合成一个
      • 在物体可见的时候画一个矩形(使用track方式)
      • 在消失但又出现的地方再画一个矩形(track)
      • 点击 Merge或者按下M键,依次点击第一个track和第二个track等
      • 然后点击完了,再按下 Merge或者M键 使改动生效
        在这里插入图片描述
        0帧在这里插入图片描述
        30帧在这里插入图片描述
        在这里插入图片描述
        如果还想了解更多高级功能,查看 track mode (advanced)

提升标注效率

方式一:视频追踪,自动插帧

就是上面的 追踪模式 Track mode(适用于一个序列的图像,目标追踪类的任务)

方式二:使用模型自动标记

主要参考

  • Auto annotation using DL models in OpenVINO toolkit format
  • TF Object Detection API: auto annotation
  • Analytics: management and monitoring of data annotation team
    +Semi-automatic segmentation with Deep Extreme Cut
  • Auto segmentation: Keras+Tensorflow Mask R-CNN Segmentation

参考链接:

  • wget命令
  • Ubuntu18.04安装gcc

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/61397.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV图像处理——(实战)信用卡识别

总目录 图像处理总目录←点击这里 十四、信用卡数字识别 识别的图片模板图片 14.1、模板图片处理 读入图片->灰度图->二值图->计算轮廓->存储每一个模板 如果是所需模板匹配只有一个&#xff0c;课直接读入灰度图像即可 这里有10个模板(0-9)&#xff0c;所以需…

关于opencv的实战——银行卡号识别

首先我们先来引入我们所需要的库和我们定义的图像显示&#xff08;方便&#xff09;&#xff1a; import cv2 import numpy as np import imutils from imutils import contours#显示图像 def cv_show(img,name"image"):cv2.imshow(name,img)cv2.waitKey(0)cv2.dest…

13- 信用卡账号识别 (OpenCV基础) (项目十三) *

项目要点 _, ref cv2.threshold(ref, 10, 255, cv2.THRESH_BINARY_INV) 二值化处理图片, 黑白化图片ref cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 灰度化处理ref_contours, _ cv2.findContours(ref.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) 计算轮廓cv2.dr…

OpenCv图像处理实战——银行卡卡号识别

图像处理项目 测试图片自取区 card1 card2 银行卡卡号识别 from imutils import contours import numpy as np import argparse import imutils import cv2 import myutils #argparse这个库可以让我们直接在命令行中就可以向程序中传入参数并让程序运行。#这两个方法在包中没…

【OpenCV】 ⚠️实战⚠️ 银行卡卡号读取 ☢️建议手收藏☢️

【OpenCV】 ⚠️实战⚠️ 银行卡卡号读取 概述预处理代码模板预处理银行卡预处理 计算轮廓代码模板轮廓银行卡轮廓 其他程序主函数代码数字分割最终结果 概述 今天带大家使用我们之前学会的知识来实现银行卡卡号读取. 代码分为四个部分: 主函程序, 预处理, 计算轮廓, 其他程序…

openCV实践项目:银行卡卡号识别

本文用于对之前openCV知识点学习的复习及实践。要求达到以下效果&#xff1a; 一、基本流程思路分析 本项目本质上就是进行模板匹配。 注&#xff1a;为多用到所学知识&#xff0c;为了加深理解多加了些步骤&#xff0c;实际上本项目可以很简单就能完成。 1.1 模板处理 模…

什么是物联网平台

1、什么是物联网平台 阿里云物联网平台为设备提供安全可靠的连接通信能力&#xff0c;向下连接海量设备&#xff0c;支撑设备数据采集上云&#xff1b;向上提供云端API&#xff0c;服务端通过调用云端API将指令下发至设备端&#xff0c;实现远程控制。 物联网平台消息通信流程…

新兴 IoT 物联网场景中 MQTT 与 TCP 通信协议对比

在IoT 物联网开发中&#xff0c;大多数通信模组都支持 TCP、UDP、MQTT、CoAP、HTTP、LwM2M 等网络通信协议&#xff0c;其中既有传输层协议&#xff0c;也有应用层的协议&#xff0c;不同协议适用的场景也不同。 我们在设计IoT硬件产品时&#xff0c;通常只需选择一种协议即可。…

lot物联网场景通用架构分享

1.通用参考架构&#xff1a; 2.lot物联网硬件设备上云技术方案&#xff1a; #lot物联网业务链路包含&#xff1a;数据采集&#xff0c;通信连接&#xff0c;数据存储&#xff0c;数据可视化&#xff0c;洞察&#xff0c;行动决策&#xff1b;其中以设备端各种厂商提供得协议差…

物联网网络通讯知识

RTU是什么 RTU英文全称Remote Terminal Units&#xff0c;中文全称为远程终端单元。远程终端设备(RTU)是安装在远程现场的电子设备&#xff0c;用来监视和测量安装在远程现场的传感器和设备。通俗理解就是能够编程的还可以将数据传输到服务器的工具。RTU内部是包含通讯模块的&…

APP与服务器之间通过 http(POST、GET)进行数据交互 ( 实现一个简单的物联网系统-1 )

文章目录 一、APP POST 数据到服务器二、APP 从服务器 GET 数据三、APP 界面部分四、相关疑问五、学习方法六、专栏地址 一、APP POST 数据到服务器 首先 post 的数据应该包括识别这个花卉的信息和我们想要浇水的量&#xff0c;这里我们识别花卉采用花卉的名字&#xff0c;这样…

什么是物联网(Internet of Things)?

你可能在某些时候会听到物联网这个词&#xff0c;但是你对它可能不知所以然&#xff0c;这篇文章让你弄清楚什么是物联网&#xff0c;以及它代表什么&#xff1f; 物联网&#xff08;Internet of Things&#xff09;是指设备到互联网的连接。汽车&#xff0c;厨房电器&#xff…

物联网网关有哪些能力和哪些应用?

工业物联网的应用受到越来越多企业的关注&#xff0c;很多人都了解网关这个概念。网关就是一个网络连接到另一个网口的桥梁&#xff0c;起到协议解析、数据采集的作用&#xff0c;实现运行状态数据的高效利用。 物联网网关具备的能力 1、广泛连接的能力 目前各个行业、不同设…

一文了解物联网网关

物联网是指通过射频识别(RFID)、红外感应器、GPS、激光扫描器等信息传感设备&#xff0c;按约定的协议&#xff0c;实现任何时间、任何地点、任何物体进行信息交换和通信&#xff0c;以实现智能化识别、定位、监控和管理的一种网络。物联网是具有全面感知、可靠传输、智能处理特…

什么是物联网?有哪些应用?终于有人讲明白了

作者&#xff1a;佩里利&#xff08;Perry Lea&#xff09; 来源&#xff1a;大数据DT&#xff08;ID&#xff1a;hzdashuju&#xff09; 我们将从连接设备的角度来研究物联网&#xff0c;这些设备之前未必相互连接或接入互联网。它们可能一直没有太多的计算或通信能力。我们假…

LPWA物联网通信

物联网LPWA是物联网中的无线通信技术之一。 根据物联网无线通信技术的覆盖距离&#xff0c;大致可分为两类&#xff1a;一类是短距离通信技术&#xff0c;包括蓝牙(蓝牙)&#xff1b;NFC,Zigbee、WIFI、NFC&#xff0c;主要用于室内智能家庭、消费电子等场景&#xff1b;另一种…

物联网通讯协议:MQTT,NB-IOT,Zigbee,CoAP,RFID,BLUETOOTH,NFC,4G,HTTP

目录 一、按网络四层协议分类二、按需要网关来分类三、NB-IoT&#xff0c;4G对比四、应用层协议&#xff1a;MQTT和COAP对比物联网组网技术WIFI蓝牙ZigBee2G/4G/5GNB-IoTLoRa网关 物联网中常见的物联通信协议TCPUDPTCP和UDP比较HTTPMQTTCoAPLwM2M 一、按网络四层协议分类 NB-I…

chatgpt赋能python:如何使用Python拷贝微信聊天记录的图片?

如何使用Python拷贝微信聊天记录的图片&#xff1f; 微信聊天记录中的图片是我们很重要的一部分。它们记录了我们和我们的朋友、家人和同事之间的重要时刻和特殊瞬间。然而&#xff0c;有些时候我们需要把这些图片从微信聊天记录中拷贝出来&#xff0c;以便于备份和共享。本文…

《辉煌优配》科技股强势引领A股反弹 沪深两市日成交额再超万亿元

受美联储再度加息扰动&#xff0c;昨日早盘沪深两市指数低开&#xff0c;随后科技股强势拉升&#xff0c;带动商场回暖。到收盘&#xff0c;上证综指报3286.65点&#xff0c;上涨0.64%&#xff1b;深证成指报11605.29点&#xff0c;上涨0.94%&#xff1b;创业板指报2361.41点&a…

深度分析台积电的投资价值:伟大的公司,伟大的投资

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 公司介绍 台积电&#xff08;TSM&#xff09;是一家在1987年成立于台湾的半导体公司&#xff0c;并在全球范围内率先实施了“商业晶圆厂”代工模式。该公司为部分或全部外包生产的半导体生产商提供晶圆代工服务。台积电的产…