Video annotation: temporal detections + keyframe propagation#7686
Draft
tom-vx51 wants to merge 4 commits into
Draft
Video annotation: temporal detections + keyframe propagation#7686tom-vx51 wants to merge 4 commits into
tom-vx51 wants to merge 4 commits into
Conversation
* resizable TimelineTrack events * temporalDetectionSupportChanged event * timeline rows and interval edit * cleanup * stub in undo/redo * better naming * feat(video-annotation): persist TemporalDetection.support edits * get on the annotation bus + tests --------- Co-authored-by: Gavin <gavin@mcmorgans.us> Co-authored-by: Tom Schmidt <tom.schmidt@voxel51.com>
* fix(annotate): skip dropdown enum when no class list is configured * feat(annotation): PropagationBrowserAgent + linear interp dispatch * narrowing type checking --------- Co-authored-by: Tom Schmidt <tom.schmidt@voxel51.com>
MarkKeyframeCommand emits `annotation:keyframeChanged`; a new `useAutoInterpolate` hook listens and dispatches PropagateCommand for each in-between segment whose bracketing keyframes touch the changed frame.
`upsertFromOverlay` already promotes the touched frame to a keyframe via `toLocalDetection`. Mirror MarkKeyframeCommand by dispatching `annotation:keyframeChanged` after the cache write so adjacent segments re-lerp against the new bbox.
Contributor
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
This was referenced May 31, 2026
Member
Author
This was referenced May 31, 2026
This was referenced Jun 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

🔗 Related Issues
None
📋 What changes are proposed in this pull request?
Adds temporal detections and keyframe interpolation to the video annotation surface.
TemporalDetectionfields render as timeline rows with a draggable support interval (move / resize-start / resize-end, snapped to fps). Drag-end stages an edit that persists via a sample-level delta supplier, with optimistic rendering through the server round-trip.PropagateCommandand a browser propagation agent; results are written per frame into the label-stream cache and persisted through the normal video-labels path, with provenance recording the parent keyframes.Stacked on #7685.
🧪 How is this patch tested? If it is not, please explain why.
Unit tests for the temporal-detection delta supplier and track building; tested locally in the app.
📝 Release Notes
Is this a user-facing change that should be mentioned in the release notes?
notes for FiftyOne users.
What areas of FiftyOne does this PR affect?
fiftyonePython library changes