Skip to content

tools: a viewer for the recurring-object ledger - #41

Closed
MateoLostanlen wants to merge 1 commit into
mainfrom
tools/recurring-object-viewer
Closed

MateoLostanlen wants to merge 1 commit into
mainfrom
tools/recurring-object-viewer

Conversation

@MateoLostanlen

Copy link
Copy Markdown
Member

A Streamlit app to audit the recurring-object ledger visually, instead of reading JSON and guessing at images.

uv run streamlit run scripts/recurring_object_viewer.py

Objets récurrents — pick one of the 104 artefacts (sidebar, sorted by sightings) and get:

  • its counters: sightings, sequences it gave the dataset, split, false-positive type;
  • every alert it ever fired, with the one that entered the dataset badged DANS LE DATASET and expanded first, the rest collapsed below;
  • per frame: annotated boxes in red, the object's frozen anchor in green — the geometry Ledger.match actually runs IoU against — and a 3x crop around it. Without the crop you get a landscape: these artefacts occupy a couple of percent of the frame.

It makes --max-per-object concrete. On ro_00001 you see 56 firings of the same road and the single sequence that was kept.

Doublons suspects — objects on one camera within 5° of each other, side by side with their splits. Matching demands azimuth equality, so one artefact filmed at a slightly different pan becomes two objects, each free to draw its own split. Nine pairs today; none across splits yet.

Reads data/raw/pyro-annotator/ rather than the built pools, so it works with no 17 GB pull — an object's ingested sequence is the folder the export already holds, byte for byte.

Not included, and easy to add if it earns its place: search, filters by type or split, and a view over the 275 unlabelled annotator groups. This one audits the ledger; it does not drive annotation.

Auditing the ledger meant reading JSON and guessing at images. This shows
both at once: pick one of the recurring objects and get every alert it ever
fired, the one sequence that entered the dataset badged and expanded first,
the annotated boxes in red and the object's frozen anchor — the geometry the
IoU match actually runs against — in green.

Crops 3x around the anchor by default. These artefacts occupy a couple of
percent of the frame, and a full view shows a landscape with no object in it.

It reads data/raw/pyro-annotator/ rather than the built pools, so it needs no
17 GB pull: an object's ingested sequence is the folder the export already
holds, byte for byte.

A second view lists objects on one camera within 5 degrees of each other —
nine pairs today. Matching demands azimuth equality, so one artefact filmed at
a slightly different pan becomes two objects, each free to draw its own split.
Worth seeing before the pool grows enough for that to matter.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant