All guides

Photography workflow6 min read

How to Organize Event Photos by Bib Number

Build a reviewable bib-number workflow using OCR, roster validation, event context and human correction without treating a number as identity proof.

Picture a three-frame burst. The first frame seems to show bib 128. In the second, fabric folds across the last digit. In the third, the dancer turns and the number disappears. Should all three photographs enter gallery 128? What if that number was reused in an earlier session?

To organize event photos by bib number, treat OCR as a witness, not a judge. It reports characters visible in a region; it does not know who wears them. Normalize each observation, check it against the correct roster and review it with event, heat, time and neighbouring-frame context. A number may be partial, misread, shared by a couple or reused. It is useful evidence, not proof of identity.

Model the roster before reading images

Before you run OCR, learn the event’s numbering rules. Do not assume every organizer uses unique integers from start to finish.

Record:

  • the original bib value exactly as supplied;
  • a normalized value used for search;
  • leading zeros, prefixes and suffixes;
  • participant and couple relationships;
  • the sessions or categories where the value is valid;
  • any aliases or replacement numbers;
  • the source roster version and import time.

Keep original and normalized values separate. 007, 7, A-07 and 7B may or may not represent the same entry. That decision belongs to event-specific normalization rules, not a generic removal of punctuation.

For couples, decide whether the number belongs to one registered leader, the pair or a changing partnership. The public gallery label can differ from the internal roster key, but that mapping must remain explicit.

Use a sequence of bounded stages

Now follow the opening 128 from pixels to a reviewed association. An explainable bib workflow can use the following states:

StageInputOutputFailure handling
Candidate regionFull event imagePossible bib areasKeep “no region found” as a normal result
OCRCandidate regionDigits/letters with alternativesPreserve more than one reading when close
NormalizationRaw OCR textEvent-formatted candidateNever discard the original reading
Roster lookupNormalized candidateZero, one or several roster entriesDo not choose silently among duplicates
Context checkTime, session, heat, cameraNarrowed candidate setMark conflicts for review
Human reviewImage, neighbours and evidenceConfirmed, rejected or unresolved linkRecord correction without rewriting source evidence

Person detection and bib-region detection are their own components. A person-appearance embedding API does not automatically locate a bib or read its characters. The Person Re-Identification guide explains the separate role of appearance retrieval.

Keep OCR alternatives

Competition numbers are hostile OCR inputs. A bib bends with the costume, an arm hides a digit, a spotlight removes contrast and motion blur joins characters. Common confusions include 1/7, 3/8, 5/6, 0/8 and letters such as B/8.

Instead of storing only one string, retain:

  • the raw text returned by the OCR step;
  • alternative characters or sequences where available;
  • the location of the number in the image;
  • a preview of the region used;
  • preprocessing applied to that region;
  • the OCR model or rule version;
  • a confidence or quality signal with a documented meaning.

A confidence value should determine the review path, not declare the participant. A high-confidence reading can still refer to the wrong event or a number printed on clothing that is not a competition bib.

Validate inside the event boundary

Give the observation a boundary. Run roster lookup only inside the intended event and relevant session; searching every number ever stored creates false certainty.

Useful context includes:

  • capture time compared with the schedule;
  • floor, room or course segment;
  • camera position;
  • heat or category;
  • photographer notes;
  • confirmed numbers in adjacent frames;
  • the number of plausible roster entries.

Context should narrow candidates, not silently overwrite contradictory evidence. If OCR reads 128 but that participant was not scheduled in the observed session, create an exception. The schedule may be wrong, the camera clock may have drifted or the digits may be misread.

The ballroom dance photography workflow shows how roster, capture and review context fit into the complete event pipeline.

Use neighbouring frames carefully

Return to the three-frame burst. One frame may expose a readable bib while the strongest image hides it. It can be reasonable to propose the same association for nearby frames when the sequence is continuous and the visual subject remains consistent—but propagation is a new inference, not another OCR reading.

Define limits before propagating:

  • maximum time gap;
  • same camera or known camera handoff;
  • no scene cut or heat boundary;
  • compatible number of visible people;
  • an explicit visual-continuity check;
  • review when another participant enters or crosses.

Do not propagate through an entire card or folder merely because timestamps are close. A photographer can switch couples within seconds. A crowd frame may contain several valid numbers, each belonging to a different crop.

Store propagation as derived evidence: “proposed from confirmed frame X,” not as if the number were directly visible on every image.

Handle multiple people and couples

Now let another couple cross the frame. Whole-image tagging becomes ambiguous immediately: a number associated with one crop should not automatically label every person in the photograph.

Choose what the gallery relation means:

  • primary subject: the participant intentionally photographed;
  • visible participant: every reliably associated person in the frame;
  • couple relation: one confirmed competition entry represents two people;
  • event context only: the number helps locate a heat but not a specific crop.

The chosen rule affects customer search and review workload. If several numbers are visible, retain each observation with its bounding region. Ask a reviewer to confirm which participant groups should receive the image.

Appearance similarity can help propose related frames where the bib is hidden, but it must remain a separate signal. The source should say whether an assignment came from visible digits, sequence propagation, roster context or a visual neighbour.

Build an exception queue

The easy readings move quickly. The quality of the workflow shows up in what you do with the rest. Route these cases to review:

  • no bib region or unreadable text;
  • OCR result absent from the scoped roster;
  • several valid roster matches;
  • conflict between schedule and number;
  • multiple people with unclear primary subject;
  • number visible on a background participant;
  • propagated association crossing a scene change;
  • manual correction that disagrees with a prior confirmation.

The reviewer needs the full image, proposed crop, OCR region, alternatives, nearby frames, roster candidates and session context. Provide confirm, correct, reject and unresolved actions. Unresolved is preferable to a confident-looking error.

Corrections should update the association while preserving the original OCR result. That separation allows later analysis: was the problem character recognition, normalization, roster quality or context?

Measure the workflow, not just OCR

Character accuracy alone does not describe the customer outcome. Track operational measures on a representative, authorized sample:

  • proportion of images with a usable number region;
  • roster candidates returned per reading;
  • wrong gallery associations after review;
  • correct associations missed;
  • propagated links reversed by reviewers;
  • unresolved photos;
  • reviewer actions per event.

Break results down by camera position, lighting, bib design and action type. A change in organizer or bib layout can alter the workflow even when the OCR component has not changed.

Connect bib organization to the wider system

Bib-based classification begins after safe ingest and ends before publication review. The live upload workflow explains how to process new files without exposing incomplete states, while the event photo sorting software guide provides tests for correction, export and recovery.

Use bib numbers because they are useful event context, not because they remove uncertainty. For any burst, the system should be able to say what it read directly, what it propagated from a neighbour, where the number was valid and who confirmed the result.