Even strong 2026 VLMs miscount objects and get left/right or above/below relations wrong on cluttered images. Explain the architectural and training reasons behind this, and name one practical mitigation.
Counting and exact spatial relations stay weak because a bounded patch budget blurs detail, and captioning-style training rewarded the scene's gist, not an exact tally — so the skill was never represented or rewarded.
Imagine you are handed a mosaic made of a few hundred tiles and asked how many marbles are in the picture. Each tile averages whatever sits inside it, so when marbles cluster, a tile just shows a vague marble-ish smear and you cannot count them apart. Now imagine that whenever you practiced describing mosaics, you were only ever graded on saying the theme — a bowl of marbles, a sunny garden — never on the exact number. You would get very good at themes and never learn to count, because counting was never what earned you marks. That is a vision-language model. It compresses the picture into a fixed set of tiles, which loses the detail needed to count, and it was trained to nail the theme, not the tally. So it sounds confident and gets the number a little wrong.
Concept explanation~2 min read
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
Concept explanation~2 min read
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
A surprising thing about modern vision-language models is that they can write a fluent paragraph about a photo and still get the number of objects in it wrong. The understanding is real; the counting is not. Pulling those two apart is the heart of this question.
The reason this is worth understanding deeply is that it changes how you build with VLMs. If you assume the model sees the way you do, you will trust its counts and its spatial claims and ship a product that is quietly wrong on cluttered inputs. If you understand why counting is hard, you design around it from the start.
This deep dive treats the weakness as the joint result of two design choices — a bounded representation and a gist-rewarding objective — then walks the mitigation ladder a team would actually climb, from a free prompt change to a dedicated counting service.
How an image becomes a bounded set of features
Start with the representation, because that is where the detail is lost. A VLM does not feed raw pixels to its language model. It divides the image into patches, runs them through a vision encoder, and produces one embedding per patch. The number of patches is bounded — set by the input resolution and the encoder's design — so the whole image is compressed into a fixed-length sequence of feature vectors.
Think of that budget as a resolution limit on meaning, not just on pixels. Each patch embedding summarizes everything inside its patch. When two small objects sit in the same patch, the encoder averages them into one vector and the model can no longer tell there were two. When an object spans patch boundaries, its shape is split and smeared across neighbors.
Position suffers the same way. The model knows roughly which patch an object lived in, but exact location is quantized to the grid. Asking whether object A is just left of object B requires finer position than the grid carries. So both of the failing tasks — tallying instances and asserting precise relations — depend on information the budget already discarded.
Situations where this technique stops working.
2–4 min · Everything important, quickly.
Real products, models, and research that use this idea.
- Gemini 3.1 Pro and GPT-5.5 reliably describe a crowded scene yet miscount the objects in it, showing the gap is about counting, not understanding.
- Chart and document VLMs improve markedly with AnyRes tiling, which spends extra patches on dense regions to resolve fine detail.
What an interviewer would ask next. Try answering before peeking at the approach.
QWhy does point then count prompting help even without changing resolution or the model?
It forces the model to externalize intermediate state — marking each object in sequence — instead of producing one gist-level guess. The autoregressive trace lets it track what it has already counted, turning a single fuzzy estimate into a step by step procedure that the gist-trained model would not run on its own.
Red flags & common mistakes
The phrases that signal junior thinking. Click to expand.
Red flags & common mistakes
The phrases that signal junior thinking. Click to expand.
Naming only the patch budget and stopping there. The architecture is half the story — the training objective never rewarded an exact tally, so even with detail the model wasn't taught to count.
60 second bullets to scan on the way to the call.
State the architectural cause in terms of a bounded patch-embedding budget
Explain what happens to crowded or overlapping objects within that budget
Primary sources. Browse if you want the original framing.
Same topic, related formats. Practice these next.