feat: per-class autolabel params + frame-scoped class clear (REQ-180, REQ-181)

- REQ-181: class_params {name: {threshold?, iou_threshold?, min_box_frac?}}
  on /preview and /autolabel, per-class override table in both modals;
  empty overrides take the unchanged global path
- REQ-180: x button on each review sidebar class row clears that class on
  the current frame only via bulk-delete, no confirmation
- includes REQ-178 empty date-folder cycle fix (archive_index.py)
This commit is contained in:
asus committed 2026-10-01 17:01:54 +07:00
1 parent c244ab9795
commit 1a99f2ffe4
16 files changed
+372 -45

No files matched your search

+8 -1
View File
@@ -74,7 +74,8 @@ changes.
- **REQ-178** — The Video Archive page can create a `YYYY-MM-DD` folder and upload videos
into it. Uploads are streamed to disk, never overwrite an existing file, and only accept
`video.VIDEO_EXTS`.
`video.VIDEO_EXTS`. The new folder appears in the archive's cycle list immediately, even
before it holds any video.
- **REQ-179** — The Video Archive page shows a button that copies the archive's host path
to the clipboard, as a Linux path and as a Windows (`\\wsl.localhost\<distro>\...`) path
when known.
@@ -97,6 +98,9 @@ changes.
- **REQ-031** — Detections that overlap across prompts are deduplicated (greedy IoU NMS), so
one object is not labelled as two classes at once.
- **REQ-032** — The confidence threshold is configurable per job.
- **REQ-181** — Auto-annotation accepts per-class overrides of confidence, IoU and minimum box
fraction on top of the job's global values; classes without an override use the global
values. Preview and the job apply the same overrides.
- **REQ-033** — A frame with no detections is valid and still enters the dataset as a
negative sample — it is not a failure.
- **REQ-034** — Auto-annotation can be re-run on the same batch; previous automatic results
@@ -167,6 +171,9 @@ changes.
auto-annotate modal, and reset with the frame. Defaults are confidence `0.5`, NMS `0.8`,
min box `0.002`, max `100` — deliberately permissive, because on a dense frame an
aggressive NMS or area floor deletes real, touching objects rather than duplicates.
- **REQ-180** — In the manual review editor, each class row can clear that class's shapes on
the **current frame only** (REQ-046 stays batch-wide). One click, no confirmation dialog;
the next frame is untouched.
## E4. Live counting preview