数据标注平台(CVAT)安装及踩坑记录
目录
一、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
发现文件是这个样子的:
改为:
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.5 LTS"
重新执行 step3 获取权限 ,应该就没什么问题了。
step4 克隆cvat源代码
官方github仓库很慢,所以我就用了gitee镜像。
sudo apt-get --no-install-recommends install -y git
git clone https://gitee.com/luohenyueji/cvat
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