数据标注平台(CVAT)安装及踩坑记录

news2024/12/22 21:18:47

目录

一、CVAT安装

step1 安装docker

step2 获取权限

step3 获取权限

step4 克隆cvat源代码

step5 构建docker镜像

step6 运行Docker容器这一步要下载公共docker映像,耗时看网速,但是不会太久。

step6 创建管理员用户

step7 关闭cvat服务

二、CVAT安装及图片标注使用教程

1. 注册

2. 基本标注

2.1 创建Task

2.2 Task列表页面

2.3 Task内页

2.4 标注页面

2.5 标注小技巧

3.下载标注结果
主要借鉴了以下几篇文章:

[常用工具] cvat安装与使用指北_落痕的寒假的博客-CSDN博客_cvat安装

CVAT使用说明 - 作业部落 Cmd Markdown 编辑阅读器

CVAT使用的一点总结 - 知乎

一、CVAT安装

step1 安装docker

        cvat在docker下运行,要先安装docker。                                                                                   

sudo apt-get update
sudo apt-get --no-install-recommends install -y \
  apt-transport-https \
  ca-certificates \
  curl \
  gnupg-agent \
  software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
  "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) \
  stable"
sudo apt-get update
sudo apt-get --no-install-recommends install -y docker-ce docker-ce-cli containerd.io

step2 获取权限

        在没有root权限的情况下运行docker需要获取权限,获取权限后务必重启系统

sudo groupadd docker
sudo usermod -aG docker $USER

step3 获取权限

        安装docker-compose(1.19.0或更高版本)。Compose是用于定义和运行多容器Docker应用程序的工具。

sudo apt-get --no-install-recommends install -y python3-pip python3-setuptools
sudo python3 -m pip install setuptools docker-compose

这一步可能会出现报错:

aptsources.distro.NoDistroTemplateException: Error: could not find a distribution template for Kylin/kylin  

这是因为安装优麒麟的软件后系统/etc/lsb-release的文件信息被改了,输入指令: 

 sudo gedit /etc/lsb-release

发现文件是这个样子的:

 

改为: 

  1. DISTRIB_ID=Ubuntu

  2. DISTRIB_RELEASE=18.04

  3. DISTRIB_CODENAME=bionic

  4. DISTRIB_DESCRIPTION="Ubuntu 18.04.5 LTS"

重新执行 step3 获取权限 ,应该就没什么问题了。

step4 克隆cvat源代码

官方github仓库很慢,所以我就用了gitee镜像。

  1. sudo apt-get --no-install-recommends install -y git

  2. git clone https://gitee.com/luohenyueji/cvat

  3. cd cvat

 step5 构建docker镜像

这一步是最难也是耗时最长的一步,会下载很多东西包括一堆python库,所以慢慢等待。对于python库得安装建议使用镜像。具体做法,打开上一步下载的源代码目录cvat/Dockerfile文件,找到Install requirements这项。然后修改并添加相应的python镜像。我用的是阿里云镜像,可以换成别的。

#RUN DATUMARO_HEADLESS=1 python3 -m pip install --no-cache-dir -r /tmp/requirements/${DJANGO_CONFIGURATION}.txt
RUN DATUMARO_HEADLESS=1 python3 -m pip install -r /tmp/requirements/${DJANGO_CONFIGURATION}.txt -i https://mirrors.aliyun.com/pypi/simple/

然后在cvat目录输入以下指令就慢慢等待吧,如果中途安装失败,再次输入指令就好了,注意要使用sudo。

sudo docker-compose build 

step6 运行Docker容器
这一步要下载公共docker映像,耗时看网速,但是不会太久。

docker-compose up -d

这一步结束后,就能打开你的cvat网站,但是需要用谷歌浏览器使用。安装过了谷歌浏览器就不用管,没有见安装方法ubuntu18.10安装chrome浏览器。

这时候谷歌浏览器打开localhost:8080就能够看到cvat页面,如下所示

点击creaate an account就能够创建普通用户,但是第一次使用最好创建管理员账户,具体看下一步。

step6 创建管理员用户

输入以下命令,然后有提示创建管理员账户密码就行了。

