Add Review statistics and aggregate sequence timelines - #1987
mattdawkins wants to merge 7 commits into
Conversation
Each plot is scaled to its own sequence's peak, with a labelled track-count axis and the total drawn as an outline. Clicking a plot opens the sequence at that point.
|
Making a note here: I think a better display is to have a way to have another table that is "statistics by dataset", where each dataset has a row that shows the total count and max N for each type that is in it. You can click on the chip that shows the total:MaxN and it will open the dataset in a new tab to the frame with the max N. The table should be filterable where you can search for specific types and you should be able to reorder it by Max N or by total count for a type. Then for each row there should be an option to view the timeline chart. This will expand a timeline chart with a proper x/y axis that is unique scaled to the dataset viewing. Hovering will provide a tooltip with the count at the mouse location and the type that is hovered with a color/boldness change.
|
Add Statistics between Datasets and Results in Review on desktop and web. Opening it loads queued selections and summarizes all loaded sequences using each sequence’s saved confidence thresholds, independently of the Results query.
Category and attribute counts are searchable, sortable, and paginated. Attribute values are split by track/detection scope, including false and zero. Counts update after edits, deletion, reload, and selection changes; partial loads are labelled.
Virtualized timeline rows show one plot per sequence, combining all cameras. Colored per-type step areas, with the total as a grey outline, sit on a labelled track-count axis scaled to each sequence's own peak, with horizontal plateaus like the annotation count timelines. Clicking a plot opens the sequence at that point. Matching track IDs are unioned across cameras to avoid counting overlapping views twice. Camera FPS values align elapsed-time ranges; if any FPS is unknown, the row uses frames. Rows sort newest capture time first, followed by undated sequences. Existing annotation timeline components and behavior are unchanged.
Count tables retain per-camera annotation counts, with each track counted once per qualifying category. Video timeline extents are labelled when only the annotated range is known. Fixed-size bins and simplified step paths bound plotting work; sequence links and Statistics session restoration are included.
Validation: 98 review tests pass, including camera grouping through the review service, overlapping camera IDs, differing FPS, gaps, step geometry, saved thresholds, attribute scope/values, chronological order, a 1,000-sequence case, edits, queued loading, and session restoration. ESLint and TypeScript pass. The combined viame/main changes passed 298 tests and desktop/web production builds. An Electron rendering check confirmed one row for a two-camera sequence, per-type step geometry, parent-name date sorting, and readable table contrast.