Convert Figma logo to code with AI

cvat-ai logocvat

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.

12,213
2,947
12,213
524

Top Related Projects

12,212

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.

13,138

Image Polygonal Annotation with Python (polygon, rectangle, circle, line, point and image-level flag annotation).

22,458

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.

4,277

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:

  1. Authenticating with the CVAT server:
import requests

session = requests.Session()
session.post('http://localhost:8080/api/v1/auth/login', json={
    "username": "user",
    "password": "password"
})
  1. 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']
  1. 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:

  1. Install Docker and Docker Compose
  2. Clone the CVAT repository:
    git clone https://github.com/opencv/cvat
    cd cvat
    
  3. Build and run CVAT:
    docker-compose up -d
    
  4. Open http://localhost:8080 in your web browser
  5. Create an account and start annotating

For more detailed instructions, refer to the official CVAT documentation.

Competitor Comparisons

12,212

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.

13,138

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"],
)
22,458

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.

4,277

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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

CVAT Platform

Start Annotating Now

Computer Vision Annotation Tool (CVAT)

CI Gitter chat Discord Coverage Status server pulls ui pulls DOI

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 ⚡

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

CLI

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 formatImportExport
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:

NameTypeFrameworkCPUGPU
Segment AnythinginteractorPyTorch✔️✔️
Deep Extreme CutinteractorOpenVINO✔️
Faster RCNNdetectorOpenVINO✔️
Mask RCNNdetectorOpenVINO✔️
YOLO v3detectorOpenVINO✔️
YOLO v7detectorONNX✔️✔️
Object reidentificationreidOpenVINO✔️
Semantic segmentation for ADASdetectorOpenVINO✔️
Text detection v4detectorOpenVINO✔️
SiamMasktrackerPyTorch✔️✔️
TransTtrackerPyTorch✔️✔️
f-BRSinteractorPyTorch✔️
HRNetinteractorPyTorch✔️
Inside-Outside GuidanceinteractorPyTorch✔️
Faster RCNNdetectorTensorFlow✔️✔️
Mask RCNNdetectorTensorFlow✔️✔️
RetinaNetdetectorPyTorch✔️✔️
Face DetectiondetectorOpenVINO✔️

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