Roboflow

Object Counting Benchmark

The Counting task asks each model to report exactly how many of a specified thing appear in an image. The model must find every matching object, cope with clutter, overlap, and partial occlusion, avoid double-counting, and return a single number. Targets range from people and products to pills, checkmarks, and even empty slots.

63 models evaluated94 runs across effort levels

Evals updated October 13, 2026Pricing updated October 15, 2026

Score key:≥75%40–74%<40%
1high
90.5%
±1.4, Mean of 3 runs, range 89.2 to 91.9
90.5%±1.4, Mean of 3 runs, range 89.2 to 91.91.9K$0.01011.00s
2low
86.0%
±0.7, Mean of 3 runs, range 85.1 to 86.5
86.0%±0.7, Mean of 3 runs, range 85.1 to 86.51.2K$0.00243.47s
3high
82.9%
±1.4, Mean of 3 runs, range 81.1 to 83.8
80.2%±1.4, Mean of 3 runs, range 78.4 to 81.11.7K$0.005310.91s
4high
82.4%
±0.0, Mean of 3 runs, range 82.4 to 82.4
82.4%±0.0, Mean of 3 runs, range 82.4 to 82.42.8K$0.01713.63s
5high
82.0%
±2.0, Mean of 3 runs, range 79.7 to 83.8
81.1%±1.4, Mean of 3 runs, range 79.7 to 82.41.7K$0.009811.95s
6high
81.1%
±1.4, Mean of 3 runs, range 79.7 to 82.4
81.1%±1.4, Mean of 3 runs, range 79.7 to 82.41.6K$0.0287.80s
6low
81.1%
±2.0, Mean of 3 runs, range 78.4 to 82.4
81.1%±2.0, Mean of 3 runs, range 78.4 to 82.41.5K$0.004610.13s
6high
81.1%
±0.0, Mean of 3 runs, range 81.1 to 81.1
81.1%±0.0, Mean of 3 runs, range 81.1 to 81.12.3K$0.009125.36s
9low
80.6%
±2.0, Mean of 3 runs, range 78.4 to 82.4
77.0%±2.7, Mean of 3 runs, range 74.3 to 79.71.6K$0.008110.24s
9low
80.6%
±0.7, Mean of 3 runs, range 79.7 to 81.1
80.6%±0.7, Mean of 3 runs, range 79.7 to 81.11.8K$0.007511.75s
11low
80.2%
±1.4, Mean of 3 runs, range 78.4 to 81.1
80.2%±1.4, Mean of 3 runs, range 78.4 to 81.11.4K$0.0184.39s
11high
80.2%
±3.4, Mean of 3 runs, range 77.0 to 83.8
80.2%±3.4, Mean of 3 runs, range 77.0 to 83.81.7K$0.005713.44s
11low
80.2%
±2.0, Mean of 3 runs, range 78.4 to 82.4
80.2%±2.0, Mean of 3 runs, range 78.4 to 82.41.8K$0.003415.55s
14high
79.7%
±1.4, Mean of 3 runs, range 78.4 to 81.1
79.7%±1.4, Mean of 3 runs, range 78.4 to 81.13.3K$0.04322.28s
15low
79.3%
±0.7, Mean of 3 runs, range 78.4 to 79.7
35.1%±0.0, Mean of 3 runs, range 35.1 to 35.11.6K$0.004210.67s
15high
79.3%
±2.0, Mean of 3 runs, range 77.0 to 81.1
79.3%±2.0, Mean of 3 runs, range 77.0 to 81.12.4K$0.005610.93s
15high
79.3%
±2.7, Mean of 3 runs, range 77.0 to 82.4
79.3%±2.7, Mean of 3 runs, range 77.0 to 82.43.3K$0.008919.03s
15high
79.3%
±1.4, Mean of 3 runs, range 78.4 to 81.1
79.3%±1.4, Mean of 3 runs, range 78.4 to 81.17.3K$0.02425.19s
19low
78.8%
±2.7, Mean of 3 runs, range 75.7 to 81.1
78.8%±2.7, Mean of 3 runs, range 75.7 to 81.11.9K$0.00369.67s
19low
78.8%
±3.4, Mean of 3 runs, range 75.7 to 82.4
78.8%±3.4, Mean of 3 runs, range 75.7 to 82.41.5K$0.003711.88s
21low
78.4%
±1.4, Mean of 3 runs, range 77.0 to 79.7
78.4%±1.4, Mean of 3 runs, range 77.0 to 79.71.6K$0.002517.62s
22
OpenAIGPT-6 Sol
high
77.5%
±1.3, Mean of 3 runs, range 75.7 to 78.4
77.5%±1.3, Mean of 3 runs, range 75.7 to 78.41.8K$0.007011.03s
23low
76.6%
±1.3, Mean of 3 runs, range 75.7 to 78.4
76.6%±1.3, Mean of 3 runs, range 75.7 to 78.42.0K$0.00425.23s
23
OpenAIGPT-6 Sol
low
76.6%
±2.0, Mean of 3 runs, range 74.3 to 78.4
76.6%±2.0, Mean of 3 runs, range 74.3 to 78.41.5K$0.00395.72s
23low
76.6%
±2.7, Mean of 3 runs, range 74.3 to 79.7
76.6%±2.7, Mean of 3 runs, range 74.3 to 79.72.2K$0.00506.46s
23low
76.6%
±1.3, Mean of 3 runs, range 75.7 to 78.4
76.1%±2.0, Mean of 3 runs, range 74.3 to 78.42.3K$0.02410.98s
27high
76.1%
±0.7, Mean of 3 runs, range 75.7 to 77.0
76.6%±1.3, Mean of 3 runs, range 75.7 to 78.42.9K$0.00797.96s
27high
76.1%
±2.0, Mean of 3 runs, range 74.3 to 78.4
76.1%±2.0, Mean of 3 runs, range 74.3 to 78.41.9K$0.01610.16s
29high
75.7%
±3.4, Mean of 3 runs, range 73.0 to 79.7
74.8%±4.1, Mean of 3 runs, range 71.6 to 79.73.2K$0.009429.52s
30high
75.2%
±2.0, Mean of 3 runs, range 73.0 to 77.0
75.2%±2.0, Mean of 3 runs, range 73.0 to 77.02.9K$0.008212.44s
31low
74.3%
±1.4, Mean of 3 runs, range 73.0 to 75.7
74.3%±1.4, Mean of 3 runs, range 73.0 to 75.71.6K$0.00985.92s
31low
74.3%
±2.0, Mean of 3 runs, range 73.0 to 77.0
72.5%±1.3, Mean of 3 runs, range 71.6 to 74.32.2K$0.004920.06s
33high
73.0%
±4.7, Mean of 3 runs, range 67.6 to 77.0
48.6%±5.4, Mean of 3 runs, range 41.9 to 52.71.7K$0.0236.53s
33
AnthropicClaude Haiku 5.5NEW
high
73.0%
±1.3, Mean of 3 runs, range 71.6 to 74.3
73.0%±1.3, Mean of 3 runs, range 71.6 to 74.32.0K$0.000416.49s
35high
72.1%
±0.7, Mean of 3 runs, range 71.6 to 73.0
72.1%±0.7, Mean of 3 runs, range 71.6 to 73.01.9K$0.00048.02s
36low
71.6%
±0.0, Mean of 3 runs, range 71.6 to 71.6
71.6%±0.0, Mean of 3 runs, range 71.6 to 71.61.6K$0.00025.68s
36low
71.6%
71.6%1.5K$0.00716.19s
38high
70.7%
±3.4, Mean of 3 runs, range 66.2 to 73.0
70.7%±3.4, Mean of 3 runs, range 66.2 to 73.02.4K$0.001513.90s
39
AnthropicClaude Opus 5
low
70.3%
70.3%1.6K$0.00964.44s
40low
69.4%
±2.7, Mean of 3 runs, range 66.2 to 71.6
41.4%±2.0, Mean of 3 runs, range 39.2 to 43.21.6K$0.0195.75s
41
AnthropicClaude Haiku 5.5NEW
low
68.9%
±4.7, Mean of 3 runs, range 64.9 to 74.3
66.2%±4.1, Mean of 3 runs, range 63.5 to 71.61.8K$0.000318.88s
42
OpenAIGPT-5.5
low
68.0%
±3.4, Mean of 3 runs, range 64.9 to 71.6
68.0%±3.4, Mean of 3 runs, range 64.9 to 71.61.6K$0.0158.03s
42high
68.0%
±0.7, Mean of 3 runs, range 67.6 to 68.9
68.0%±0.7, Mean of 3 runs, range 67.6 to 68.92.6K$0.000816.66s
42
OpenAIGPT-5.5
high
68.0%
±1.4, Mean of 3 runs, range 66.2 to 68.9
68.0%±1.4, Mean of 3 runs, range 66.2 to 68.92.8K$0.04923.19s
42high
68.0%
±2.0, Mean of 3 runs, range 66.2 to 70.3
68.0%±2.0, Mean of 3 runs, range 66.2 to 70.33.4K$032.28s
46low
67.6%
67.6%1.3K$0.00122.92s
46low
67.6%
±1.4, Mean of 3 runs, range 66.2 to 68.9
67.6%±1.4, Mean of 3 runs, range 66.2 to 68.95.8K$0117.29s
48low
67.1%
±1.4, Mean of 3 runs, range 66.2 to 68.9
67.1%±1.4, Mean of 3 runs, range 66.2 to 68.91.7K$0.00065.16s
48low
67.1%
±4.7, Mean of 3 runs, range 62.2 to 71.6
67.1%±4.7, Mean of 3 runs, range 62.2 to 71.65.6K$078.17s
50low
66.2%
66.2%1.7K$0.00073.71s
51low
65.8%
±2.0, Mean of 3 runs, range 63.5 to 67.6
65.8%±2.0, Mean of 3 runs, range 63.5 to 67.61.6K$0.00565.54s
51low
65.8%
±4.1, Mean of 3 runs, range 62.2 to 70.3
65.8%±4.1, Mean of 3 runs, range 62.2 to 70.32.4K$0.007913.97s
53low
65.3%
±2.7, Mean of 3 runs, range 62.2 to 67.6
65.3%±2.7, Mean of 3 runs, range 62.2 to 67.66.5K$050.42s
54low
64.9%
±4.1, Mean of 3 runs, range 60.8 to 68.9
64.9%±4.1, Mean of 3 runs, range 60.8 to 68.91.6K$09.16s
54high
64.9%
±2.0, Mean of 3 runs, range 63.5 to 67.6
64.9%±2.0, Mean of 3 runs, range 63.5 to 67.62.8K$0.007311.15s
54high
64.9%
±1.4, Mean of 3 runs, range 63.5 to 66.2
64.4%±2.0, Mean of 3 runs, range 62.2 to 66.21.8K$0.000315.63s
57low
63.5%
63.5%1.5K$0.0175.99s
58
MistralMistral Large 4NEW
high
63.1%
±2.0, Mean of 3 runs, range 60.8 to 64.9
63.1%±2.0, Mean of 3 runs, range 60.8 to 64.95.5K$0.009458.46s
59high
62.6%
±2.7, Mean of 3 runs, range 59.5 to 64.9
62.6%±2.7, Mean of 3 runs, range 59.5 to 64.91.8K$0.00768.31s
59low
62.6%
±2.0, Mean of 3 runs, range 60.8 to 64.9
62.6%±2.0, Mean of 3 runs, range 60.8 to 64.96.5K$044.54s
61low
61.7%
±1.3, Mean of 3 runs, range 60.8 to 63.5
61.7%±1.3, Mean of 3 runs, range 60.8 to 63.53.4K$0.01116.76s
62high
60.8%
±1.3, Mean of 3 runs, range 59.5 to 62.2
60.8%±1.3, Mean of 3 runs, range 59.5 to 62.24.4K$0.01732.45s
63low
59.5%
±3.4, Mean of 3 runs, range 55.4 to 62.2
59.5%±3.4, Mean of 3 runs, range 55.4 to 62.22.2K$0.006518.20s
64high
59.0%
±5.4, Mean of 3 runs, range 52.7 to 63.5
58.1%±6.8, Mean of 3 runs, range 50.0 to 63.52.4K$0.001642.05s
65low
58.6%
±2.0, Mean of 3 runs, range 56.8 to 60.8
58.6%±2.0, Mean of 3 runs, range 56.8 to 60.81.6K$0.00193.84s
66high
57.7%
±3.4, Mean of 3 runs, range 54.0 to 60.8
57.7%±3.4, Mean of 3 runs, range 54.0 to 60.83.1K$0.01234.88s
67low
56.8%
56.8%1.5K$0.00302.99s
67
MoonshotAIKimi K2.6
low
56.8%
50.0%1.7K$0.001910.95s
67low
56.8%
±1.4, Mean of 3 runs, range 55.4 to 58.1
56.8%±1.4, Mean of 3 runs, range 55.4 to 58.17.7K$060.48s
67high
56.8%
±1.4, Mean of 3 runs, range 55.4 to 58.1
56.8%±1.4, Mean of 3 runs, range 55.4 to 58.15.8K$0.02777.54s
71low
56.3%
±2.7, Mean of 3 runs, range 54.0 to 59.5
56.3%±2.7, Mean of 3 runs, range 54.0 to 59.51.1K$0.00024.97s
72low
55.4%
55.4%1.5K$0.00016.20s
73
MistralMistral Large 4NEW
low
54.5%
±0.7, Mean of 3 runs, range 54.0 to 55.4
54.5%±0.7, Mean of 3 runs, range 54.0 to 55.41.5K$0.00101.61s
74low
54.0%
52.7%1.5K$0.00762.33s
75low
52.7%
52.7%1.3K$0.00071.68s
75low
52.7%
52.7%390$0.00123.07s
77low
51.4%
–1.1K$02.17s
77low
51.4%
±2.7, Mean of 3 runs, range 48.6 to 54.0
51.4%±2.7, Mean of 3 runs, range 48.6 to 54.0792$013.55s
79low
50.0%
50.0%1.1K$0.00042.34s
79low
50.0%
±2.0, Mean of 3 runs, range 48.6 to 52.7
48.6%±2.0, Mean of 3 runs, range 47.3 to 51.41.1K$0.00053.47s
81low
49.5%
±8.1, Mean of 3 runs, range 41.9 to 58.1
47.8%±8.1, Mean of 3 runs, range 39.2 to 55.41.1K$0.00025.76s
82low
48.6%
48.6%1.4K$0.00174.35s
83low
47.3%
47.3%1.1K$0.00023.92s
84
DeepSeekDeepSeek V4 Flash Vision Exp
low
46.0%
46.0%390$0.00021.27s
84low
46.0%
46.0%1.1K<$0.00013.18s
84
MoonshotAIKimi K3
low
46.0%
46.0%1.5K$0.00086.12s
87low
43.2%
±2.0, Mean of 3 runs, range 41.9 to 46.0
43.2%±2.0, Mean of 3 runs, range 41.9 to 46.01.7K$013.72s
88low
42.8%
±1.4, Mean of 3 runs, range 41.9 to 44.6
42.8%±1.4, Mean of 3 runs, range 41.9 to 44.62.1K$08.58s
89low
39.2%
±4.1, Mean of 3 runs, range 36.5 to 44.6
39.2%±4.1, Mean of 3 runs, range 36.5 to 44.69.6K$059.54s
90low
33.8%
±8.1, Mean of 3 runs, range 25.7 to 41.9
33.8%±8.1, Mean of 3 runs, range 25.7 to 41.91.1K$00.57s
91low
28.8%
±1.3, Mean of 3 runs, range 27.0 to 29.7
28.8%±1.3, Mean of 3 runs, range 27.0 to 29.710.2K$050.74s
92low
26.6%
±4.7, Mean of 3 runs, range 21.6 to 31.1
26.6%±4.7, Mean of 3 runs, range 21.6 to 31.11.1K$00.35s
93low
22.1%
±0.7, Mean of 3 runs, range 21.6 to 23.0
22.1%±0.7, Mean of 3 runs, range 21.6 to 23.0830$04.25s
94low
14.4%
±2.0, Mean of 3 runs, range 12.2 to 16.2
14.4%±2.0, Mean of 3 runs, range 12.2 to 16.2942$03.77s

LLM judge: a second model, Gemini 3.5 Flash, compared each answer with the ground truth and decided whether it is correct. Strict: the answer matched the ground truth exactly.

A ± after a score is half the range across that configuration's repeated runs; hover it for the run count and range. Scores without one are single runs. Every model is being re-run three times per task at each effort under the current protocol.

Score vs. cost

Counting score (Accuracy (LLM judge)) against estimated cost per sample, on a log scale. Upper-left is the sweet spot: high quality at low cost.

47 models on the current benchmark · Counting task only, low effort

Example Counting 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: People (Occlusion)

The models are asked

How many workers are standing or kneeling directly on the rebar grid inside the excavated pit? Output the final count as a single integer (e.g., 3).

Ground truth

8

Benchmark sample: Pills In A Blister Pack

The models are asked

How many intact capsules remain in the blister pack across all rows? Output the final count as a single integer (e.g., 15).

Ground truth

22

Benchmark sample: Screws In A Labeled Bin

The models are asked

How many individual screws are visibly resting inside the plastic bin labeled "DIN 912 M8 x 30"? Output the final count as a single integer.

Ground truth

6

Benchmark sample: Dense Small Objects (Vending)

The models are asked

How many M&M's packages are visible in the machine? Output the final count as a single integer (e.g., 3).

