cvat
Annotate better with CVAT, the industry-leading data engine for machine learning. Used and trusted by teams at any scale, for data of any scale.
Top Related Projects
Annotate better with CVAT, the industry-leading data engine for machine learning. Used and trusted by teams at any scale, for data of any scale.
Image Polygonal Annotation with Python (polygon, rectangle, circle, line, point and image-level flag annotation).
LabelImg is now part of the Label Studio community. The popular image annotation tool created by Tzutalin is no longer actively being developed, but you can check out Label Studio, the open source data labeling tool for images, text, hypertext, audio, video and time-series data.
Visual Object Tagging Tool: An electron app for building end to end Object Detection Models from Images and Videos.
Quick Overview
CVAT (Computer Vision Annotation Tool) is an open-source web-based image and video annotation tool for computer vision. It is designed to provide users with convenient and intuitive tools for annotating data used in machine learning and computer vision tasks. CVAT supports various annotation shapes, interpolation of bounding boxes between key frames, and automatic annotation using TensorFlow Object Detection API integration.
Pros
- Versatile annotation support for images and videos
- User-friendly web interface with keyboard shortcuts
- Integration with popular ML frameworks and export to various formats
- Active development and community support
Cons
- Steep learning curve for advanced features
- Resource-intensive for large datasets
- Limited built-in project management features
- Occasional performance issues with complex annotations
Code Examples
As CVAT is primarily a web-based tool, there aren't typical code examples for its usage. However, here are some examples of how to interact with CVAT programmatically using its REST API:
- Authenticating with the CVAT server:
import requests
session = requests.Session()
session.post('http://localhost:8080/api/v1/auth/login', json={
"username": "user",
"password": "password"
})
- Creating a new task:
response = session.post('http://localhost:8080/api/v1/tasks', json={
"name": "My Task",
"labels": [{"name": "car"}, {"name": "person"}],
"project_id": 1
})
task_id = response.json()['id']
- Uploading data to a task:
with open('image.jpg', 'rb') as f:
session.post(f'http://localhost:8080/api/v1/tasks/{task_id}/data',
files={'client_files[0]': f})
Getting Started
To get started with CVAT:
- Install Docker and Docker Compose
- Clone the CVAT repository:
git clone https://github.com/opencv/cvat cd cvat
- Build and run CVAT:
docker-compose up -d
- Open
http://localhost:8080
in your web browser - Create an account and start annotating
For more detailed instructions, refer to the official CVAT documentation.
Competitor Comparisons
Annotate better with CVAT, the industry-leading data engine for machine learning. Used and trusted by teams at any scale, for data of any scale.
Pros of CVAT
- More comprehensive documentation and user guides
- Larger community and more frequent updates
- Supports a wider range of annotation tasks and formats
Cons of CVAT
- Higher system requirements for installation and operation
- Steeper learning curve for new users
- More complex setup process for advanced features
Code Comparison
CVAT:
from cvat_sdk import make_client
from cvat_sdk.core.proxies.tasks import ResourceType
client = make_client("https://your.cvat.instance")
client.tasks.create_from_data(
name="My Task",
labels=[{"name": "car"}, {"name": "person"}],
resource_type=ResourceType.LOCAL,
resources=["path/to/image1.jpg", "path/to/image2.jpg"],
)
CVAT>:
# No equivalent code available for direct comparison
# CVAT> is not a separate repository or project
# It may refer to a specific branch or version of CVAT
Note: CVAT> is not a separate repository from CVAT. It likely refers to a specific branch, version, or feature of the main CVAT project. Therefore, a direct code comparison is not applicable in this case.
Image Polygonal Annotation with Python (polygon, rectangle, circle, line, point and image-level flag annotation).
Pros of labelme
- Lightweight and easy to install, suitable for small-scale projects
- Simple and intuitive interface for basic image annotation tasks
- Supports polygon, rectangle, circle, line, and point annotations
Cons of labelme
- Limited features compared to CVAT's comprehensive toolset
- Less suitable for large-scale, collaborative annotation projects
- Lacks advanced video annotation capabilities
Code Comparison
labelme:
from labelme import utils
img = utils.img_data_to_arr(img_data)
label_name_to_value = {'_background_': 0}
for shape in sorted(data['shapes'], key=lambda x: x['label']):
label_name = shape['label']
if label_name in label_name_to_value:
label_value = label_name_to_value[label_name]
else:
label_value = len(label_name_to_value)
label_name_to_value[label_name] = label_value
CVAT:
from cvat_sdk import make_client
from cvat_sdk.core.proxies.tasks import ResourceType
client = make_client(host="localhost", port=8080)
client.tasks.create(
name="My task",
labels=[{"name": "car"}, {"name": "person"}],
resource_type=ResourceType.LOCAL,
resources=["path/to/video.mp4"],
)
LabelImg is now part of the Label Studio community. The popular image annotation tool created by Tzutalin is no longer actively being developed, but you can check out Label Studio, the open source data labeling tool for images, text, hypertext, audio, video and time-series data.
Pros of labelImg
- Lightweight and easy to install
- Simple, intuitive interface for basic image labeling tasks
- Supports multiple image formats and annotation types
Cons of labelImg
- Limited to 2D image annotation
- Lacks advanced features like automatic annotation or AI-assisted labeling
- No built-in project management or collaboration tools
Code Comparison
labelImg (Python):
def saveFile(self, _value=False):
if self.filePath:
try:
self.saveLabels(self.filePath)
self.setClean()
return True
except:
self.errorMessage(u'Error saving file', u'Error saving labels to file')
return False
CVAT (JavaScript):
async function saveAnnotations(session, annotations) {
const data = {
version: 1,
tags: [],
shapes: annotations.map((anno) => ({
type: anno.type,
points: anno.points,
label: anno.label,
})),
};
await session.annotations.put(data);
}
CVAT offers a more comprehensive annotation platform with advanced features, while labelImg provides a simpler solution for basic image labeling tasks. CVAT's code demonstrates its support for multiple annotation types and server-side storage, whereas labelImg focuses on local file operations.
Visual Object Tagging Tool: An electron app for building end to end Object Detection Models from Images and Videos.
Pros of VoTT
- Simpler setup and installation process
- More user-friendly interface for beginners
- Better support for offline usage
Cons of VoTT
- Limited support for complex annotation tasks
- Fewer advanced features compared to CVAT
- Less active development and community support
Code Comparison
VoTT (React-based UI):
export default class Canvas extends React.Component<ICanvasProps, ICanvasState> {
public static defaultProps: ICanvasProps = {
selectedAsset: null,
editorMode: EditorMode.Select,
project: null,
lockedTags: [],
hoveredLabel: null,
};
}
CVAT (Vue.js-based UI):
export default {
name: 'CvatCanvasInstance',
props: {
curZLayer: {
type: Number,
default: 0,
},
mode: {
type: String,
default: 'idle',
},
},
data() {
return {
canvasInstance: null,
};
},
};
Both repositories offer annotation tools for computer vision tasks, but CVAT provides more advanced features and scalability for larger projects. VoTT is more suitable for simpler tasks and individual users, while CVAT is better for team collaborations and complex annotation workflows. The code snippets show different frontend frameworks used: React for VoTT and Vue.js for CVAT.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Computer Vision Annotation Tool (CVAT)
CVAT is an interactive video and image annotation tool for computer vision. It is used by tens of thousands of users and companies around the world. Our mission is to help developers, companies, and organizations around the world to solve real problems using the Data-centric AI approach.
Start using CVAT online: cvat.ai. You can use it for free, or subscribe to get unlimited data, organizations, autoannotations, and Roboflow and HuggingFace integration.
Or set CVAT up as a self-hosted solution: Self-hosted Installation Guide. We provide Enterprise support for self-hosted installations with premium features: SSO, LDAP, Roboflow and HuggingFace integrations, and advanced analytics (coming soon). We also do trainings and a dedicated support with 24 hour SLA.
Quick start â¡
- Installation guide
- Manual
- Contributing
- Datumaro dataset framework
- Server API
- Python SDK
- Command line tool
- XML annotation format
- AWS Deployment Guide
- Frequently asked questions
- Where to ask questions
Partners â¤ï¸
CVAT is used by teams all over the world. In the list, you can find key companies which help us support the product or an essential part of our ecosystem. If you use us, please drop us a line at contact@cvat.ai.
- Human Protocol uses CVAT as a way of adding annotation service to the Human Protocol.
- FiftyOne is an open-source dataset curation and model analysis tool for visualizing, exploring, and improving computer vision datasets and models that are tightly integrated with CVAT for annotation and label refinement.
Public datasets
ATLANTIS, an open-source dataset for semantic segmentation of waterbody images, developed by iWERS group in the Department of Civil and Environmental Engineering at the University of South Carolina is using CVAT.
For developing a semantic segmentation dataset using CVAT, see:
CVAT online: cvat.ai
This is an online version of CVAT. It's free, efficient, and easy to use.
cvat.ai runs the latest version of the tool. You can create up to 10 tasks there and upload up to 500Mb of data to annotate. It will only be visible to you or the people you assign to it.
For now, it does not have analytics features like management and monitoring the data annotation team. It also does not allow exporting images, just the annotations.
We plan to enhance cvat.ai with new powerful features. Stay tuned!
Prebuilt Docker images ð³
Prebuilt docker images are the easiest way to start using CVAT locally. They are available on Docker Hub:
The images have been downloaded more than 1M times so far.
Screencasts ð¦
Here are some screencasts showing how to use CVAT.
Computer Vision Annotation Course: we introduce our course series designed to help you annotate data faster and better using CVAT. This course is about CVAT deployment and integrations, it includes presentations and covers the following topics:
- Speeding up your data annotation process: introduction to CVAT and Datumaro. What problems do CVAT and Datumaro solve, and how they can speed up your model training process. Some resources you can use to learn more about how to use them.
- Deployment and use CVAT. Use the app online at app.cvat.ai. A local deployment. A containerized local deployment with Docker Compose (for regular use), and a local cluster deployment with Kubernetes (for enterprise users). A 2-minute tour of the interface, a breakdown of CVATâs internals, and a demonstration of how to deploy CVAT using Docker Compose.
Product tour: in this course, we show how to use CVAT, and help to get familiar with CVAT functionality and interfaces. This course does not cover integrations and is dedicated solely to CVAT. It covers the following topics:
- Pipeline. In this video, we show how to use app.cvat.ai: how to sign up, upload your data, annotate it, and download it.
For feedback, please see Contact us
API
SDK
- Install with
pip install cvat-sdk
- PyPI package homepage
- Documentation
CLI
- Install with
pip install cvat-cli
- PyPI package homepage
- Documentation
Supported annotation formats
CVAT supports multiple annotation formats. You can select the format after clicking the Upload annotation and Dump annotation buttons. Datumaro dataset framework allows additional dataset transformations with its command line tool and Python library.
For more information about the supported formats, see: Annotation Formats.
Annotation format | Import | Export |
---|---|---|
CVAT for images | âï¸ | âï¸ |
CVAT for a video | âï¸ | âï¸ |
Datumaro | âï¸ | âï¸ |
PASCAL VOC | âï¸ | âï¸ |
Segmentation masks from PASCAL VOC | âï¸ | âï¸ |
YOLO | âï¸ | âï¸ |
MS COCO Object Detection | âï¸ | âï¸ |
MS COCO Keypoints Detection | âï¸ | âï¸ |
MOT | âï¸ | âï¸ |
MOTS PNG | âï¸ | âï¸ |
LabelMe 3.0 | âï¸ | âï¸ |
ImageNet | âï¸ | âï¸ |
CamVid | âï¸ | âï¸ |
WIDER Face | âï¸ | âï¸ |
VGGFace2 | âï¸ | âï¸ |
Market-1501 | âï¸ | âï¸ |
ICDAR13/15 | âï¸ | âï¸ |
Open Images V6 | âï¸ | âï¸ |
Cityscapes | âï¸ | âï¸ |
KITTI | âï¸ | âï¸ |
Kitti Raw Format | âï¸ | âï¸ |
LFW | âï¸ | âï¸ |
Supervisely Point Cloud Format | âï¸ | âï¸ |
YOLOv8 Detection | âï¸ | âï¸ |
YOLOv8 Oriented Bounding Boxes | âï¸ | âï¸ |
YOLOv8 Segmentation | âï¸ | âï¸ |
YOLOv8 Pose | âï¸ | âï¸ |
Deep learning serverless functions for automatic labeling
CVAT supports automatic labeling. It can speed up the annotation process up to 10x. Here is a list of the algorithms we support, and the platforms they can be run on:
Name | Type | Framework | CPU | GPU |
---|---|---|---|---|
Segment Anything | interactor | PyTorch | âï¸ | âï¸ |
Deep Extreme Cut | interactor | OpenVINO | âï¸ | |
Faster RCNN | detector | OpenVINO | âï¸ | |
Mask RCNN | detector | OpenVINO | âï¸ | |
YOLO v3 | detector | OpenVINO | âï¸ | |
YOLO v7 | detector | ONNX | âï¸ | âï¸ |
Object reidentification | reid | OpenVINO | âï¸ | |
Semantic segmentation for ADAS | detector | OpenVINO | âï¸ | |
Text detection v4 | detector | OpenVINO | âï¸ | |
SiamMask | tracker | PyTorch | âï¸ | âï¸ |
TransT | tracker | PyTorch | âï¸ | âï¸ |
f-BRS | interactor | PyTorch | âï¸ | |
HRNet | interactor | PyTorch | âï¸ | |
Inside-Outside Guidance | interactor | PyTorch | âï¸ | |
Faster RCNN | detector | TensorFlow | âï¸ | âï¸ |
Mask RCNN | detector | TensorFlow | âï¸ | âï¸ |
RetinaNet | detector | PyTorch | âï¸ | âï¸ |
Face Detection | detector | OpenVINO | âï¸ |
License
The code is released under the MIT License.
The code contained within the /serverless
directory is released under the MIT License.
However, it may download and utilize various assets, such as source code, architectures, and weights, among others.
These assets may be distributed under different licenses, including non-commercial licenses.
It is your responsibility to ensure compliance with the terms of these licenses before using the assets.
This software uses LGPL-licensed libraries from the FFmpeg project. The exact steps on how FFmpeg was configured and compiled can be found in the Dockerfile.
FFmpeg is an open-source framework licensed under LGPL and GPL. See https://www.ffmpeg.org/legal.html. You are solely responsible for determining if your use of FFmpeg requires any additional licenses. CVAT.ai Corporation is not responsible for obtaining any such licenses, nor liable for any licensing fees due in connection with your use of FFmpeg.
Contact us
Gitter to ask CVAT usage-related questions. Typically questions get answered fast by the core team or community. There you can also browse other common questions.
Discord is the place to also ask questions or discuss any other stuff related to CVAT.
LinkedIn for the company and work-related questions.
YouTube to see screencast and tutorials about the CVAT.
GitHub issues for feature requests or bug reports. If it's a bug, please add the steps to reproduce it.
#cvat tag on StackOverflow is one more way to ask questions and get our support.
contact@cvat.ai to reach out to us if you need commercial support.
Links
-
Intel AI blog: New Computer Vision Tool Accelerates Annotation of Digital Images and Video
-
Intel Software: Computer Vision Annotation Tool: A Universal Approach to Data Annotation
-
VentureBeat: Intel open-sources CVAT, a toolkit for data labeling
-
How to auto-label data in CVAT with one of 50,000+ models on Roboflow Universe
Top Related Projects
Annotate better with CVAT, the industry-leading data engine for machine learning. Used and trusted by teams at any scale, for data of any scale.
Image Polygonal Annotation with Python (polygon, rectangle, circle, line, point and image-level flag annotation).
LabelImg is now part of the Label Studio community. The popular image annotation tool created by Tzutalin is no longer actively being developed, but you can check out Label Studio, the open source data labeling tool for images, text, hypertext, audio, video and time-series data.
Visual Object Tagging Tool: An electron app for building end to end Object Detection Models from Images and Videos.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot