README.md

August 14, 2026 · View on GitHub

Roboflow 100-VL:
A Multi-Domain Object Detection Benchmark
for Vision-Language Models

Peter Robicheaux 1† Matvei Popov1† Anish Madan 2 Isaac Robinson 1

Joseph Nelson 1 Deva Ramanan 2 Neehar Peri 2

Roboflow    Carnegie Mellon University

† Equal Contribution

Datasets   Website

Introduced in the paper "Roboflow 100-VL: A Multi-Domain Object Detection Benchmark for Vision-Language Models", RF100-VL is a large-scale collection of 100 multi-modal datasets with diverse concepts not commonly found in VLM pre-training.

The benchmark includes images, with corresponding annotations, from seven domains: flora and fauna, sport, industry, document processing, laboratory imaging, aerial imagery, and miscellaneous datasets related to various use cases for which detection models are commonly used.

You can use RF100-VL to benchmark fully supervised, semi-supervised and few-shot object detection models, and Vision Language Models (VLMs) with localization capabilities.

Download RF100-VL

To download RF100-VL, first install the rf100vl pip package:

pip install rf100vl

RF100-VL is hosted on Roboflow Universe, the world's largest repository of annotated computer vision dataset. You will need a free Roboflow Universe API key to download the dataset. Learn how to find your API key

Export your API key into an environment variable called ROBOFLOW_API_KEY:

export ROBOFLOW_API_KEY=YOUR_KEY

Several helper functions are available to download RF100-VL and its subsets. These are split up into two categories: functions that retrieve Dataset objects with the name of each project and its category. (that start with get_), and data downloaders (that start with download_).

Data Loader NameDataset Name
get_rf100vl_fsod_projectsRF100-VL-FSOD
get_rf100vl_projectsRF100-VL
get_rf20vl_fsod_projectsRF20-VL-FSOD
get_rf20vl_full_projectsRF20-VL
download_rf100vl_fsodRF100-VL-FSOD
download_rf100vlRF100-VL
download_rf20vl_fsodRF20-VL-FSOD
download_rf20vl_fullRF20-VL

Each dataset object has its own download method.

Here is an example showing how to download the full dataset:

from rf100vl import download_rf100vl

download_rf100vl(path="./rf100-vl/")

The datasets will be downloaded in COCO JSON format to a directory called rf100-vl. Every dataset will be in its own sub-folder.

CLI

A command-line downloader is available via the optional cli extra:

pip install "rf100vl[cli]"
rf100vl download rf100vl ./rf100-vl/

Flags:

FlagDescription
datasetrf100vl or rf20vl (positional)
pathdownload destination (positional)
--fsoduse the few-shot object detection variant
--index Ndownload only dataset index N in the variant (zero-based; 0 = first dataset), instead of all
--model_formatannotation format, default coco
--overwriteoverwrite existing files, default True
--api_keyRoboflow API key, defaults to ROBOFLOW_API_KEY env var

Examples:

rf100vl download rf100vl ./data                 # RF100-VL, full
rf100vl download rf100vl ./data --fsod           # RF100-VL-FSOD
rf100vl download rf20vl ./data --fsod            # RF20-VL-FSOD
rf100vl download rf100vl ./data --index 0        # first dataset by index

Combine Datasets

Fold two or more RF100-VL sub-datasets into a single COCO dataset — one unified label space, one set of train/valid/test folders — instead of training against each dataset separately.

Category labels are namespaced per source dataset (dataset:label, e.g. deeppcb:open vs stomata-cells:open) to avoid false-friend collisions between datasets that happen to use the same word for different concepts. Image filenames are prefixed with their source dataset (bees_<file>.jpg) so they never collide once combined.

Two ways to combine, matching two use cases:

  1. Download + combine in one stepdownload(..., combine=True) / rf100vl download ... --combine. Downloads the selected datasets into <path>/.cache/ (kept, reused on future calls with an overlapping selection) and writes the combined dataset directly at <path>/{train,valid,test}.
  2. Combine datasets you already downloadedcombine_downloaded(...) / rf100vl combine. No network access; operates in place on a directory that already contains per-dataset folders (e.g. from several plain download calls). Destructive by default: each per-dataset folder (path/bees, path/deeppcb, ...) is moved into the combined tree and removed once empty, so no disk space is duplicated. Pass keep_originals=True to copy instead and leave the source folders intact. Interrupted runs are resumable — progress is tracked in path/.combine_manifest.json, so re-running skips already-merged datasets instead of redoing them.

Python API:

from rf100vl import download_and_combine, combine_downloaded

# download 3 datasets by global index and combine them
download_and_combine("./combined", indices=[0, 15, 29])

# or combine datasets you already downloaded under ./data
# (./data/bees, ./data/deeppcb, ... get folded into ./data/{train,valid,test})
combine_downloaded("./data")

CLI:

rf100vl download rf100vl ./combined --combine --indices 0,15,29
rf100vl combine ./data
rf100vl combine ./data --names bees,deeppcb --keep-originals
Flag (combine)Description
pathdirectory of already-downloaded per-dataset folders to combine (positional)
--indicescomma-separated global dataset indices to include, e.g. 0,3,7; mutually exclusive with --names
--namescomma-separated canonical dataset basenames to include, e.g. bees,deeppcb; mutually exclusive with --indices
--keep_originalscopy instead of move — leaves source per-dataset folders untouched (default: False)

download's --combine flag adds --indices/--names (same meaning as above) and requires one of --index, --indices, or --names to pick a finite selection; not yet supported together with --fsod.

Acknowledgements

This work was supported in part by compute provided by NVIDIA, and the NSF GRFP (Grant No. DGE2140739).

License

The datasets that comprise RF100-VL are licensed under an Apache 2.0 license.

Citation

If you find our paper and code repository useful, please cite us:

@article{robicheaux2025roboflow100vl,
  title={Roboflow100-VL: A multi-domain object detection benchmark for vision-language models},
  author={Robicheaux, Peter and Popov, Matvei and Madan, Anish and Robinson, Isaac and Nelson, Joseph and Ramanan, Deva and Peri, Neehar},
  journal={Advances in Neural Information Processing Systems},
  year={2025}
}