Skip to content

Decision: bee_size_multiplier stays a single global N (not per-lab) #1

Description

@timlandgraf

Decision

bee_size_multiplier (N) stays a single global value, shared across every lab and video. We are not tuning a separate N per lab.

This answers the open question from the Aug 24 update (commit 587b07e).

Rationale

WaggleNet is meant to be a one-model-fits-all solution. Every parameter we make lab-specific is a parameter the end user has to determine for their own setup, and the per-lab comb-cell calibration we already ask for is at — arguably past — the limit of what a working biologist can and wants to do before running a detector. Adding a second, per-lab quantity that can only be found by a hyperparameter search over labelled data would put the method out of reach for exactly the users we are building it for.

So: the per-lab quantity stays the one thing that is measurable without labels (BEE_LENGTH_FRACTION, from the comb-cell annotator), and the tuned quantity stays global.

Follow-ups needed before we lean on the current N

  • N = 0.5 sits exactly on the Optuna lower bound. bee_n_min defaults to 0.5 (viewer/server.py, search range 0.5–20.0). An optimum landing on a boundary usually means the search was clipped — re-run with a floor around 0.05 and confirm 0.5 is a real optimum and not a wall.
  • Bee-normalize the evaluation thresholds too. compute_dance_level_metrics matches with pos_thresholds as a plain fraction of frame width (0.02–0.10). At 0.02 that is ~0.9 bee-lengths for berlin but ~0.26 for nieh, so nieh dances are substantially easier to match. We now calibrate the clustering in bee units while the metric stays in frame-width units — the search is being scored against a yardstick with a built-in per-lab bias.
  • Isolate the bee-size contribution. The reported 0.28 → 0.36 dance mAP spans a config change that also co-tuned spatial/temporal/confidence, switched direction clustering on (0° → 45°), and doubled eval.max_dets (5 → 10, which feeds the dance-level pipeline via ckpt_eval.py). The clean ablation is new params, bee-size off vs new params, bee-size on.
  • Widen the BEE_LENGTH_FRACTION measurement base. output/projected_summary.csv shows n_source_videos = 1 per lab, with only the top resolution tier measured and the rest derived by scaling. If a global N rides on these constants, they should rest on more than one video each.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions