Skip to content

Frame label mode: rapid whole-frame event labeling - #1826

Open
mattdawkins wants to merge 5 commits into
mainfrom
dev/frame-label-mode
Open

Frame label mode: rapid whole-frame event labeling#1826
mattdawkins wants to merge 5 commits into
mainfrom
dev/frame-label-mode

Conversation

@mattdawkins

Copy link
Copy Markdown
Member
  • New sidebar panel defines up to 9 frame labels; while the mode is enabled, keys 1-9 label all frames from the current frame forward with the corresponding label until the next labeled event (or end of video), and 0 ends the open segment — designed for one-pass labeling during playback
  • Pressing a key at an existing segment's start relabels it in place; pressing inside a segment of a different label truncates it and starts the new one, so events can be inserted or corrected after the first pass
  • Segments are ordinary full-frame tracks (begin/end keyframes, interpolated), so the type list, styling, confidence filters, event timeline, CSV export, and frame classifier training all work unchanged
  • Label list persists in client settings; panel shows the label active at the current frame
  • Core logic is a standalone composable (useFrameLabelMode) with unit tests

🤖 Generated with Claude Code

Hotkeys 1-9 start a full-frame interval track at the current frame with
forward-fill until the next event; 0 ends the open segment. Segments are
ordinary tracks so timeline, export, and classifier training work unchanged.
New import command creates datasets from a video, image directory, or (with
--bulk) every video/subdirectory in a folder. --frame-label defines the
dataset's frame label set; --default-frame-label covers the whole dataset
with one full-frame track. Restores the missing divecli bin build (build:cli).
@BryonLewis
BryonLewis self-requested a review August 10, 2026 15:49

@BryonLewis BryonLewis left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are a few things I need to get down into text about this functionality:

  • Adding a new item to Left sidebar is fine but the label types push down the track list and don't properly resize the scrolling area
  • "Frame label mode" isn't clear that it is used for full frame labelling and that it will generate full frame tracks from now until the next change time
  • We have a type list already this is adding a secondary type list and now we have types displayed in two areas
  • right now it only works in the standard sidebar configuration the layout with all items at the bottom doesn't work.

Alternative Proposal:

  • In the type filter settings there is an option for full frame labelling
  • This brings up a dialog where users can select out of the existing type list or add new types to set keyboard shortcuts from 0-9
  • The type list now is reordered with types 1-9 and an indication of the shortcut key for each type
  • once frame labelling has been configured in the setting there is an indicator on the top of the type list that allows toggling frame labelling on/off
  • During frame labelling mode, the edit types goes away (because keyboard shortcuts for them don't work) and the info area where we indicate what can be done is swapped to give basic instructions about the frame labelling system.
  • Update track text info that any full frame tracks place the label inside the upper right corner instead of outside for easier viewability
  • the frame labelling settings should be stored with the types in the config for the dataset so it can be portable

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.

2 participants