Skip to main content
Labels define the object classes you want to annotate, while attributes capture additional properties of those objects. A well-designed label schema is crucial for high-quality annotations.

Understanding Labels

A label represents an annotation class in CVAT. Each label has:
  • Name: Unique identifier for the object class
  • Color: Visual color for annotations (auto-generated if not specified)
  • Type: Shape type constraint (optional)
  • Attributes: Additional properties for labeled objects
  • Sublabels: Nested labels for hierarchical classification

Label Types

Labels can be constrained to specific annotation shapes:

Creating Labels

In Projects

Labels defined at the project level are shared across all tasks: Using the API:
Using the SDK:

In Standalone Tasks

Tasks without a project can have their own labels:

Using the CLI

Label Attributes

Attributes capture additional properties of annotated objects.

Attribute Types

Mutable vs Immutable

  • Immutable attributes: Set once per object (e.g., vehicle type)
  • Mutable attributes: Can change per frame in tracks (e.g., occlusion state)

Defining Attributes

API format:

Label Hierarchies (Sublabels)

Create nested label structures for complex classification:
API format:
Sublabels inherit the parent label’s type if not specified. They can have their own attributes.

Skeleton Labels

For pose estimation and keypoint detection:
The svg field defines connections between keypoints.

Updating Labels

Update Project Labels

Using the API:

Delete Labels

To delete a label, mark it with deleted: true:
Deleting a label removes all associated annotations. This action cannot be undone.

Retrieving Labels

Get Project Labels

Get Task Labels

Query Labels via API

Importing Label Schemas

From JSON File

labels.json:
Using CLI:
Using SDK:

From Existing Project

Exporting Label Schemas

Best Practices

  • Use clear, descriptive names: “pedestrian” not “ped”
  • Avoid ambiguous class boundaries
  • Consider annotation difficulty when splitting classes
  • Balance between specificity and annotator burden
  • rectangle: Fast annotation for bounding boxes
  • polygon: Precise segmentation when needed
  • polyline: Lane markings, boundaries
  • skeleton: Human pose, articulated objects
  • tag: Image-level classification
  • Use select for categorical properties
  • Set mutable=true for properties that change over time
  • Provide default_value to speed annotation
  • Limit attribute count to avoid annotator fatigue
  • Use distinct colors for different classes
  • Maintain color scheme across projects
  • Consider colorblind-friendly palettes
  • Let CVAT auto-generate colors if unsure
  • Start with core classes, add as needed
  • Export label schemas for reuse
  • Document label definitions clearly
  • Communicate changes to annotation team

Example Label Schemas

Object Detection (COCO-style)

Semantic Segmentation

Document Classification

Next Steps

Quality Control

Set up validation and quality metrics

Managing Tasks

Create tasks and upload data

Annotation Tools

Learn annotation tools and shortcuts

API Reference

Complete labels API documentation