docker exec -it cvat bash -ic 'python3 ~/manage.py createsuperuser'


step7 关闭cvat服务
运行step6后,哪怕重启服务器,cvat服务还是继续运行的。要关闭在cvat目录输入以下指令:

docker exec -it cvat bash -ic 'python3 ~/manage.py createsuperuser'

要重新开启就重复step6。


二、CVAT安装及图片标注使用教程

1. 注册

 

  • 第一次使用CVAT时需要注册,
  • 用户注册完就可以去创建标注任务了

 

2. 基本标注

2.1 创建Task

  • 登录后会看到如下图界面,CVAT的标注最小单位是Task,每个Task为一个标注任务。点击Task按钮可以看到已创建的task, 点击创建新task。

  • 创建新任务的页面如下,按照如下标识的步骤,第一步填写任务名称,要关联的Project名称(可选),第二步设置标签,第三步选择标注数据来源,第四步选择高级设置参数,第五步提交。

label 标签详解

  • 添加label标签有两种模式:Raw和Constructor,Constructor是可以逐一添加、调整label设置的,设置新增标签名称、颜色、属性等。假如要使用筛选功能,可在此处添加“selected”标签,后续可根据此标签对标注数据进行筛选。

Raw则是可以一键复制所以label设置的json格式的文件,此功能在多个任务对应标签一致时,可以很方便的设置多个标签。Raw示例内容如下图所示,json内容可以通过Copy按钮复制内容用于新任务label设置,粘贴后点击Done保存当前设置,Reset则是维持原来的设置,比如新任务中某标签颜色改变,更改后发现新设置不合适,Reset可以一键还原原始设置。

高级配置 Advanced configuration很多参数目前阶段用不到,以下仅对几个常用的参数进行说明:

Use zip chunks: 针对视频数据,压缩成zip格式
Use cache: 数据缓存
Image quality: 用于指定上传的图片质量,当高分辨率图片上传太慢时可以降低分辨率提速,但上一步选择从服务器读取数据的话,图片读取速度会大大提升。
Overlap size:把目前的数据分成N个Job进行标注时,每个Job之间重复的帧数;
Segment size: 把目前的数据分为N个Job,N就是这里的值,主要用于图片太多,需要多个人一起标注的场景,每个人标一个Job,用此参数将数据分块;
Start frame: 采集的视频数据可能并不需要全部标注,比如目标帧可能仅仅只是其中第20-100帧,此参数用于设置从第几帧开始标;
Stop frame: 跟Start frame对应,这是结束帧位置;
Frame step: 可能不需要每帧都标,比如每隔M帧标一帧,M即是此处的值;
其他参数暂不需要,详见官方文档。

2.2 Task列表页面

  • 创建好的Task长这样

Actions中展开:
Upload annotations: 支持标签导入,比如在Crowdhuman公开数据集已有的人头和人体标签前提下,想继续标注此数据集中的车辆,用于人头、行人、车三类目标的训练集,就可以使用此功能将人头和人体标签导入,仅用CVAT标注车辆标签即可。具体操作移步本教程第5章“标签导入”。
Export task dataset: 下载数据集标签到本地。
Automatic annotation: 半自动标注,CVAT支持用预训练模型对数据集在线生成标签,如此可以大大提升标注效率,详见第6章“半自动标注”。
Export task: 支持导入或导出一个已有的task, 详见此处。
Move to project: 顾名思义,移动本task到另一个project中,移动过程中出现的标签属性变化和标签不匹配问题需要重新对应修改标签设置。
Delete: 删除本task。

2.3 Task内页

  • Task内页如下图所示,在Task内页中,可以对task的一些基本信息进行修改,也可以对任务进行分配,多人协同标注时,查看标注进度等。说明如下:

任务名称,可修改
此Actions同2.2节的Actions说明
Issue Tracker,一般不用,暂时不管
标签设置,可修改
将此Task分配给某个成员
将此Job分配给某个成员进行标注
确定质检员,由谁来质检标注数据质量
2.4 标注页面
点击相应Job,就会进入标注界面。界面分为5个部分,如下图所示:

 

