Problem & solution

Multi-Rider Peloton Tagging in Cycling Photography — AI Reads Back Numbers

In a peloton shot, dozens of riders are visible at once, bibs sit on their backs (hidden when riders face away), and bodies overlap completely. Reading even a handful of bibs from a single frame by eye is slow and error-prone. Tagging one or two riders per photo leaves the rest of the field untagged.

For race photographers covering Grand Tours (Tour de France, Giro, Vuelta), missing riders means missing the story of who was in the break and who got dropped. For event photographers covering sportives and gran fondos, riders who can't find their photo don't buy. A peloton frame tagged to only one or two riders is a missed opportunity for everyone else in the shot.

Understanding the problem

Multi-rider bib detection in cycling is the ability to identify and read bib numbers on multiple cyclists in the same frame, with the added complexity that bibs sit on the back of the jersey (often partly hidden behind a saddle bag or frame pack) and riders are tightly packed in 3D space with several overlap layers.

Cycling media relies on identifying peloton composition from photos — which teams and riders were in the break, who was dropped, which teams controlled the pace. All of it requires reading multiple bibs from single frames. For event photographers, the revenue model depends on each rider finding themselves somewhere in the crowd.

In this sport specifically

Cycling bib placement is unusual among race sports: bibs are on the back of the jersey, not the front, so they're invisible unless you're shooting from behind; peloton density packs many riders into a narrow strip of road, creating multiple overlap layers; riders lean in and out, bibs fold against saddle bags, and frame numbers and helmet markings compete for the same visual space; long-lens shooting from motorcycles compresses perspective and makes bib sizes inconsistent across the frame.

Where it shows up

Traditional approaches, and why they fall short

Manual identification from field notes (ask team staff or recognize known riders)

Several minutes per peloton photo to cross-reference sources and timing data · Reliable for well-known professional riders; much weaker for amateur and sportive cyclists who can't be recognized on sight

Doesn't scale. Grand Tour photographers shoot thousands of images per stage, and identifying full peloton composition by hand is impractical. It only works at all for elite riders whose appearances and team colors are known.

Single-rider focus tagging (tag the closest or clearest bib, skip the rest)

Fast per photo, but only captures one rider · Good on the one primary rider; everyone else in the frame is simply left untagged

Reduces a peloton of many riders to a single tag. Every secondary rider is lost, which for sportive photographers means most of the potential sales in the shot go unrealized.

Timing-system cross-reference (GPS or chip timing matched to approximate position and time)

Requires live tracking and post-processing integration · Workable for photos taken at timed checkpoint lines; weak for arbitrary en-route peloton shots

Only works if you have real-time GPS or chip timing. Most amateur sportives don't have per-rider tracking, and professional teams' positioning data isn't publicly available.

How RaceTagger handles it

RaceTagger sends each frame to a cloud AI vision model (this is a cloud step and needs an internet connection — it isn't offline processing). The model locates the riders in the frame and reads the visible bib numbers, including back bibs that are partly compressed by angle or distance. Detected numbers are then matched against the start-list CSV you upload, so a read becomes a named rider rather than just a number. Before that cloud step, a local scene check can skip frames that clearly contain no riders, so credits aren't spent on empty shots.

Key advantage

Every visible bib in a frame is a candidate, not just the closest one. A dense peloton frame can be tagged to many identified riders in a single pass instead of one — which serves both editorial use (who was in the break) and commercial use (riders finding themselves in the photo).

Good conditions
Clear, well-lit back bibs at a readable angle and moderate distance read reliably
Challenging
Spread-out fields, extreme foreshortening, and bibs partly covered by saddle bags are harder, and more reads come back with lower confidence
Worst case
Heavy overlap, large distance variation within one frame, or severe angle distortion produce more low-confidence reads — which are flagged for review rather than guessed

Point RaceTagger at your stage folder. It reads both JPEG and RAW files (via the embedded preview), detects the visible bibs in each frame, and matches them to your uploaded start-list. Results are written into the photos as EXIF/XMP/IPTC metadata, so the tags travel into Lightroom, Photo Mechanic or Capture One. Low-confidence bibs are flagged for a quick visual check instead of being silently accepted.

Manual vs OCR vs AI vision

MetricManualBasic OCRRaceTagger
Processing a full stage of peloton photosHours of cross-referencing timing data, multiple passes and team infoFaster, but typically only one or two bibs per photoBatch run, then a focused review of only the flagged low-confidence reads
Back bib detection at typical shooting distanceReliable for known professionals; weak for amateursStruggles with angled and partial back bibsReads clear back bibs reliably; flags hard ones for review
Multi-rider per-photo coverage (all visible bibs)Identifying every rider in a dense frame by hand is impracticalOne or two riders at mostTreats every visible bib in the frame as a candidate
Distance variation within a single frame (close vs far riders)Close bibs readable; distant bibs guessed or skippedAccuracy drops sharply across mixed distancesHandles mixed distances better; very distant or tiny bibs are flagged for review
Cost modelYour time (labor for cross-referencing)Compute cost onlyCredits — 1 credit per photo analyzed

Practical tips

  1. 1

    Shoot from the motorcycle chase position (perpendicular to the road, alongside the peloton) for maximum bib visibility and consistent distance

    Back bibs are most readable when roughly square to the camera. A side-follow position gives consistent distances and angles. A rear-follow position foreshortens bibs, and shooting from ahead shows no bibs at all.

  2. 2

    Capture multiple frames as the peloton moves to get different layers and positions of the same riders

    A motorcycle pass gives you many perspectives of the same riders. Different frames reveal different bibs — a rider hidden in one frame is clear in the next — so you don't need every bib readable in every single image.

  3. 3

    For tight breakaway groups, position perpendicular to the road at mid-distance to maximize legibility across the group

    Small breakaways are easiest to tag from ground-level positions a short distance off the road, square to the direction of travel. That angle keeps bib visibility consistent across all riders without extreme foreshortening.

  4. 4

    Process stage photos by group type — breakaway, lead group, main field — and review the flagged reads for each separately

    Small, clean groups tend to produce confident reads and little review. Dense main-field frames produce more low-confidence flags. Allocating your review time by group type, rather than scrubbing every photo, keeps the check fast.

  5. 5

    Use frame numbers and helmet markings as secondary verification for ambiguous back bibs

    A back bib is just one ID signal. Pro riders also carry frame number stickers and helmet branding. When a back bib is ambiguous, those secondary markings can confirm the read during your review pass.

Tag every rider in every peloton photo — automatically

Try it free: point RaceTagger at a folder of your peloton photos from a cyclocross, gran fondo or pro stage, upload your start-list, and see the visible riders detected and matched.

Try it free →

Questions photographers ask

Does back bib detection work when riders are at an angle, not square to the camera?

Yes, though it gets harder as the angle increases. Bibs square to the camera read most reliably; at steep angles the number is compressed and the read is more likely to come back low-confidence and be flagged for review. The best results come from a perpendicular shooting position.

If a saddle bag completely covers the bib, can the AI still detect it?

Partial coverage is usually fine; complete coverage isn't — no system can read a number that isn't visible in the pixels. When a large share of the bib is obscured, the read is flagged as low confidence rather than guessed. Riders with big frame packs that fully hide the bib won't be identifiable from that frame, so a different frame is your best bet.

Does the system tell frame numbers apart from back bibs?

RaceTagger treats the back bib as the primary ID and matches detected numbers against the start-list you upload. If you include both bib-to-name and frame-number-to-name mappings in that list, it can use whichever ID is clearest in a given photo. The match always traces back to your roster, not a guess.

For time trials where riders are spaced far apart, is multi-detection still useful?

Time trials are an easier case — usually a single rider per frame, with no peloton overlap — so even single-subject detection works well. The real value of multi-rider detection is mass-start and peloton events, where many bibs share one frame.

Keep reading

← All guides