Unidentified riders weaken team gallery delivery and media sales. Photographers covering MotoGP under wire-service deadlines can't afford slow manual review — they need a tagging step that handles the easy frames automatically and flags the genuinely hard ones for a quick human check.
Understanding the problem
Motorcycle fairing numbers are small graphic elements painted on the side fairings of racing motorcycles. The catch is that the number is only readable when the bike is upright or at moderate lean. At full lean the fairing compresses visually, the number distorts, and the rider's body covers much of the side panel.
Photographers at MotoGP events shoot for series media, paddock publications, teams, and stock agencies. Every photo needs to be tagged to the correct rider and class. A misidentified photo in an official gallery is a reputation killer — and across the photo volume of a three-class weekend, identifying each frame by hand isn't feasible.
In this sport specifically
MotoGP events run three racing classes: MotoGP (the premier class), Moto2 (intermediate, 600-class machinery), and Moto3 (the smallest bikes). Number ranges overlap across classes — a '23' could appear in more than one. Livery can mislead because the same title sponsors run cars across categories, so the small fairing number, not the paint scheme, is the reliable identifier. That is exactly the read that gets hardest at speed and lean.
Where it shows up
Apex shot at a high-speed corner — rider at extreme lean, fairing compressed, the number side directly underneath the rider · very common
The fairing number is largely hidden under the rider's torso. Plain OCR fails because there's little or nothing to read. Manual identification falls back on helmet design, fairing colour, and comparison to a rider list.
Wet-weather race with spray — water on the fairing creates reflections and glare on the number panel · common
Reflections and droplets reduce contrast between number and background, and glossy paint adds hot spots. Readability drops noticeably versus dry conditions, so more frames need a human look.
Two riders in frame — one at full lean (number hidden), one at moderate lean (number visible but skewed) · very common
The visible number is there but the angle distorts the characters — a skewed '9' can read like a '6'. Multi-rider frames make number-to-class association harder.
A Moto3 number in a range shared with a Moto2 rider — bike colours look similar from a distance · occasional
Without confirming the class, the number alone is ambiguous. Manual lookup against the right starting list is required per uncertain photo, which adds up fast across a weekend.
Traditional approaches, and why they fall short
Manual identification by comparing helmet design, fairing colour, and the rider list
Slow — minutes per hard frame when the number isn't visible, and it doesn't scale across a full weekend · Depends entirely on the photographer's knowledge of the grid; helmet and livery recognition are fallible
Doesn't scale beyond a few hundred photos. Requires deep familiarity with the MotoGP grid for visual recognition. Track position and racing line can help but add complexity.
Basic OCR with confidence filtering — manually review low-confidence reads
Faster than fully manual, but you still hand-review a large slice of low-confidence frames · Struggles on fairing numbers; angle distortion and lean compression cause systematic character errors
Angled fairings and lean-induced compression create predictable OCR failures. Full-lean shots are effectively unreadable — they get flagged and need manual intervention anyway.
Per-class CSV matching (separate starting lists for MotoGP, Moto2, Moto3)
Quick to set up, but still requires manual class identification per photo with unclear fairing numbers · Varies by how well the photographer can identify class from bike characteristics alone
Class identification from a single photo is unreliable on its own. The same sponsors appear across classes, so without the number you're often guessing.
How RaceTagger handles it
RaceTagger sends each photo to a cloud AI vision model (an internet connection is required) that reads the visible characters of the fairing number, then matches that read against the starting list you upload as a CSV. You can import the three class lists separately (MotoGP, Moto2, Moto3), so a read is matched within the right grid rather than against an ambiguous shared range. Where the number is partially hidden or distorted at extreme lean and the model isn't confident, RaceTagger flags the frame for review instead of guessing wrong.
Key advantage
It pairs an AI read of the number with your own roster. Matching against the correct per-class start-list narrows an ambiguous read to the rider who actually carries that number in that class — something plain OCR can't do, because OCR has no roster and no context. Clean, moderate-lean numbers are matched automatically; the genuinely hard frames are surfaced for a fast human pass.
- Good conditions
- Clear, moderate-lean, dry numbers read reliably and match cleanly against the start-list
- Challenging
- Extreme lean, wet fairings, and steeply angled numbers are harder — expect more frames to be flagged for review
- Worst case
- Full lean with the number hidden by the rider's body may be unreadable; those frames are flagged with low confidence rather than mis-tagged
Import the three class starting lists as separate CSVs. RaceTagger batch-processes the folder, reads numbers, and matches them per class, writing the result into each photo's metadata (EXIF/XMP/IPTC) — including XMP sidecars that carry through to Lightroom, Photo Mechanic, or Capture One. It reads both RAW and JPEG (via the embedded preview), and scene-skip avoids wasting work on frames with no bike to read. Low-confidence reads are surfaced for review so you only hand-check the frames the AI is unsure about.
Manual vs OCR vs AI vision
| Metric | Manual | Basic OCR | RaceTagger |
|---|---|---|---|
| Effort across a full three-class weekend | High — requires MotoGP grid knowledge and doesn't scale | Lower, but you still hand-review a large slice of low-confidence reads | Batch processed, with only low-confidence frames flagged for a human pass |
| Reading visible numbers at moderate lean | Reliable if you know the grid | Workable but error-prone on angled fairings | Reads cleanly and matches against your start-list |
| Extreme lean with a compressed number | Falls back on helmet/livery recognition | Frequently unreadable | Reads when possible; flags for review when the number is hidden |
| Class disambiguation (which grid a number belongs to) | Requires grid knowledge or supplementary research | Cannot disambiguate — the number alone is ambiguous | Matched within the correct per-class start-list you upload |
| What you pay per photo | Your time (MotoGP expertise required) | Compute only | 1 credit per photo analyzed |
Practical tips
- 1
Shoot corner entry and exit zones, not just the apex — numbers are more visible at moderate lean
Apex frames are the most dramatic but the hardest to tag, because extreme lean hides the fairing number. Corner entry and exit show the number more clearly while still being action-oriented, which means more frames match automatically.
- 2
Use pit lane and parade laps for clean reference frames — upright bikes show the number straight-on
During practice and parade laps, bikes are upright or at low lean, so the fairing number reads with little distortion. Keep these as references when you're unsure of an identification from racing frames.
- 3
Import per-class starting lists so each read is matched within the right grid
A Moto3 number is a different rider from the same number in MotoGP. Matching a read against the correct class CSV removes most of the cross-class ambiguity, instead of leaving the number to stand on its own.
- 4
Treat overlap frames (two riders close together) as review candidates
Tight racing puts two fairings in one frame, and partially visible numbers on both can be confused. These are exactly the frames worth a quick human check — RaceTagger flags uncertain multi-bike reads rather than committing to a guess.
- 5
Budget extra review time for wet-weather races
Rain reduces contrast, wet fairings reflect, and spray covers the number mid-corner. Plan to review a larger share of wet frames than dry ones, especially apex shots where spray is worst.
Tag your MotoGP gallery without reading every fairing by hand
Start with free monthly credits — 1 credit analyzes 1 photo. Upload frames from a recent MotoGP weekend and see how RaceTagger handles lean angles and per-class matching before you commit.
Try it free →Questions photographers ask
How does RaceTagger handle overlapping number ranges across Moto3, Moto2, and MotoGP?
By matching each read against the starting list you upload. If you import the three class CSVs separately, a detected number is matched within the correct grid rather than against an ambiguous shared range. That per-class roster is what resolves a number that would otherwise be ambiguous on its own — the AI reads the number, your start-list ties it to the right rider in the right class.
What happens when a rider is at full lean and the fairing number is completely hidden?
RaceTagger flags that photo as low-confidence rather than guessing. A fully hidden number won't be invented. In practice the same rider appears in many other frames across the session — entry, exit, pit lane — so you can identify the hard frame from a clean one. Batch processing surfaces only the genuinely impossible frames for review.
Does wet weather degrade results?
Yes — reflections, glare, and spray reduce readability, so more frames get flagged for review than in dry conditions. RaceTagger stays honest here: instead of forcing a guess on a low-contrast wet fairing, it surfaces the uncertain frames so you can confirm them quickly. Plan extra review time for rain races, especially apex shots.
Can it tag multiple riders in the same frame?
Where multiple numbers are visible in a frame, RaceTagger can read more than one and match each against your start-list, so a close racing shot can be tagged to the riders it can identify. When two partially visible numbers risk confusion, those frames are flagged for review rather than mis-tagged.
Does RaceTagger work offline?
No. Number recognition runs through a cloud AI vision service, so an internet connection is required. The CSV matching, RAW/JPEG handling, metadata writing, and review happen on your machine, but the recognition step itself is online.
Keep reading