--- license: other license_name: mixed-cc-by-nc-4.0-and-mit license_link: LICENSE.md tags: - cell-segmentation - instance-segmentation - weak-supervision - microscopy - mask-rcnn - detectron2 library_name: detectron2 --- # wsbench: trained models All trained models of **What Labels Are Worth Buying? Budget-Matched Weak Supervision for Cell Segmentation** (Khalid, Naseem, Dengel, Ahmed; ISBI 2027, submitted). Code: https://github.com/nabeelkhalid92/wsbench Labels and splits: https://huggingface.co/datasets/nabeelkhalid92/wsbench-labels Every model is a Mask R-CNN R50-FPN (detectron2), trained with one label strategy at one annotation budget and one seed, and selected on the validation set. Together they cover every strategy, budget and seed of the paper, plus the ablations and baselines. ## Layout ``` ///seed/ model_best.pth weights (val-selected checkpoint) config.yaml full detectron2 config used for training run_info.json dataset, method, label file, best iteration, val score, training time val_history.json validation score at every evaluation score_thr.json score threshold chosen on val (for PQ / F1) ``` `index.json` lists all models. | `` | Strategy in the paper | |---|---| | `mrcnn_full` | **Mask**: full masks (`budget_mask_B`), or all training masks (`mask`: the "Full, 6.6 B1" reference) | | `ours` | **Box** (`budget_box_B`) and **Mixed** (`budget_mixed_B`): SAM2.1 pseudo-labels with the verification score | | `pointsup` | **Box+1pt** (`budget_pts1_B`): one labelled point per box (PointSup-based Point2Mask) | | `mrcnn_boxrect` | box used directly as the mask (floor) | | `boxinst`, `discobox`, `boxsnake`, `boxteacher` | box-supervised baselines (their own architectures) | `B` is the annotation budget in seconds (B1 = time to box every training cell: yeast 7826 s, DSB2018 164605 s, LIVECell 7130032 s). LIVECell settings with a cell-type suffix (`_skbr3`, `_bv2`, `_shsy5y`) are the single-cell-type study. Other names: `mixednocal` = Mixed without calibration, `*_selsingle` / `*_seltoppred` / `*_acc0_noweight` = pseudo-label selection ablations, `mask_` = all training masks of one cell type (reference). `pts1sam` = **SAM+pt**: a box and one labelled point per cell; the box prompts SAM2.1 and the point is used to choose among its masks (and as a point loss for cells whose mask is rejected). These models were trained after a fix to the point loss on rejected cells (code commit 2e635fa, 29 Oct 2026); earlier versions of `yeast/ours/budget_pts1sam_B490lr/seed0-1` were replaced. The LIVECell ablation `boxpts7_sam2l_subset600` (7 points per cell) was trained before this fix. ## Use ```python from huggingface_hub import hf_hub_download ckpt = hf_hub_download("nabeelkhalid92/wsbench-models", "yeast/ours/budget_box_B1960/seed0/model_best.pth") cfg = hf_hub_download("nabeelkhalid92/wsbench-models", "yeast/ours/budget_box_B1960/seed0/config.yaml") ``` With the code repository: `python wsbench/train/train_net.py --dataset yeast --method ours --setting budget_box_B1960 --seed 0 --train-json