Ground truth

22

Benchmark sample: Packs On A Pallet (Logistics)

The models are asked

How many shrink-wrapped packs of coke bottles with blue caps are visible on the pallet? Output the final count as a single integer (e.g., 3).

Ground truth

4

How Counting is scored

Each count is graded against the ground truth by a second model acting as judge, Gemini 3.5 Flash at temperature zero, which credits the right number even when the model explains how it got there. The leaderboard score is the percentage of samples the judge marks correct. The strict-match score beside it only credits an answer that contains exactly one integer equal to the ground truth, so a model that reasons out loud scores lower there.

Every model runs the same sample set. Under the current protocol each task is run three times at each effort tier and the score is the mean over those runs, shown with its ± range in the table; models benchmarked before the protocol ran once per task and are being re-run under it. 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

Each model answers the same counting prompts and is asked for a single number per image. An LLM judge grades every answer against the ground-truth count, and the score is the percentage graded correct. The strict-match column only credits an answer that contains exactly one integer equal to the count.

Counting requires finding every instance of the target, including partially hidden or overlapping ones, without double-counting. Cluttered scenes, small objects, and look-alike distractors all cause miscounts, which makes this one of the most failure-prone tasks for current models.

Strict accuracy counts an answer only when it matches the ground truth exactly after normalization. LLM-judged accuracy asks a second model acting as judge, Gemini 3.5 Flash at temperature zero, to compare the answer with the ground truth and decide whether it is correct, so a right answer still counts when it arrives with an explanation or in different words. The judge is the headline score because it measures whether the model got it right rather than whether it was terse; the strict score sits beside it on each task page, and the gap between the two shows how verbose a model is.

Every task is run at two levels of reasoning effort. The low row is the model answering with minimal deliberation, the high row is the same model on the same questions allowed to think longer. Both rows are ranked together so you can see whether the extra thinking is worth its cost and latency, which the Est. cost and Speed columns show, and the effort filter above the table shows one tier at a time. Models benchmarked before the current protocol have a high-effort row for Reasoning only until they are re-run. Every other table on this site, including the overall Average, uses the low-effort pass so all models are compared on the same amount of compute.

Under the current protocol each task is run three times at each effort tier, and the score shown is the mean over those runs. The ± is half the range between the lowest and highest run, so it shows how much the score moved between runs; it is a range, not a confidence interval. Hover the ± for the run count and range. A score without one comes from a single run; models benchmarked before the protocol are being re-run under it. OCR results are currently a single preliminary run per model, so they carry no ±.

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.