Skip to content

Centralize hierarchical classification changes - #1848

Open
PaulHax wants to merge 5 commits into
hierarchical-classification-pr1from
hierarchical-classification-pr2-mutations
Open

Centralize hierarchical classification changes#1848
PaulHax wants to merge 5 commits into
hierarchical-classification-pr1from
hierarchical-classification-pr2-mutations

Conversation

@PaulHax

@PaulHax PaulHax commented Aug 14, 2026

Copy link
Copy Markdown
Collaborator

Centralize hierarchical classification changes

PR 1 lets several user actions change classifications through existing model methods. In a
multicamera dataset, those methods can change only one camera or a temporary merged track.

This PR adds commands for one logical track. A command calculates one canonical confidence vector.
It then installs independent copies on all linked camera tracks.

Changes

  • Add pure operations for reassignment, acceptance, confidence changes, and pair removal.
  • Add CameraStore commands for all linked camera tracks.
  • Use the first configured camera as the canonical source.
  • Notify each changed camera one time.
  • Route the sidebar, bottom bar, Track Details, confidence editor, and rename actions through the
    new commands.
  • Preserve the commands after save and reload.

Behavior

  • Reassignment replaces one hierarchy lineage and keeps unrelated alternatives.
  • Accept as correct sets the selected pair to 1.0. It keeps related pairs and removes
    unrelated pairs.
  • A normal confidence edit to 1.0 does not accept the pair as correct.
  • Pair removal removes only the selected pair.
  • PR 4 handles deletion of a logical track when its last pair is removed.

Manual tests

Test data: download and extract
classification.zip. Paths
below are relative to dive-classification-test-data/.

Single-camera classification commands

  1. Create the dataset from
    dive-classification-test-data/classification/single-camera-linked-types/.
  2. In separate save-and-reload cycles, reassign a leaf, accept a parent, change a confidence to
    1.0 without accepting it, and remove one pair.

Verify: Reassignment changes one lineage, acceptance removes only unrelated pairs, a normal 1.0
edit keeps unrelated pairs, and pair removal removes only the selected pair.

Multicamera classification synchronization

  1. Create the dataset from
    dive-classification-test-data/classification/multicamera-linked-types/.
  2. Reassign, accept, change confidence, and remove a pair; save and switch cameras after each
    action.

Verify: Both camera tracks contain equal confidence vectors after each action.

Stack

This is PR 5 of 9. Previous: add hierarchical track classification.
Next: add read-only track projections.

  1. Allow devDependency imports in TypeScript spec files
  2. Preserve warnings from every Desktop import file
  3. Copy source metadata when creating a single-camera soft clone
  4. Add hierarchical track classification
  5. Current — Centralize hierarchical classification changes
  6. Replace mutable merged tracks with read-only projections
  7. Make track lifecycle operations classification-safe
  8. Add lossless DIVE KWCOCO classification support
  9. Define raw and resolved classification boundaries

This PR is stacked on hierarchical-classification-pr1.

Overall: 22 files, +1,036/-50. Commits: b1774226 through 1d2597d6.

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.

1 participant