CVAT是OpenCV团队开源的一个基于web的图像标注系统,它能够对图像、视频做矩形、关键点、图像分割、目标追踪、3D等标注。cvat可以分为服务端和客户端,服务端可以部署在本地或者云上而且还可以很方便的与我们的数据服务器进行连接,客户端只需要通过Google浏览器访问web系统即可,而不需要安装其它的标注工具。
注:我们的团队正在使用labelimg,所以研究CVAT来增加工作效率。
主要参考CVAT Github官方给出的 Quick installation guide:
https://github.com/opencv/cvat/blob/master/cvat/apps/documentation/installation.md
安装其实一步一步按照官方教程执行就好了,官方地址文档为cvat安装文档,但是安装最大的问题就是网速不好。
环境:
1)安装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
2)修改用户权限
(在没有root权限的情况下运行docker需要获取权限,root用户可以跳过)
创建`docker`组
$ sudo groupadd docker
将用户添加到`docker`组($USER就是获取当前用户的意思,不用自己换成自己的名字)
$ sudo usermod -aG docker $USER
登出并登入或者重启系统 确保组成员信息生效(linux环境可以使用如下命令使组信息修改生效)
$ newgrp docker
或者
$ reboot(重启)
确认可以不使用sudo运行docker(这步得到和验证是否安装成功一样的结果,就ok了)
3)安装docker-compose组件
sudo apt-get --no-install-recommends install -y python3-pip python3-setuptools
sudo python3 -m pip install setuptools docker-compose
4)克隆cvat源代码
安装git
$ sudo apt-get --no-install-recommends install -y git
clone仓库
$ git clone https://github.com/opencv/cvat
# 官方github仓库很慢,可以切换下面的gitee镜像
$ git clone https://gitee.com/luohenyueji/cvat
切换到cvat目录
$ cd cvat
5)构建cvat的docker镜像
git下来的Dockerfile中默认下载python库的速度非常慢,可以修改其他的镜像源方便下载。
修改cavt目录中的Dockerfile
$ vim Dockerfile
找到Install requirements这项,注释默认的,添加阿里云镜像
RUN DATUMARO_HEADLESS=1 python3 -m pip install -r /tmp/requirements/${DJANGO_CONFIGURATION}.txt -i https://mirrors.aliyun.com/pypi/simple/
sudo docker-compose build
6)运行docker容器,会花点时间下载一些公共docker镜像
docker-compose up -d
其他命令:
停止和移除所有由up创造的containers, networks, volumes和images
$ docker-compose down
这一步结束后,就能打开cvat登录界面,在安装的服务器是,使用浏览器访问localhost:8080网址。目前其他设备无法访问。
点击creaate an account就能够创建普通用户,但默认情况下,它甚至没有查看任务列表的权限。 因此,您应该创建一个超级用户。 超级用户可以使用管理面板为用户分配正确的组。 请使用以下命令:
docker exec -it cvat_server bash -ic 'python3 ~/manage.py createsuperuser'
然后选择您的管理员帐户的登录名和密码(还有邮箱)
如果要在cvat服务器之外访问,需要指定CVAT_HOST环境变量。最好的方法是创建docker-compose.override.yml并将localhost改为你的服务器ip,例如改服务器ip为172.16.100.201
先把docker-compose.yml复制到cvat目录后命名为docker-compose.override.yml
$ cp docker-compose.yml docker-compose.override.yml
$ vim docker-compose.override.yml
将下面两个位置的localhost改为服务器ip(注意左上角cvat_server和cvat_ui名称)
最后在prots下面修改端口。
修改完成后,docker-compose使用指定文件构建cvat:
docker-compose -f docker-compose.override.yml up -d
具体需要修改docker-compose.override.yml文件,一共需要添加两处。
1)在cvat_server下面添加CVAT_SHARE_URL项
内容为"Mounted from {/data/biaozhu} host directory"。
{}中是你要载入的数据地址,注意!!!
然后services/cvat/volumes中添加cvat_share项
内容为- cvat_share:/home/django/share:ro
CVAT_SHARE_URL: "Mounted from {/data/biaozhu} host directory"
- cvat_share:/home/django/share:ro
2)在文件最后面,在volumes下添加cvat_share项目,
注意将volumes/cvat_share/driver_opts/device中的内容改为你要载入的数据地址。
cvat_share:
driver_opts:
type: none
device: /data/biaozhu
o: bind
最后执行重启命令,建立任务时就可以选择硬盘文件路径地址了。
docker-compose -f docker-compose.override.yml up -d