Moto 1 is fine. The plates are clean, the numbers read, and everything works.
By moto 2 the track is watered, the ruts are deep, and half the field is carrying a kilo of clay on the front plate. You come home from a club round with 2,800 frames across twelve heats, a paddock full of parents who want their kid's photos tonight, and a folder where the one thing you were counting on — the number — is unreadable in a good share of the shots.
This is the part of motocross that breaks number-first tagging. It is also where most of the evening disappears.
Why the plate fails so often in MX
In circuit racing the car number sits flat on a door panel and stays there. Motocross gives you a number on a front plate and two side panels, mounted on a machine that spends most of its time rotated away from you.
Four things go wrong, constantly:
- Mud. One wet moto and the front plate is a brown rectangle. No system reads what is not there.
- Roost. The rider behind gets a face full of dirt, and so does the plate.
- Body position. Through a rut the rider's leg covers the side panel. Off a jump, a whip or a scrub turns the front plate ninety degrees away from your lens — which is exactly the frame you most want to sell.
- Packs. First corner off the gate, twenty riders in three meters of frame, most plates behind someone else's rear wheel.
So the number alone gets you the easy frames and leaves you hand-sorting the rest.
What actually comes back from a motocross frame
Two things come back reliably from our motocross analysis, and it is worth being precise about which:
The race number, when it is physically legible. This is the primary signal and it does most of the work.
The text on the gear. This one surprises photographers. Helmet and kit brands — whatever is printed across a jersey or a lid — come back populated about as often as the number itself. One honest caveat: we have measured how often that text comes back, not how often it is right, and free text read off a muddy jersey can be a plausible guess rather than a reading. Treat it as a useful extra signal on a clean helmet, not as something to lean on the way you lean on the number.
Other things get read less dependably. Rider names come back by two different routes, and they are worth keeping apart. Read straight off the kit, a name needs to be facing you and large enough to resolve — podium shots, portraits, the occasional clean side-on. With an entry list loaded, the name comes back whenever the row it matched carries one — and only then. That distinction is not academic: across every motocross frame we have matched against a list, roughly one match in five landed on a row that held a number but no name, and came back correctly identified and still nameless. The matcher was not the limit there. The list was. Bike make and gear colors are requested by the analysis but almost never come back — fewer than one subject in two thousand, across everything we have processed. Do not plan around them.
We would rather tell you that plainly than have you discover it on a wet Sunday.
The step that turns a number into a name
Here is the part that actually changes your evening, and it costs nothing.
If you analyze a motocross folder without loading the entry list, the analysis reads number 306 off the plate and stops there. It has nothing to match against, so what you get back is a number — correct, but attached to no one. You still have to map 306 to a rider yourself, for every heat, from a printout.
Load the class list first and the same frame resolves to a rider: the number becomes a name, provided the list carries names. That is the one column worth checking before you import. The name is what goes into the metadata your gallery and your search read. Club rounds almost always have this list — it is the spreadsheet the organizer already made to run the day. Getting it into RaceTagger before you hit analyze is the step that turns a bare number into a name — and it is the one most often skipped.
The entry-list mechanics are the same across sports; we covered the file side of it in CSV starting lists for race photography.
Shooting a race day so it tags well
You cannot control the mud. You can control when you collect the clean reads.
Shoot the gate. The first thirty seconds of every moto are the cleanest plates you will get all day, all riders present, all numbers facing you. Even if the gate drop is not your money shot, those frames are the ones that read.
Get a paddock frame per rider when you can. A rider standing next to the bike, number visible, name on the jersey visible, is worth more to your evening than another berm shot — it is one of the few situations where the name itself is legible.
Pick corners where the front plate faces you. The inside of a corner exit, the face of a jump before the rider commits to a whip, the braking zone into a hairpin. Save the away-facing angles for riders you have already identified elsewhere in the session.
Keep your EXIF intact. Export previews with capture time and camera data preserved rather than stripped. It costs nothing and keeps your options open for the editors and search tools that key off capture time later.
If you are shooting the fast sections on a slower shutter, the technique side of that is in our panning masterclass.
Where it still falls down
Motocross is the discipline that tests number recognition hardest, and there are limits worth knowing before you plan around them:
- A plate fully packed with mud is unreadable, full stop. Nothing recovers what the camera never saw.
- Packed frames do not tag everyone. Of the motocross frames that come back with anything identified at all, 86% hold a single subject, and the most we have ever returned in one image is three. A twenty-rider first-corner pile is a great photo and a bad tagging target; treat it as one, and get your identifications from the cleaner frames either side of it.
- Background riders are ignored on purpose. The analysis prioritizes the foreground subject rather than guessing at a six-pixel digit deep in the frame. That is a deliberate trade: a wrong tag costs you more than a missing one.
- Identical team gear on identical bikes will not separate on appearance when the number is hidden.
With the class list loaded, a rider the matcher cannot resolve confidently comes back marked for review rather than confirmed. Be precise about what that means on disk: the candidate stays attached, and its number, team and driver names are written into the file's keywords the same way a confirmed match is — the review flag lives in the app and in your results, not in the exported file. Only when the evidence is too thin even for a review does the frame come back with nothing written to it. On a set of 2,800 photos that distinction matters — a wrong tag hides until a parent finds it, and by then it is in a gallery — so the review queue is not a formality, it is the pile you work before you deliver.
For why plain text recognition struggles with race numbers in general, there is more in why AI beats OCR for bib and number detection and in our OCR glossary entry.
What a club round actually looks like
Twelve heats, 2,800 frames, one photographer. The class lists are loaded before you leave the house. You shoot every gate drop, you collect paddock frames during the lunch break, and you export previews with their EXIF intact.
What comes out the other side is not a perfectly tagged set — motocross does not give anyone that. It is a set where the legible plates are tagged and matched to real names, the gear text gives you something to work with on part of what is left, and the genuinely unreadable ones are sitting in one unmatched pile instead of scattered across twelve folders.
That pile is the honest cost of shooting a muddy sport. Everything else is sorted before you open your editor.