Header: 主要包括CVAT的几个基本功能导航,以及当前用户相关设置, 基本功能包括Project\Tasks\Cloud Storages\Models,分别表示标注项目、标注任务、云存储、预训练模型。
Top panel: 主要包括图片导航(选择图片)、Menu、保存、撤销/恢复、全屏、标注结果统计、mode切换。
Workspace: 工作区,图像所在区域。
Controls sidebar: 控制相关命令侧边栏,包括设置图片大小、位置,创建shape、编辑tracks等标注基本功能。
Object sidebar: 标签相关侧边栏,包括两个选项(objects和labels),还有 appearance 相关设置(就是各类标签的展示颜色、透明度等)。
Navigation 相关
CVAT提供选择上一帧、下一帧、以step为单位,跳转至下(上)一帧,顺序播放每一帧、跳转至开始、结尾帧等功能。
选中帧后,要选择图像的位置以及缩放有以下几个基本操作:
移动图像/选择中心位置:使用第一张图的选项。
另外两个功能是:使图像适应屏幕大小/选择一块区域放大。

标注小技巧
标注过程中的快捷键可以省很多力气,以下是比较常用的几个,更多请见官方文档此处:
保存: Ctrl + S
删除: Delete
缩放:鼠标滚轴,往上放大,向下缩小
拖动:鼠标左键点击并拖动图片,调整位置
下一帧:F
上一帧:D
向后跳十张: Shift+Ctrl + V
向前跳十张: Shift+Ctrl + C
复制框:Ctrl + C
粘贴框:Ctrl + V
重复上一次标注框参数:N,比如连续标一类头框,那么每次重复标时按N可以直接标下一个头框
对选定对象连续标注接下来所有帧内此对象:Ctrl + B
转换标签:Ctrl+(0..9)
3.下载标注结果

CVAT安装及使用教程:

CVAT安装及图片标注使用详细教程[含踩坑记录]_问题多多快快改的博客-CSDN博客

安装过程注意事项:

【1】step2这一步执行完,reboot服务器后,输入groups,输出有docker,即成功;

【2】step3最好指定下docker-compose版本(大于等于1.19.0)

sudo apt-get --no-install-recommends install -y python3-pip python3-setuptools
sudo python3 -m pip install setuptools docker-compose==1.19.0

【3】step4使用的是码云cvat镜像库,git拉取即可,也可以用笔记本clone下来后复制到服务器。

【4】step5会提示 no proxy,忽略即可,不影响;

【5】step6指令docker-compose up -d,这个指令会pull很多镜像库并启动服务容器,事先需(配置一些国内镜像库+改超时阈值),配置方法如下:

注意:如果镜像+超时阈值均已设置,仍提示timeout,就重复操作几次,timeout应该与网络有关;

5.1:配置国内docker镜像库(这里添加了网上能找到的11个国内镜像):

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [

                      "http://hub-mirror.c.163.com",

                      "https://hub-mirror.c.163.com",

                      "https://docker.mirrors.ustc.edu.cn",

                      "https://reg-mirror.qiniu.com",

                      "https://4iydscvo.mirror.aliyuncs.com",

                      "https://mirror.ccs.tencentyun.com",

                      "http://f1361db2.m.daocloud.io",

                      "https://registry.aliyuncs.com",

                      "https://hccwwfjl.mirror.aliyuncs.com",

                      "https://registry.docker-cn.com",

                      "https://yxzrazem.mirror.aliyuncs.com"

                       ]

}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

service docker restart  (密码:123456)

5.2:改超时阈值方法(设置1万秒):

docker-compose up 启动容器服务超时错误:ERROR: An HTTP request took too long to complete. Retry with --verbose_docker conpose up -d 执行一半超时_tandaly的博客-CSDN博客

cvat服务启动成功显示结果如下:

 

【6】steps已创建超级用户

用户名:yjycvat
密码:yjy123456
邮箱:tangxiangyu@huaqi.info(@tangxiangyu后续涉及模型重训工作)

【7】chrome浏览器安装及登录

安装方法:

sudo apt-key add linux_signing_key.pub

sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'

sudo apt-get update

sudo apt-get --no-install-recommends install -y google-chrome-stable

登录网址:

localhost:8080

 

