Skip to main content

Overview

FiftyOne is an open-source tool for dataset visualization, exploration, and curation that integrates seamlessly with CVAT. This integration creates a powerful workflow for managing computer vision datasets, combining FiftyOne’s advanced analytics with CVAT’s annotation capabilities.
The FiftyOne integration is available for both CVAT Cloud and self-hosted installations.

What is FiftyOne?

FiftyOne is an open-source dataset curation and model analysis tool that provides:
  • Visual dataset exploration: Interactive browser-based dataset visualization
  • Dataset quality analysis: Identify issues, outliers, and edge cases
  • Model evaluation: Analyze model predictions and errors
  • Label refinement: Send samples to CVAT for annotation or correction
  • Embeddings visualization: Understand dataset structure and diversity

Prerequisites

  • Python 3.7 or higher
  • FiftyOne installed (pip install fiftyone)
  • CVAT account (Cloud or self-hosted)
  • CVAT API credentials

Installation

Install FiftyOne with CVAT integration support:
Verify the installation:

Connecting FiftyOne to CVAT

Configure FiftyOne to connect to your CVAT instance:

For CVAT Cloud

For Self-Hosted CVAT

Never hardcode credentials in your scripts. Use environment variables or a secure configuration file.

Using Environment Variables

Then in Python:

Workflow: FiftyOne to CVAT

1. Load and Explore Dataset in FiftyOne

Start by loading a dataset into FiftyOne:

2. Select Samples for Annotation

Use FiftyOne’s query capabilities to select samples:

3. Send Samples to CVAT

Export selected samples to CVAT for annotation:

4. Annotate in CVAT

Annotators can now work on the task in CVAT using all available features:
  • Manual annotation tools
  • Automatic annotation with AI models
  • Quality control and review
  • Collaborative annotation

5. Import Annotations Back to FiftyOne

Once annotation is complete, import the results:

Workflow: CVAT to FiftyOne

You can also import existing CVAT projects into FiftyOne:

Import CVAT Project

Download CVAT Annotations

Advanced Use Cases

Dataset Quality Control

Use FiftyOne to identify annotation quality issues:

Active Learning Pipeline

Implement an active learning workflow:

Model Evaluation with CVAT Refinement

Best Practices

  1. Explore first: Use FiftyOne to understand your data before annotating
  2. Strategic sampling: Annotate the most valuable samples first
  3. Batch processing: Break large datasets into manageable CVAT tasks
  4. Regular syncing: Import annotations frequently to track progress
  • Task size: 50-200 images per task works well
  • Job segments: 10-30 images per job for efficient annotation
  • Label consistency: Use the same label schema across all tasks
  • Clear naming: Use descriptive task names with dates/batches
  • Use FiftyOne to visualize annotations after import
  • Compare multiple annotator outputs
  • Identify and resolve label inconsistencies
  • Track annotation progress with metadata

Troubleshooting

Connection Issues

Problem: Cannot connect to CVAT from FiftyOne Solution:

Label Schema Mismatch

Problem: Labels don’t match between FiftyOne and CVAT Solution: Explicitly define label mappings:

Large Dataset Performance

For large datasets:
  • Use dataset views to work with subsets
  • Enable sample caching in FiftyOne
  • Break into multiple smaller CVAT tasks

Additional Resources