CVAT is completely re-designed and re-implemented version of Video Annotation Tool from Irvine, California tool. It is free, online, interactive video and image annotation tool for computer vision. It is being used by our team to annotate million of objects with different properties. Many UI and UX decisions are based on feedbacks from professional data annotation team.
Code released under the MIT License.
The instructions below should work for Ubuntu 16.04
. It will probably work on other Operating Systems such as Windows
and macOS
, but may require minor modifications.
Please read official manual here.
The step is necessary only to run tf_annotation app. If you don't have a Nvidia GPU you can skip the step.
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-cache search nvidia-* # find latest nvidia driver
sudo apt-get install nvidia-* # install the nvidia driver
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev
sudo apt-get install nvidia-modprobe
Reboot your PC and verify installation by nvidia-smi
command.
Install Nvidia-Docker
The step is necessary only to run tf_annotation app. If you don't have a Nvidia GPU you can skip the step. See detailed installation instructions on repository page.
sudo pip install docker-compose
To build all necessary docker images run docker-compose build
command. By default, in production mode the tool uses PostgreSQL as database, Redis for caching.
To start all containers run docker-compose up -d
command. Go to localhost:8080. You should see a login page.
If you would like to enable tf_annotation app first of all be sure that nvidia-driver, nvidia-docker and docker-compose>=1.19.0 are installed properly (see instructions above) and docker info | grep 'Runtimes'
output contains nvidia
.
Run following command:
docker-compose -f docker-compose.yml -f docker-compose.nvidia.yml up -d --build
You can register a user but by default it will not have rights even to view list of tasks. Thus you should create a superuser. The superuser can use admin panel to assign correct groups to the user. Please use the command below:
docker exec -it cvat sh -c '/usr/bin/python3 ~/manage.py createsuperuser'
Type your login/password for the superuser on the login page and press Login button. Now you should be able to create a new annotation task. Please read documentation for more details.
The command below will stop and remove containers, networks, volumes, and images
created by up
.
docker-compose down
If you want to access you instance of CVAT outside of your localhost you should specify ALLOWED_HOSTS environment variable. The best way to do that is to create docker-compose.override.yml and put all your extra settings here.
version: "2.3"
services:
cvat:
environment:
ALLOWED_HOSTS: .example.com
ports:
- "80:8080"
It is possible to proxy annotation logs from client to ELK. To do that run the following command below:
docker-compose -f docker-compose.yml -f analytics/docker-compose.yml up -d --build
You can use a share storage for data uploading during you are creating a task. To do that you can mount it to CVAT docker container. Example of docker-compose.override.yml for this purpose:
version: "2.3"
services:
cvat:
environment:
CVAT_SHARE_URL: "Mounted from /mnt/share host directory"
volumes:
cvat_share:/home/django/share:ro
volumes:
cvat_share:
driver_opts:
type: none
device: /mnt/share
o: bind
You can change the share device path to your actual share. For user convenience we have defined the enviroment variable $CVAT_SHARE_URL. This variable contains a text (url for example) which will be being shown in the client-share browser.