【8】更多CVAT使用方法请参考后续CVAT安装及使用教程(CVAT安装及图片标注使用详细教程[含踩坑记录]_问题多多快快改的博客-CSDN博客);

常用docker指令

查看镜像:docker images

删除单个镜像:docker rmi -f 镜像id

强制删除容器:docker rm -f 容器id

查看所有容器:docker ps -a

拉取镜像:docker pull 镜像名,如 docker pull hello-world

 

 

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法第十二期——BFS-判重

目录 BFS判重 Python判重方法: set、字典 set()判重 字典判重 例题&#xff1a;跳蚱蜢 思路 【建模】 去重 代码一&#xff1a;字典去重&#xff08;用list实现队列&#xff09; 代码二&#xff1a;set()去重&#xff08;用list实现队列&#xff09; 代码二&#xff…

CRMEB开源商城部署在腾讯云2

目录PHP在安装过程中会监测Redish5跨域PHP在安装过程中会监测Redis public\install\index.php if (extension_loaded(redis)) {$redis <span class"correct_span">&radic;</span> 已安装;} else {$redis <a href"https://doc.crmeb.com/w…

2个大厂 100亿级 超大流量 红包 架构方案

2个大厂 100亿级 超大流量 红包 架构方案 文章目录2个大厂 100亿级 超大流量 红包 架构方案100亿级 红包 应用 场景概述百亿级 微信红包技术架构架构**南北分布****拆红包入账异步化****发拆落地&#xff0c;其他操作双层cache**高并发**红包算法****柔性降级方案**360w QPS 10…

Nginx与LUA(3)

您好&#xff0c;我是湘王&#xff0c;这是我的CSDN博客&#xff0c;欢迎您来&#xff0c;欢迎您再来&#xff5e;在互联网应用中&#xff0c;很多场景都会涉及到高并发请求&#xff0c;如果不对这些请求做限制&#xff0c;那么服务器很快就会被挤垮。就像在12306买票一样&…

计算机图形学实习教程之基本图形的生成(扫描线填充算法+图形缩放算法+对称变换算法+消隐算法+金刚石图案算法),利用C#实现,附源码

环境&#xff1a;Win10Visual Studio 2022 Community 在本次实验中需要用到第一篇文章实验内容的代码及环境&#xff0c;详情请见&#xff1a;传送门 目录 一、实验目的 二、实验步骤 1.扫描线填充算法 2.图形的缩放算法 3.对称变换算法 4.消隐算法 5.金刚石图形算法 一…

Unity 3D 人形角色动画(Avatar)||Unity 3D 导航系统||Unity 3D 障碍物

Unity 3D 人形角色动画&#xff08;Avatar&#xff09; Mecanim 动画系统适合人形角色动画的制作&#xff0c;人形骨架是在游戏中普遍采用的一种骨架结构。。 由于人形骨架在骨骼结构上的相似性&#xff0c;用户可以将动画效果从一个人形骨架映射到另一个人形骨架&#xff0c…

基于Java+SpringBoot+Vue求职招聘系统设计与实现

博主介绍&#xff1a;✌全网粉丝3W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供毕业项目实战✌ 博主作品&#xff1a;《微服务实战》专栏是本人的实战经验总结&#xff0c;《Spring家族及微服务系列》专注…

《Buildozer打包实战指南》第一节 在虚拟机中安装Ubuntu系统

目录 1.1 下载并安装Virtual Box虚拟机 1.2 下载并安装Ubuntu系统 由于Buildozer不能在Windows系统上打包&#xff0c;只能运行于Linux&#xff0c;所以我们可以在Windows系统上安装一个虚拟机&#xff0c;并在虚拟机中安装Linux。在本教程中笔者将会一直使用Ubuntu系统&…

大数据分案例-基于随机森林算法构建返乡人群预测模型

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

ubuntu16.04安装verilator+systemc并运行测试程序

link Verilator 能够把可综合的&#xff08;通常不是行为级&#xff09;的Verilog代码&#xff0c;外加一部分Synthesis&#xff0c;SystemVerilog和一小部分Verilog AMS代码转换成C或者SystemC代码。Verilator不是一个完整的模拟器&#xff08;simulator&#xff09;&#xff…

打工人必学的法律知识(六)——《劳动法》案例-差绩效不等于「不能胜任工作」

目录 一、差绩效不等于「不能胜任工作」 二、劳动者无条件解除劳动合同的情形 一、差绩效不等于「不能胜任工作」 员工在用人单位等级考核中居于末位等次&#xff0c;不等同于“不能胜任工作”&#xff08;最高人民法院指导案例18号&#xff09; 2005年7月&#xff0c;被告王…

【Linux】Linux多线程(上)

前言 hi~ 大家好呀&#xff0c;欢迎来到我的Linux学习笔记。本篇笔记将会重点从内核结构引入Linux下的线程&#xff0c;理解Linux下线程和进程的相关性和区别&#xff0c;以及线程相关的操作方法&#xff0c;在到之后的线程互斥和线程同步中的条件变量相关概念哦~ Linux进程控…

世界杯数据可视化分析

目录 1.数据来源 2.字段解释 世界杯成绩信息表&#xff1a;WorldCupsSummary 世界杯比赛比分汇总表&#xff1a;WorldCupMatches.csv 世界杯球员信息表&#xff1a;WorldCupPlayers.csv 3.数据分析及可视化 世界杯已经告一段落&#xff0c;作为一个学习大数据的学生&…

CentOS即将停止维护,拥抱阿里“龙蜥“(Anolis OS),VMware安装Anolis OS与介绍

一、前言 大家在自己电脑来进行服务器的一些操作时&#xff0c;基本都是使用CentOS 7或者是CentOS 8&#xff0c;但是2021年底CentOS 8宣布停止了维护&#xff1b;CentOS 7 在2024年6月30日也会停止维护&#xff01; 所以我们是时候换一个操作系统了&#xff0c;经过十几年的…

[319]. 灯泡开关

[319]. 灯泡开关题目算法设计&#xff1a;完全平方数题目 传送门&#xff1a;https://leetcode.cn/problems/bulb-switcher/ 算法设计&#xff1a;完全平方数 问题是有多少灯是亮的。 那怎么样灯才会亮呢&#xff1f; 点偶数次相当于没点&#xff0c;开了又关。只有点奇…

标准库中的string类

深爱学习的你&#xff0c;在很多场景下一定经常和字符串打交道&#xff01; 字符串是以‘\0’结尾的字符合集&#xff0c;C语言中提供了一些库函数来处理字符串,让大家在写代码的过程中方便了许多&#xff1a; 字符串函数_Bug程序员小张的博客-CSDN博客字符串函数https://blog…

基于Simulink的带通BPSK信号调制解调实验报告(含代码和slx文件)

重要声明:为防止爬虫和盗版贩卖,文章中的核心代码和数据集可凭【CSDN订阅截图或公z号付费截图】私信免费领取,一律不认其他渠道付费截图! 摘要 数字相位调制又称为相移键控(Phase Shift Keying,PSK),是一种十分重要的基本数字调制技术,是一种用载波相位表示输入信号…

磨金石教育摄影技能干货分享|有哪些风格独特的摄影作品

1 奋勇向前照片中退却的海浪与冲上岸的海浪交汇拍打&#xff0c;形成大量的白色泡沫。于是画面被平均分成两部分&#xff0c;分割线由左上延伸到右下&#xff0c;一条明显的对角线。也让画面形成对称式的构图&#xff0c;所以照片看着既平衡又美观。作者给照片起名为《奋勇向前…

Docker安装MySQL、MySQL主从复制、双主双从

文章目录Docker安装MySQL新建容器配置,记得 重启加载配置&#xff01;测试MySQL 主从复制原理新增两个mysql,一主一从在主机上在从机上MySQL双主双从必看&#xff01;创建容器在两个主机上在两个从机上问题解决Navicat无法连接MySQL的问题WARNING: IPv4 forwarding is disabled…

计算机网络概况

1 前言计算机网络是指将位于不同地理位置&#xff0c;但具有独立功能的多台设备&#xff0c;通过通信设备和线路连接起来&#xff0c;在网络操作系统&#xff0c;网络管理软件、网络通信协议的协调管理下&#xff0c;实现资源共享和信息传递的计算机系统。简单来说&#xff0c;…