Race Photo Bib Detection: Why AI Beats OCR (And What It Means for Your Workflow)
📚 Guide7 min read2026-03-02

Race Photo Bib Detection: Why AI Beats OCR (And What It Means for Your Workflow)

How AI-powered bib detection works for race photographers — and why classic OCR fails with motion blur, folded numbers, and partial occlusion. A practical guide for running, cycling, triathlon, and motorsport.

RT
Federico
RaceTagger Team
3,200 photos. Sunday morning. Half marathon finish line. Half the bibs are motion-blurred, a dozen are folded or partially hidden under a jacket. Classic OCR tags maybe 60% of them. The rest? Manual work, one by one.

That's the real problem with race photo bib detection — not the photos with perfect lighting and clean numbers. Those are easy. The problem is everything else.

Why OCR Alone Fails at Race Events

Optical Character Recognition was built to read text on flat, still, well-lit surfaces. Documents. Invoices. License plates on parked cars.

Race bibs are none of those things.

At a marathon finish line, runners are moving fast, breathing hard, their torsos twisting with every stride. The bib flexes with the body. The numbers compress, stretch, tilt. Under certain lighting — overcast, backlit, late afternoon sun — the contrast between number and background drops fast. Add a race vest partially covering the bib, or a number that ends in a fold, and you've got something OCR simply wasn't designed for.

Classic bib detection tools built on OCR pipelines work well under controlled conditions. They'll tell you themselves: athlete in frame, all digits visible, strong contrast, standard font. Meet those requirements and you'll get solid accuracy. Fall outside them — which happens constantly at real events — and accuracy drops fast.

The issue isn't the OCR engine. It's the fundamental approach: reading characters as isolated symbols on a flat surface, without any visual understanding of context.

How AI Bib Detection Actually Works

Modern AI-powered race number detection works differently. Instead of treating a bib number as a sequence of characters to decode, it processes the entire image as a visual scene.

The model understands:

  • Where runners typically wear bibs (chest, waist, back)
  • What a bib looks like when it's folded, twisted, or partially covered
  • How motion blur patterns affect number legibility — and what the underlying digits probably are
  • Context: jersey colors, race environment, athlete posture

This is the difference between character recognition and visual comprehension. An OCR system looks for pixels that form the letter "4". An AI vision model looks at a runner, finds the bib, and reads the number the same way a human official would — using context, not just contrast.

RaceTagger uses Google's Gemini vision model for exactly this reason. Gemini wasn't trained specifically on race photos — it was trained on the visual structure of the real world, which means it handles the weird edge cases that trip up narrower systems. Folded bib? It infers the hidden digit from the visible portion and the surrounding context. Motion blur? It works from what's legible, the same way your eyes do when you look at a blurry photo and still read the number.

The Difference Is in the Edge Cases

If you shoot 1,000 photos at a race and 800 of them have clean, visible bibs — any system will tag those well. The real test is what happens to the other 200.

Common problem cases that standard OCR struggles with:

Motion blur. Anything above 1/500s in variable light creates blur on fast runners. The number smears. Individual digits lose their defined edges. OCR fails. AI vision can still read it with high confidence.

Bib folding. Happens constantly on cyclists, triathletes, and distance runners wearing compression gear. The edge of the bib curls, hiding one or two digits. OCR gives up. AI infers from context and visible portion.

Partial occlusion. An arm across the chest. A water bottle. A race vest worn over the bib. OCR sees incomplete data and either skips the photo or returns a false positive. AI reads what's visible and flags uncertainty honestly.

Lighting extremes. Backlit finish lines, dark tunnel exits, harsh midday shadows cutting across the bib. High-contrast conditions that destroy character legibility but still contain enough visual information for a trained model to work with.

These aren't rare scenarios. They're standard conditions at any outdoor race event.

Sport by Sport: The Specific Challenges

Running (Marathon, 5K, 10K)

High bib density, constant movement, variable pacing. At a finish line, you might have three runners in frame simultaneously, bibs at different angles and distances. Automatic bib tagging for race photos needs to handle multiple detections per image without cross-contamination.

The other running-specific problem: participants range from elite athletes (lean torso, minimal clothing, bib flat and visible) to recreational runners (jackets, backpacks, hydration vests that cover the bib). Your detection system needs to handle both.

Cycling

Bibs go on the back of the jersey, often in a pocket. They're smaller than running bibs, positioned lower, and frequently blocked by the saddle bag, rear wheel, or following riders in a pack. From the front, you might not see a bib at all — detection shifts to race numbers on the bike frame or helmet.

Peloton photography compounds this: dozens of riders in close proximity, numbers at varying angles and distances, jersey logos creating visual noise around the number area.

Triathlon

Three sports, three different bib positions, sometimes all in the same event day. Running bibs on the chest during the run leg, transition belt bibs that rotate to the back during the bike leg, helmet numbers during cycling. A triathlon photo set requires a system that can locate bibs in multiple body positions — and distinguish between bib types.

Motorsport

Car numbers behave differently from athlete bibs. They're larger, fixed (not moving relative to the vehicle), and appear in defined locations — door panels, nose, roof — depending on the series. The challenge is speed-induced blur, livery complexity (sponsor graphics overlapping with the number), and night racing.

Kart numbers present a different problem: smaller vehicles, often DIY number placement, significant positional variation between teams.

What "Better" Bib Detection Looks Like in Practice

A few metrics that matter for real race photography workflows:

Detection rate — what percentage of photos with a visible bib get correctly tagged. Industry-leading tools hit 90%+ under good conditions. The gap opens up in edge cases.

False positive rate — tagging a photo with the wrong number is worse than not tagging it at all. It sends the wrong runner a photo of someone else, which damages your reputation with race organizers. Precision matters as much as recall.

Handling uncertainty — the best systems flag low-confidence reads rather than guessing silently. You want to know when a photo needs manual review, not discover the error after delivery.

Multi-number detection — finishing straight photos regularly capture 2-4 runners simultaneously. Detection needs to find all of them and tag the photo correctly to each.

RaceTagger returns all detected bib numbers per photo, flags low-confidence reads, and lets you batch-review flagged images before finalizing delivery. The goal isn't to hide the hard cases — it's to surface them efficiently so you spend your time where it matters.

The Practical Bottom Line

Automatic bib recognition has matured significantly in the last few years. The shift from pure OCR pipelines to AI vision models has made a real difference for working photographers — not because AI is magic, but because it handles real-world conditions better.

If you shoot races where conditions are always controlled — indoor velodrome, time trials with stationary number boards — a good OCR tool works fine. If you shoot outdoor mass-participation events, finish line chaos, night races, or anything with variable lighting and bib positioning, you need a system that understands what it's looking at, not just what characters are on screen.

The photos that matter most are usually the hardest ones to tag. The sprint finish. The dramatic comeback. The moment someone crosses the line for the first time. Those are also the photos most likely to have blur, unusual angles, and partial occlusion.

Those are exactly the ones where the approach matters.


Try RaceTagger free — 500 tokens included, no credit card required. Upload a batch from your last event and see how it handles the hard cases.

Start tagging for free →

Not using RaceTagger yet?

Start with 100 free analyses per month — no credit card required. See why 200+ race photographers trust RaceTagger to cut their tagging time by 80%.

Download Free →

Stay Updated

Get notified when we publish new product updates and guides

Join Early Access