Home

Awesome

Roboflow Blog Roboflow Notebook YouTube

Note RF100 is part of the CVinW challenge!

Roboflow 100 📸: A Rich, Multi-Domain Object Detection Benchmark

rf100blog-mosaicthing

This repository implements the Roboflow 100 benchmark developed by Roboflow. It contains code to download the dataset and reproduce mAP values for YOLOv5 and YOLOv7 Fine-Tuning and GLIP Evaluation on 100 of Roboflow Universe datasets.

RF100 was sponsored with ❤️ by Intel

RF100 paper is on arxiv, if you used RF100 in your research, please consider citing us

@misc{2211.13523,
Author = {Floriana Ciaglia and Francesco Saverio Zuppichini and Paul Guerrie and Mark McQuade and Jacob Solawetz},
Title = {Roboflow 100: A Rich, Multi-Domain Object Detection Benchmark},
Year = {2022},
Eprint = {arXiv:2211.13523},
}

RF100

RF100 contains the following datasets, carefully chosen from more than 90'000 datasets hosted on our universe hub. The datasets are splitted in 7 categories: Aerial, Videogames, Microscopic, Underwater, Documents, Electromagnetic and Real World.

CategoryDatasetsImagesClasses
Aerial7968324
Videogames71157988
Microscopic111337828
Underwater51800339
Documents82481390
Electromagnetic123638141
Real World50110615495
Total100224,714805

Note some datasets failed, only on 88

categoryyolov5yolov7yolov8glip
aerial0.6360.5042860.7072860.0238571
documents0.7161250.72250.797750.018625
electromagnetic0.74230.6390.78990.0697
microscopic0.6507270.591660.7474550.0230909
real world0.7816590.7052760.8421710.117049
underwater0.560.66240.70240.1876
videogames0.8633330.7831670.8810.1625
Total0.70710.65830.78110.0860

🚨 Head over the Appendix at the bottom to see samples from each dataset

We provide a notebook to help you using RF100 with PyTorch

Getting Started

First, clone this repo and go inside it.

git clone https://github.com/roboflow-ai/roboflow-100-benchmark.git
cd roboflow-100-benchmark
git submodule update --init --recursive

You will need an API key. RF100 can be accessed with any key from Roboflow, head over our doc to learn how to get one.

Then, export the key to your current shell

export ROBOFLOW_API_KEY=<YOUR_API_KEY>

Note: The datasets are taken from datasets_links.txt, you can modify that file to add/remove datasets.

Docker

The easiest and faster way to download RF100 is using docker and our Dockerfile.

NOTE Be sure to do the post process steps after you installed docker, we will read and write to shared volumes so your user should also be in the docker group.

If you have an NVIDIA GPU, be sure to also install nvidia docker

Be sure to have the ROBOFLOW_API_KEY in your env, then run it (we are passing our user so you shouldn't have permission errors on rf100 folder)

docker run --rm -it \
    -e ROBOFLOW_API_KEY=$ROBOFLOW_API_KEY \
    -v $(pwd)/rf100:/workspace/rf100 \
    -v /etc/group:/etc/group:ro \
    -u "$(id -u):$(id -g)" \
    roboflow/rf100-download

roboflow/rf100-download is hosted on our docker hub

Internally, RF100 will downloaded to /app/rf100. You can also specify the format with the -f flag, by default coco is used.

docker run --rm -it \
    -e ROBOFLOW_API_KEY=$ROBOFLOW_API_KEY \
    -v ${PWD}/rf100:/workspace/rf100 \
    -v /etc/group:/etc/group:ro \
    -u "$(id -u):$(id -g)" \
    roboflow/rf100-download -f yolov5

If you want to build the container and not use the image on the hub, run

docker build -t rf100-download -f Dockerfile.rf100.download .

Local Env

To download RF100 in your local enviroment (python >=3.6), you need to install roboflow

pip install roboflow

Then,

chmod 770 ./scripts/download_datasets.sh
./scripts/download_datasets.sh
./scripts/download_datasets.sh -f yolov5 $ change format
./scripts/download_datasets.sh -l <path_to_my_location> change download location

Formats

Supported formats are

Reproduce Results

We will use docker to ensure the same enviroment is used.

First, build the container

docker build -t rf100-benchmark -f Dockerfile.rf100.benchmark .

Then, follow the guide for each model.

All results are stored inside ./runs.

Warning The run must be uninterrupted otherwise the downloaded datasets may be unfinished or corrupted

Warning If you have permission denied errors, you can either remove runs with sudo rm -rf ./runs or give permissions to everybody sudo chmod -R +x ./runs.

Warning Due to poor code support, random errors and time, we weren't able to run all the models on all datasets. Only 88 datasets were successfully benchmarked on all four models

YOLOv5 Fine-Tuning

Note, we will map the current folder to the container file system to persist data

mkdir -p runs &&
nvidia-docker run --gpus all --rm -it --ipc host --network host --shm-size 64g \
    -e ROBOFLOW_API_KEY=$ROBOFLOW_API_KEY \
    -v ${PWD}/runs:/workspace/runs \
    -v ${PWD}/datasets_links_640.txt:/workspace/datasets_links_640.txt \
    rf100-benchmark ./yolov5-benchmark/train.sh

YOLOv7 Fine-Tuning

Note, we will map the current folder to the container file system to persist data

mkdir -p runs &&
nvidia-docker run --gpus all --rm -d --ipc host --network host --shm-size 64g \
    -e ROBOFLOW_API_KEY=$ROBOFLOW_API_KEY \
    -v ${PWD}/runs:/workspace/runs \
    -v ${PWD}/datasets_links_640.txt:/workspace/datasets_links_640.txt \
    rf100-benchmark ./yolov7-benchmark/train.sh

YOLOv8 Fine-Tuning

Note, Doc coming soon but we have the results (was done internally by another team member)

Note The model failed on these datasets: bone-fracture-7fylg, brain-tumor-m2pbp, cable-damage, circuit-elements and printed-circuit-board

GLIP

Note The model failed on these datasets: apex-videogame, apples-fvpl5, hand-gestures-jps7z, road-traffic, wall-damage

mkdir -p runs &&
nvidia-docker run --gpus all --rm -it --ipc host --network host --shm-size 64g \
    -e ROBOFLOW_API_KEY=$ROBOFLOW_API_KEY \
    -v ${PWD}/runs:/workspace/runs \
    -v ${PWD}/datasets_links_640.txt:/workspace/datasets_links_640.txt \
    rf100-benchmark ./GLIP-benchmark/train.sh

Note We create a notebook to analysis why and where GLIP did bad and good

COCO evaluation

If you are interesting in only the test annotations for rf100, e.g. you are using pycocotools to compute maps, we have create a zip file with root/<dataset_name>/<test_annotations>.json. We hope this will make it easier for you to evaluate your models.

Appendix

YOLOs Comparison

Note 5 datasets failed on v8, so the comparison is only on 95. Check v8 for more info.

Note We only train one seed for each model, take these results with a grain of salt

The following box plots shows mAP@.50 for each YOLOs model on RF100

<img width="500px" src="doc/images/comparison-yolos-box.png"/>

The following bar plots shows mAP@.50 for each YOLOs model on each RF100 category

<img width="500px" src="doc/images/comparison-yolos-bar.png"/>

Samples

datasetcategorysamples
hand-gestures-jps7zreal worldalt
smoke-uvyljreal worldalt
wall-damagereal worldalt
corrosion-bi3q3real worldalt
excavators-czvg9real worldalt
chess-pieces-mjzgjreal worldalt
road-signs-6ih4yreal worldalt
street-workreal worldalt
construction-safety-gsnvbreal worldalt
road-trafficreal worldalt
washroom-rf1fareal worldalt
circuit-elementsreal worldalt
mask-wearing-608prreal worldalt
cables-nl42kreal worldalt
soda-bottlesreal worldalt
truck-movementreal worldalt
wine-labelsreal worldalt
digits-t2eg6real worldalt
vehicles-q0x2vreal worldalt
peanuts-sd4kfreal worldalt
printed-circuit-boardreal worldalt
pests-2xlvxreal worldalt
cavity-rs0ufreal worldalt
leaf-disease-nsdsrreal worldalt
marblesreal worldalt
pills-sxdhtreal worldalt
poker-cards-cxcvzreal worldalt
number-opsreal worldalt
insects-mytwureal worldalt
cotton-20xz5real worldalt
furniture-ngpeareal worldalt
cable-damagereal worldalt
animals-ij5d2real worldalt
coins-1apkireal worldalt
apples-fvpl5real worldalt
people-in-paintingsreal worldalt
circuit-voltagesreal worldalt
uno-deckreal worldalt
grass-weedsreal worldalt
gauge-u2lwvreal worldalt
sign-language-sokdrreal worldalt
valentines-chocolatereal worldalt
fish-market-ggjsoreal worldalt
lettuce-palletsreal worldalt
shark-teeth-5atkureal worldalt
bees-jt5inreal worldalt
sedimentary-features-9eosfreal worldalt
currency-v4f8jreal worldalt
trail-camerareal worldalt
cell-towersreal worldalt
apex-videogamevideogamesalt
farcry6-videogamevideogamesalt
csgo-videogamevideogamesalt
avatar-recognition-nuexevideogamesalt
halo-infinite-angel-videogamevideogamesalt
team-fight-tacticsvideogamesalt
robomasters-285kmvideogamesalt
tweeter-postsdocumentsalt
tweeter-profiledocumentsalt
document-partsdocumentsalt
activity-diagrams-qdobrdocumentsalt
signatures-xc8updocumentsalt
paper-partsdocumentsalt
tabular-data-wf9uhdocumentsalt
paragraphs-co84bdocumentsalt
underwater-pipes-4ng4tunderwateralt
aquarium-qlnqyunderwateralt
peixos-fishunderwateralt
underwater-objects-5v7p8underwateralt
coral-lwptlunderwateralt
aerial-poolaerialalt
secondary-chainsaerialalt
aerial-spheresaerialalt
soccer-players-5fuqsaerialalt
weed-crop-aerialaerialalt
aerial-cowsaerialalt
cloud-typesaerialalt
stomata-cellsmicroscopicalt
bccd-ouzjzmicroscopicalt
parasites-1s07hmicroscopicalt
cells-uyemfmicroscopicalt
4-fold-defectmicroscopicalt
bacteria-ptywimicroscopicalt
cotton-plant-diseasemicroscopicalt
mitosis-gjs3gmicroscopicalt
phagesmicroscopicalt
liver-diseasemicroscopicalt
asbestosmicroscopicalt
thermal-dogs-and-people-x6ejwelectromagneticalt
solar-panels-taxvbelectromagneticalt
radio-signalelectromagneticalt
thermal-cheetah-my4dpelectromagneticalt
x-ray-rheumatologyelectromagneticalt
acl-x-rayelectromagneticalt
abdomen-mrielectromagneticalt
axial-mrielectromagneticalt
gynecology-mrielectromagneticalt
brain-tumor-m2pbpelectromagneticalt
bone-fracture-7fylgelectromagneticalt
flir-camera-objectselectromagneticalt

Credits

We thank all the authors of the original datasets, below a table linking the Roboflow 100 dataset's name to its original counterpart

datasetoriginal
hand-gestures-jps7zhttps://universe.roboflow.com/hand-gestures-recognition/hand-gestures-dataset
smoke-uvyljhttps://universe.roboflow.com/sigma-pub/smoke-detection-sigma
wall-damagehttps://universe.roboflow.com/sina-uyen0/damage_level_detection
corrosion-bi3q3https://universe.roboflow.com/khaingwintz-gmail-com/dataset--2-pathein-train-plus-v-3-update-mm
excavators-czvg9https://universe.roboflow.com/mohamed-sabek-6zmr6/excavators-cwlh0
chess-pieces-mjzgjhttps://universe.roboflow.com/joseph-nelson/chess-pieces-new
road-signs-6ih4yhttps://universe.roboflow.com/project-sign-detection/traffic-sign-cdfml
street-workhttps://universe.roboflow.com/cone/capacetes-e-cones
construction-safety-gsnvbhttps://universe.roboflow.com/computer-vision/worker-safety
road-traffichttps://universe.roboflow.com/due/detection-dlzhy
washroom-rf1fahttps://universe.roboflow.com/imagetaggingworkspace/washroom-image-tagging
circuit-elementshttps://universe.roboflow.com/new-workspace-rzrja/pcb-2.0
mask-wearing-608prhttps://universe.roboflow.com/joseph-nelson/mask-wearing
cables-nl42khttps://universe.roboflow.com/annotationericsson/annotation-2.0
soda-bottleshttps://universe.roboflow.com/food7/test1-iajnv
truck-movementhttps://universe.roboflow.com/psi-dhxqe/psi-rossville-pano
wine-labelshttps://universe.roboflow.com/wine-label/wine-label-detection
digits-t2eg6https://universe.roboflow.com/dmrs/number-1gmaw
vehicles-q0x2vhttps://universe.roboflow.com/7-class/11-11-2021-09.41
peanuts-sd4kfhttps://universe.roboflow.com/molds-onbk3/peanuts-mckge/
printed-circuit-boardhttps://universe.roboflow.com/new-workspace-rzrja/pcb-2.0
pests-2xlvxhttps://universe.roboflow.com/gugugu/pests-f8kkr
cavity-rs0ufhttps://universe.roboflow.com/duong-duc-cuong/cavity-n3ioq
leaf-disease-nsdsrhttps://universe.roboflow.com/puri/puri4-ygapu
marbleshttps://universe.roboflow.com/zhe-fan/marble-images
pills-sxdhthttps://universe.roboflow.com/mohamed-attia-e2mor/pill-detection-llp4r
poker-cards-cxcvzhttps://universe.roboflow.com/roboflow-100/poker-cards-cxcvz
number-opshttps://universe.roboflow.com/mnist-bvalq/mnist-icrul
insects-mytwuhttps://universe.roboflow.com/nirmani/yolo-custome-925
cotton-20xz5https://universe.roboflow.com/cotton-nqp2x/bt-cotton
furniture-ngpeahttps://universe.roboflow.com/minoj-selvaraj/furniture-sfocl
cable-damagehttps://universe.roboflow.com/st-hedgehog-yusupov-gmail-com/kanaaat
animals-ij5d2https://universe.roboflow.com/dane-sprsiter/barnyard
coins-1apkihttps://universe.roboflow.com/labelimg/label_coin
apples-fvpl5https://universe.roboflow.com/arfiani-nur-sayidah-9lizr/apple-sorting-2bfhk
people-in-paintingshttps://universe.roboflow.com/raya-al/french-paintings-dataset-d2vbe
circuit-voltageshttps://universe.roboflow.com/vanitchaporn/circuit-gexit
uno-deckhttps://universe.roboflow.com/joseph-nelson/uno-cards
grass-weedshttps://universe.roboflow.com/jan-douwe/testbl
gauge-u2lwvhttps://universe.roboflow.com/evankim9903-gmail-com/gauge_detection
sign-language-sokdrhttps://universe.roboflow.com/david-lee-d0rhs/american-sign-language-letters
valentines-chocolatehttps://universe.roboflow.com/chocolates/valentines-chocolates
fish-market-ggjsohttps://universe.roboflow.com/commolybroken/dataset-z2vab
lettuce-palletshttps://universe.roboflow.com/lettucedetector
shark-teeth-5atkuhttps://universe.roboflow.com/sharks/shark-taxonomy
bees-jt5inhttps://universe.roboflow.com/jjb-object-detection-projects/bee-detection-pry0w
sedimentary-features-9eosfhttps://universe.roboflow.com/sedimentary-structures/sedimentary-features-rmadz
currency-v4f8jhttps://universe.roboflow.com/alex-hyams-cosqx/cash-counter/
trail-camerahttps://universe.roboflow.com/my-game-pics/my-game-pics
cell-towershttps://universe.roboflow.com/yuyang-li/tower_jointv1
apex-videogamehttps://universe.roboflow.com/apex-esoic/apexyolov4
farcry6-videogamehttps://universe.roboflow.com/kais-al-hajjih/farcry6-hackathon
csgo-videogamehttps://universe.roboflow.com/new-workspace-rp0z0/csgo-train-yolo-v5
avatar-recognition-nuexehttps://universe.roboflow.com/new-workspace-0pohs/avatar-recognition-rfw8d
halo-infinite-angel-videogamehttps://universe.roboflow.com/graham-doerksen/halo-infinite-angel-aim
team-fight-tacticshttps://universe.roboflow.com/lamaitw/lama-itw/
robomasters-285kmhttps://universe.roboflow.com/etp5501-gmail-com/robomasters-colored
tweeter-postshttps://universe.roboflow.com/tweeter/tweeter
tweeter-profilehttps://universe.roboflow.com/wojciech-blachowski/tweets
document-partshttps://universe.roboflow.com/new-workspace-vf0ib/calpers
activity-diagrams-qdobrhttps://universe.roboflow.com/public1/activity-diagrams-s7sxv
signatures-xc8uphttps://universe.roboflow.com/signature-detection/signaturesdetectiob
paper-partshttps://universe.roboflow.com/object-detection-alan-devera/object-detection-ycqjb
tabular-data-wf9uhhttps://universe.roboflow.com/rik-biswas/tabular-data-dh4ek
paragraphs-co84bhttps://universe.roboflow.com/new-workspace-4vus5/singlemcq
underwater-pipes-4ng4thttps://universe.roboflow.com/underwaterpipes/underwater_pipes_orginal_pictures
aquarium-qlnqyhttps://universe.roboflow.com/brad-dwyer/aquarium-combined
peixos-fishhttps://universe.roboflow.com/nasca37/peixos3
underwater-objects-5v7p8https://universe.roboflow.com/workspace-txxpz/underwater-detection
coral-lwptlhttps://universe.roboflow.com/nikita-manolis-je2ii/coral-growth-form
aerial-poolhttps://universe.roboflow.com/a-s/uwh
secondary-chainshttps://universe.roboflow.com/cc_moon/secondaries
aerial-sphereshttps://universe.roboflow.com/mevil-crasta/annotating-spheres---11-04
soccer-players-5fuqshttps://universe.roboflow.com/ilyes-talbi-ptwsp/futbol-players
weed-crop-aerialhttps://universe.roboflow.com/new-workspace-csmgu/weedcrop-waifl
aerial-cowshttps://universe.roboflow.com/omarkapur-berkeley-edu/livestalk
cloud-typeshttps://universe.roboflow.com/research-project/shallow-cloud
stomata-cellshttps://universe.roboflow.com/new-workspace-fditd/stomata02
bccd-ouzjzhttps://universe.roboflow.com/team-roboflow/blood-cell-detection-1ekwu
parasites-1s07hhttps://universe.roboflow.com/graduao/sistema-para-analise-de-ovos-de-parasitas-em-amostra-de-agua-e-sangue
cells-uyemfhttps://universe.roboflow.com/new-workspace-86q1t/t03-proyecto-celula-dataset-ampliado
4-fold-defecthttps://universe.roboflow.com/kat-laura/defect-detection-gil85
bacteria-ptywihttps://universe.roboflow.com/terada-shoma/gram-positive-bacteria
cotton-plant-diseasehttps://universe.roboflow.com/quandong-qian/desease-cotton-plant
mitosis-gjs3ghttps://universe.roboflow.com/20029-tkmce-ac-in/mitosis-dwute
phageshttps://universe.roboflow.com/danish2562022-gmail-com/microglia_rgb/
liver-diseasehttps://universe.roboflow.com/liver-t5yvf/liver-diseases
asbestoshttps://universe.roboflow.com/ahmad-rabiee/asbest91
thermal-dogs-and-people-x6ejwhttps://universe.roboflow.com/joseph-nelson/thermal-dogs-and-people
solar-panels-taxvbhttps://universe.roboflow.com/new-workspace-rt1da/solarpaneldetectmodel
radio-signalhttps://universe.roboflow.com/danil/
thermal-cheetah-my4dphttps://universe.roboflow.com/brad-dwyer/thermal-cheetah
x-ray-rheumatologyhttps://universe.roboflow.com/publictestsite/xray-rheumatology-images-public
acl-x-rayhttps://universe.roboflow.com/objectdetection-9lu9z/detectron2-acl
abdomen-mrihttps://universe.roboflow.com/xinweihe/circle-3train
axial-mrihttps://universe.roboflow.com/tfg-2nmge/axial-dataset
gynecology-mrihttps://universe.roboflow.com/yuanyuanpei7/5-8w
brain-tumor-m2pbphttps://universe.roboflow.com/yousef-ghanem-jzj4y/brain-tumor-detection-fpf1f
bone-fracture-7fylghttps://universe.roboflow.com/science-research/science-research-2022:-bone-fracture-detection
flir-camera-objectshttps://universe.roboflow.com/thermal-imaging-0hwfw/flir-data-set