feat: configurable track forward, track to end, skip-and-mark (REQ-189)
Track 5 Frames becomes Track Forward with a 1-100 count input, remembered in localStorage (default 5). A separate -> End action runs to the last frame behind a confirm and can be cancelled mid-flight. Frames that already hold a shape of the tracked class are skipped instead of re-annotated: hidden and dimmed shapes count as present. Skips are reported in the result banner and marked with a dot plus a class name on the filmstrip thumbnail. frames() now returns the class ids each frame holds, the same query row, no migration. Chaining and seed growth stay out: every frame is still seeded from the drawn box only.
This commit is contained in:
1 parent
f6b0335c93
commit
4f15335092
9 files changed
+226
-52
No files matched your search
+15
-6
@@ -169,12 +169,21 @@ changes.
|
||||
- **REQ-043** — The user can ask SAM3 for help inside the editor: click or drag a box around
|
||||
one object and the model produces its shape.
|
||||
- **REQ-189** — In the review editor, the user can push the **selected shape's** box forward
|
||||
with *Track 5 Frames* (`[T]`): the next five frames each get their own REQ-043 box-assist
|
||||
run, seeded with that box, and the shape is written as `source=manual`. Both geometry types
|
||||
work — a bbox shape supplies its own box, a polygon is reduced to its bounding box. Each
|
||||
frame is an **independent** run: a frame SAM3 refuses (nothing inside the box) is reported
|
||||
and the rest still run; nothing selected, an unusable shape, or the last frame says so
|
||||
instead of doing nothing. This is one-shot hand-off across the next frames, **not**
|
||||
with *Track Forward* (`[T]`): the next N frames each get their own REQ-043 box-assist run,
|
||||
seeded with that box, and the shape is written as `source=manual`. N is **configurable**,
|
||||
1–100, remembered between sessions, default 5; a separate **Track to End** action runs to
|
||||
the last frame of the batch and confirms before starting. Both geometry types work — a bbox
|
||||
shape supplies its own box, a polygon is reduced to its bounding box. Each frame is an
|
||||
**independent** run: a frame SAM3 refuses (nothing inside the box) is reported and the rest
|
||||
still run; nothing selected, an unusable shape, or the last frame says so instead of doing
|
||||
nothing. A frame that **already holds a shape of the tracked class is skipped** — hidden or
|
||||
dimmed shapes count as present — and the skip is reported in the result banner and marked
|
||||
with a dot on that frame's filmstrip thumbnail, never silently passed over. A long run can be
|
||||
**cancelled** mid-flight: cancelling stops the remaining frames, but a request already in
|
||||
flight is not aborted server-side and may still save its shape. The box is never grown and never reseeded from a result, so there is
|
||||
no size or position readjustment between frames: a fast-moving object can still leave the
|
||||
seed window (denser extraction or a video-propagation requirement, not yet written, is the
|
||||
fix). This is one-shot hand-off across the next frames, **not**
|
||||
propagation of drawn exemplars (which stays a non-goal): nothing is carried frame to frame,
|
||||
and the runs do not depend on each other.
|
||||
- **REQ-044** — All annotations and review statuses are **persistent** — they survive a
|
||||
|
||||
Reference in new issue
Block a user