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.
Evals updated October 13, 2026Pricing updated October 15, 2026
| 1 | high | 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.9 | 1.9K | $0.010 | 11.00s | ||
| 2 | low | 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.5 | 1.2K | $0.0024 | 3.47s | ||
| 3 | high | 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.1 | 1.7K | $0.0053 | 10.91s | ||
| 4 | high | 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.4 | 2.8K | $0.017 | 13.63s | ||
| 5 | high | 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.4 | 1.7K | $0.0098 | 11.95s | ||
| 6 | high | 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.4 | 1.6K | $0.028 | 7.80s | ||
| 6 | low | 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.4 | 1.5K | $0.0046 | 10.13s | ||
| 6 | high | 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.1 | 2.3K | $0.0091 | 25.36s | ||
| 9 | low | 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.7 | 1.6K | $0.0081 | 10.24s | ||
| 9 | low | 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.1 | 1.8K | $0.0075 | 11.75s | ||
| 11 | low | 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.1 | 1.4K | $0.018 | 4.39s | ||
| 11 | high | 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.8 | 1.7K | $0.0057 | 13.44s | ||
| 11 | low | 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.4 | 1.8K | $0.0034 | 15.55s | ||
| 14 | Muse WonderNEW | high | 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.1 | 3.3K | $0.043 | 22.28s | |
| 15 | low | 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.1 | 1.6K | $0.0042 | 10.67s | ||
| 15 | high | 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.1 | 2.4K | $0.0056 | 10.93s | ||
| 15 | high | 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.4 | 3.3K | $0.0089 | 19.03s | ||
| 15 | high | 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.1 | 7.3K | $0.024 | 25.19s | ||
| 19 | low | 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.1 | 1.9K | $0.0036 | 9.67s | ||
| 19 | low | 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.4 | 1.5K | $0.0037 | 11.88s | ||
| 21 | low | 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.7 | 1.6K | $0.0025 | 17.62s | ||
| 22 | 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.4 | 1.8K | $0.0070 | 11.03s | ||
| 23 | low | 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.4 | 2.0K | $0.0042 | 5.23s | ||
| 23 | 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.4 | 1.5K | $0.0039 | 5.72s | ||
| 23 | low | 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.7 | 2.2K | $0.0050 | 6.46s | ||
| 23 | Muse WonderNEW | low | 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.4 | 2.3K | $0.024 | 10.98s | |
| 27 | high | 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.4 | 2.9K | $0.0079 | 7.96s | ||
| 27 | high | 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.4 | 1.9K | $0.016 | 10.16s | ||
| 29 | high | 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.7 | 3.2K | $0.0094 | 29.52s | ||
| 30 | high | 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.0 | 2.9K | $0.0082 | 12.44s | ||
| 31 | low | 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.7 | 1.6K | $0.0098 | 5.92s | ||
| 31 | low | 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.3 | 2.2K | $0.0049 | 20.06s | ||
| 33 | high | 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.7 | 1.7K | $0.023 | 6.53s | ||
| 33 | 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.3 | 2.0K | $0.0004 | 16.49s | ||
| 35 | high | 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.0 | 1.9K | $0.0004 | 8.02s | ||
| 36 | low | 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.6 | 1.6K | $0.0002 | 5.68s | ||
| 36 | low | 71.6% | 71.6% | 1.5K | $0.0071 | 6.19s | ||
| 38 | high | 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.0 | 2.4K | $0.0015 | 13.90s | ||
| 39 | low | 70.3% | 70.3% | 1.6K | $0.0096 | 4.44s | ||
| 40 | low | 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.2 | 1.6K | $0.019 | 5.75s | ||
| 41 | 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.6 | 1.8K | $0.0003 | 18.88s | ||
| 42 | 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.6 | 1.6K | $0.015 | 8.03s | ||
| 42 | high | 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.9 | 2.6K | $0.0008 | 16.66s | ||
| 42 | 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.9 | 2.8K | $0.049 | 23.19s | ||
| 42 | high | 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.3 | 3.4K | $0 | 32.28s | ||
| 46 | low | 67.6% | 67.6% | 1.3K | $0.0012 | 2.92s | ||
| 46 | low | 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.9 | 5.8K | $0 | 117.29s | ||
| 48 | low | 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.9 | 1.7K | $0.0006 | 5.16s | ||
| 48 | low | 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.6 | 5.6K | $0 | 78.17s | ||
| 50 | low | 66.2% | 66.2% | 1.7K | $0.0007 | 3.71s | ||
| 51 | low | 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.6 | 1.6K | $0.0056 | 5.54s | ||
| 51 | low | 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.3 | 2.4K | $0.0079 | 13.97s | ||
| 53 | low | 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.6 | 6.5K | $0 | 50.42s | ||
| 54 | low | 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.9 | 1.6K | $0 | 9.16s | ||
| 54 | high | 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.6 | 2.8K | $0.0073 | 11.15s | ||
| 54 | high | 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.2 | 1.8K | $0.0003 | 15.63s | ||
| 57 | low | 63.5% | 63.5% | 1.5K | $0.017 | 5.99s | ||
| 58 | 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.9 | 5.5K | $0.0094 | 58.46s | ||
| 59 | high | 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.9 | 1.8K | $0.0076 | 8.31s | ||
| 59 | low | 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.9 | 6.5K | $0 | 44.54s | ||
| 61 | low | 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.5 | 3.4K | $0.011 | 16.76s | ||
| 62 | high | 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.2 | 4.4K | $0.017 | 32.45s | ||
| 63 | low | 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.2 | 2.2K | $0.0065 | 18.20s | ||
| 64 | high | 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.5 | 2.4K | $0.0016 | 42.05s | ||
| 65 | low | 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.8 | 1.6K | $0.0019 | 3.84s | ||
| 66 | high | 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.8 | 3.1K | $0.012 | 34.88s | ||
| 67 | low | 56.8% | 56.8% | 1.5K | $0.0030 | 2.99s | ||
| 67 | Kimi K2.6 | low | 56.8% | 50.0% | 1.7K | $0.0019 | 10.95s | |
| 67 | low | 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.1 | 7.7K | $0 | 60.48s | ||
| 67 | high | 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.1 | 5.8K | $0.027 | 77.54s | ||
| 71 | low | 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.5 | 1.1K | $0.0002 | 4.97s | ||
| 72 | low | 55.4% | 55.4% | 1.5K | $0.0001 | 6.20s | ||
| 73 | 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.4 | 1.5K | $0.0010 | 1.61s | ||
| 74 | low | 54.0% | 52.7% | 1.5K | $0.0076 | 2.33s | ||
| 75 | low | 52.7% | 52.7% | 1.3K | $0.0007 | 1.68s | ||
| 75 | low | 52.7% | 52.7% | 390 | $0.0012 | 3.07s | ||
| 77 | low | 51.4% | – | 1.1K | $0 | 2.17s | ||
| 77 | low | 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.0 | 792 | $0 | 13.55s | ||
| 79 | low | 50.0% | 50.0% | 1.1K | $0.0004 | 2.34s | ||
| 79 | low | 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.4 | 1.1K | $0.0005 | 3.47s | ||
| 81 | low | 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.4 | 1.1K | $0.0002 | 5.76s | ||
| 82 | low | 48.6% | 48.6% | 1.4K | $0.0017 | 4.35s | ||
| 83 | low | 47.3% | 47.3% | 1.1K | $0.0002 | 3.92s | ||
| 84 | DeepSeek V4 Flash Vision Exp | low | 46.0% | 46.0% | 390 | $0.0002 | 1.27s | |
| 84 | low | 46.0% | 46.0% | 1.1K | <$0.0001 | 3.18s | ||
| 84 | low | 46.0% | 46.0% | 1.5K | $0.0008 | 6.12s | ||
| 87 | low | 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.0 | 1.7K | $0 | 13.72s | ||
| 88 | low | 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.6 | 2.1K | $0 | 8.58s | ||
| 89 | low | 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.6 | 9.6K | $0 | 59.54s | ||
| 90 | low | 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.9 | 1.1K | $0 | 0.57s | ||
| 91 | low | 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.7 | 10.2K | $0 | 50.74s | ||
| 92 | low | 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.1 | 1.1K | $0 | 0.35s | ||
| 93 | low | 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.0 | 830 | $0 | 4.25s | ||
| 94 | low | 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.2 | 942 | $0 | 3.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.






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

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

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

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

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.