Roboflow

Object Detection Benchmark

The Object Detection task asks each model to locate and classify objects by returning a bounding box and a class label for every one, in the requested output format. Unlike counting or identification, the model must report both what each object is and precisely where it sits in the image. Each prompt restricts the model to a fixed list of class labels.

30 models evaluated

Evals updated August 14, 2026Pricing updated August 18, 2026

Score key:≥75%40–74%<40%
1
77.1%
61.4%60.3%3.2K$0.01330.49s
2
69.4%
59.8%56.2%2.2K$0.00248.68s
3
68.7%
55.8%53.0%2.8K$0.0168.17s
4
68.2%
46.6%45.2%3.2K$0.02221.44s
5
67.4%
55.8%52.4%1.9K$0.0108.76s
6
60.7%
40.4%39.6%2.9K$0.0149.86s
7
60.2%
43.5%40.7%3.8K$0.00948.52s
8
QwenQwen 3.7 Plus
60.1%
48.4%45.1%2.2K$0.001313.21s
9
59.9%
41.4%41.1%3.0K$0.001510.29s
10
58.8%
46.4%45.1%2.6K$0.001314.71s
11
58.4%
40.7%38.6%4.1K$0.01016.39s
12
57.5%
46.6%44.5%2.0K$0.00234.09s
13
Z.aiGLM 5V Turbo
56.5%
39.9%39.2%3.3K$0.00528.59s
14
56.4%
31.0%31.4%3.2K$0.05912.78s
15
56.0%
46.4%44.5%2.1K$0.00416.33s
16
54.5%
43.2%41.2%3.8K$0.003615.64s
17
AnthropicClaude Opus 5
54.4%
30.2%30.5%3.1K$0.02711.20s
18
52.1%
42.9%40.3%3.1K$0.001418.26s
19
MoonshotAIKimi K3
51.9%
41.5%40.4%4.3K$0.02023.23s
20
42.8%
32.9%31.1%2.2K$0.00019.54s
21
OpenAIGPT-5.5
41.7%
21.1%22.2%2.9K$0.03413.17s
22
41.0%
22.3%23.0%3.1K$0.002015.03s
23
38.6%
29.2%27.9%2.0K$0.00315.86s
24
38.6%
13.3%16.8%3.0K$0.0268.34s
25
36.1%
15.8%18.1%3.1K$0.0117.19s
26
MoonshotAIKimi K2.6
35.7%
26.7%26.8%3.5K$0.005964.70s
27
33.7%
25.1%24.7%1.4K$0.01010.06s
28
GrokGrok 4.6NEW
20.2%
4.6%8.0%2.3K$0.00686.47s
29
18.0%
4.6%7.5%3.0K$0.010018.73s
30
16.1%
3.5%5.9%2.5K$0.00447.69s

Score vs. cost

Object Detection score (mAP@50) against estimated cost per sample. Upper-left is the sweet spot: high quality at low cost.

30 models on the current benchmark · Object Detection task only

Example Object Detection benchmark tasks

Real samples from the benchmark: the image each model sees, the question it is asked, and the ground-truth answer it is scored against.

Benchmark sample: Sports (Basketball) without annotations
Benchmark sample: Sports (Basketball) with predicted boxes and labels
AnnotatedOriginal

The models are asked

Detect all objects in this image. Output a JSON list where each entry contains the 2D bounding box in the key "box_2d" and the text label in the key "label". The "box_2d" value must be [y_min, x_min, y_max, x_max]: integers between 0 and 1000, normalized to the image height and width. Return only the JSON list, with no extra text. Only use these labels: ball in basket, basket rim, basketball, jersey number, player, player doing layup dunk, referee

ball in basketbasket rimbasketballjersey numberplayerplayer doing layup dunkreferee

Ground truth

19 objects

ball in basket × 1basket rim × 1basketball × 1jersey number × 5player × 8player doing layup dunk × 1referee × 2

Benchmark sample: Aerial / Drone (Solar Hot Spots) without annotations
Benchmark sample: Aerial / Drone (Solar Hot Spots) with predicted boxes and labels
AnnotatedOriginal

The models are asked

Detect all objects in this image. Output a JSON list where each entry contains the 2D bounding box in the key "box_2d" and the text label in the key "label". The "box_2d" value must be [y_min, x_min, y_max, x_max]: integers between 0 and 1000, normalized to the image height and width. Return only the JSON list, with no extra text. Only use these labels: solar panel hot spot

solar panel hot spot

Ground truth

15 objects

solar panel hot spot × 15

Benchmark sample: Aerial / Drone (Agriculture) without annotations
Benchmark sample: Aerial / Drone (Agriculture) with predicted boxes and labels
AnnotatedOriginal

The models are asked

Detect all objects in this image. Output a JSON list where each entry contains the 2D bounding box in the key "box_2d" and the text label in the key "label". The "box_2d" value must be [y_min, x_min, y_max, x_max]: integers between 0 and 1000, normalized to the image height and width. Return only the JSON list, with no extra text. Only use these labels: banana tree

banana tree

Ground truth

43 objects

banana tree × 43

Benchmark sample: Industrial (Bottle Caps) without annotations
Benchmark sample: Industrial (Bottle Caps) with predicted boxes and labels
AnnotatedOriginal

The models are asked

Detect all objects in this image. Output a JSON list where each entry contains the 2D bounding box in the key "box_2d" and the text label in the key "label". The "box_2d" value must be [y_min, x_min, y_max, x_max]: integers between 0 and 1000, normalized to the image height and width. Return only the JSON list, with no extra text. Only use these labels: soda bottle cap

soda bottle cap

Ground truth

24 objects

soda bottle cap × 24

Benchmark sample: Pharmaceutical (Pills) without annotations
Benchmark sample: Pharmaceutical (Pills) with predicted boxes and labels
AnnotatedOriginal

The models are asked

Detect all objects in this image. Output a JSON list where each entry contains the 2D bounding box in the key "box_2d" and the text label in the key "label". The "box_2d" value must be [y_min, x_min, y_max, x_max]: integers between 0 and 1000, normalized to the image height and width. Return only the JSON list, with no extra text. Only use these labels: pill

pill

Ground truth

50 objects

pill × 50

How Object Detection is scored

Quality is scored by how well the predicted boxes overlap the ground truth, using mean Average Precision. The headline metric is mAP@50 (a prediction counts when its box overlaps the truth by at least 50%), with stricter mAP@75 and mAP@50:95 also reported.

Every model runs the same sample set in a single evaluation pass. Token usage is measured from each provider’s API response, and cost per sample is that usage multiplied by the model’s published pricing. See the full methodology.

Frequently Asked Questions

Mean Average Precision measures how well predicted boxes match ground-truth boxes. The number is the overlap (IoU) threshold a prediction must clear to count: mAP@50 requires 50% overlap, mAP@75 requires 75%, and mAP@50:95 averages across thresholds from 50% to 95%. Higher thresholds demand more precise boxes, so scores drop as the threshold rises.

These are general-purpose vision language models prompted to output boxes, with no task-specific training. Dedicated detectors trained on a specific dataset still score far higher on it. The value here is zero-shot flexibility: the same model can detect arbitrary classes described in plain text.

Most models in this leaderboard link to their Playground page. Click the model name to open it, then upload your own image and run it. A few models are benchmarked for comparison only and do not have a Playground page yet.