Task Lifecycle
A task progresses through several stages:- Creation: Task is created with configuration
- Data upload: Images/videos are uploaded to the task
- Job generation: Task is split into jobs for annotators
- Annotation: Annotators label the data
- Validation: Quality review and corrections
- Acceptance: Final approval
- Completion: Task marked as complete
Creating a Task
Using the Web UI
- Navigate to Projects → Select your project
- Click Create a new task
- Configure task settings:
- Name: Descriptive task name
- Subset: Optional subset identifier (e.g., “train”, “val”, “test”)
- Advanced configuration:
- Overlap: Number of frames overlapping between jobs
- Segment size: Frames per job (0 = single job)
- Image quality: Compressed frame quality (0-100)
- Data chunk size: Frames per chunk for streaming
- Upload data (see Uploading Data)
- Click Submit
Using the REST API
Create a task withPOST /api/tasks:
Using the Python SDK
Using the CLI
Uploading Data
Local Files
Upload images or videos from your computer: Using the SDK:Server Files
Use files from a mounted share:Remote Files (URLs)
Provide URLs to download:Cloud Storage
Use files from cloud storage:Data Upload Parameters
Job Management
Understanding Jobs
When data is uploaded, CVAT automatically splits the task into jobs based onsegment_size. Jobs are assigned to annotators for parallel work.
Job types:
annotation: Standard annotation jobground_truth: Ground truth validation jobconsensus_replica: Consensus annotation job
Viewing Jobs
Assigning Jobs
Using the API:Job States and Stages
Stages (workflow phase):annotation: Initial annotation phasevalidation: Review and quality check phaseacceptance: Final approval phase
new: Not startedin progress: Work in progresscompleted: Finishedrejected: Needs rework
Task States
Tasks inherit their status from constituent jobs:annotation: Jobs are being annotatedvalidation: Jobs are in validation/reviewcompleted: All jobs completed
stage and state:
Validation Modes
CVAT supports different validation configurations:Ground Truth Validation
Create a ground truth job for quality assessment:random_uniform: Random frames across entire taskrandom_per_job: Random frames from each jobmanual: Manually specified frame list
Honeypot Validation
Create tasks with hidden validation frames:Consensus Annotation
Enable multiple annotators for the same data:Updating Tasks
Update Task Properties
Update Task Labels (Standalone Tasks)
For tasks not in a project:Deleting Tasks
Best Practices
Optimize job segmentation
Optimize job segmentation
- Set
segment_sizeto 100-500 frames per job - Use
overlap(5-10 frames) for video tasks to ensure continuity - Smaller jobs = easier task management and recovery
- Consider annotator capacity when sizing jobs
Configure data upload efficiently
Configure data upload efficiently
- Use
chunk_size=72(default) for optimal streaming - Set
image_qualitybased on needs: 70-85 for most tasks - Use
frame_filter="step=N"to reduce video frames - Enable
use_cachefor faster repeated access
Manage task organization
Manage task organization
- Use
subsetfield for train/val/test splits - Assign descriptive names with batch/date info
- Group related tasks in projects
- Assign tasks to appropriate team members
Monitor task progress
Monitor task progress
- Check
jobs.completedcount regularly - Review job states and stages
- Use quality reports to track annotation quality
- Set up validation workflows early
Next Steps
Quality Control
Set up validation and quality metrics
Annotation Guide
Learn about annotation tools and workflows
Export Annotations
Export annotated data in various formats
API Reference
Complete task API documentation