| --- |
| license: apache-2.0 |
| tags: |
| - medical-imaging |
| - segmentation |
| - nnunet |
| - computed-tomography |
| - cancer |
| - cvpr2026 |
| - flare |
| datasets: |
| - FLARE-MedFM/FLARE-Task1-Pancancer |
| metrics: |
| - dice |
| - normalized-surface-dice |
| pipeline_tag: image-segmentation |
| --- |
| |
| # Vanilla nnUNet v2 Baseline — CVPR 2026 Task 1: Pan-Cancer Segmentation |
|
|
| Binary lesion segmentation from CT using vanilla nnU-Net v2 (ResEncM). Reference baseline for [CVPR 2026: Foundation Models for Pan-cancer Segmentation in CT Images Task 1](https://www.codabench.org/competitions/7149/). |
|
|
| **Code + failure analysis:** [GitHub — Kappapapa123/CVPR2026-PanCancerSeg-baseline](https://github.com/Kappapapa123/CVPR2026-PanCancerSeg-baseline) |
|
|
| --- |
|
|
| ## Model Details |
|
|
| | Parameter | Value | |
| |-----------|-------| |
| | Framework | nnU-Net v2.6.4 | |
| | Architecture | Residual Encoder U-Net Medium (`nnUNetResEncUNetMPlans`) | |
| | Configuration | 3d_fullres | |
| | Task | Binary segmentation (0=background, 1=tumor) | |
| | Epochs | 2000 | |
| | Fold | 0 (official competition split via `splits_final.json`) | |
| | Trainer class | `nnUNetTrainerWandb2000` | |
| | Dataset ID | 101 (`Dataset101_FLAREPanCancer`) | |
|
|
| ## Training Data |
|
|
| [FLARE-MedFM/FLARE-Task1-Pancancer](https://huggingface.co/datasets/FLARE-MedFM/FLARE-Task1-Pancancer) — 10,762 cases total: |
| - **train_label** (~10,000 cases): Partially labeled (primary lesion only per case) |
| - **DeepLesion5K-MedSAM2** (~762 cases): Pseudo labels from MedSAM2 |
| |
| Only the primary lesion is annotated per training case. Metastatic lesions may be present but unlabeled. |
| |
| ## Performance |
| |
| Evaluated on 50 validation-public cases: |
| |
| | Metric | Mean | Median | Std | |
| |--------|------|--------|-----| |
| | Lesion DSC | 0.3278 | 0.2318 | 0.2883 | |
| | Lesion NSD (2 mm) | 0.1797 | 0.1046 | 0.2029 | |
| |
| ## How to Use |
| |
| ```bash |
| # 1. Install dependencies |
| pip install nnunetv2==2.6.4 huggingface-hub |
| |
| # 2. Clone code repo (needed for the custom trainer) |
| git clone https://github.com/Kappapapa123/CVPR2026-PanCancerSeg-baseline.git |
| |
| # 3. Symlink the custom trainer into nnUNet |
| VARIANTS_DIR=$(python -c "import nnunetv2; print(nnunetv2.__path__[0])")/training/nnUNetTrainer/variants |
| ln -sf $(realpath CVPR2026-PanCancerSeg-baseline/trainers/nnUNetTrainerWandb2000.py) \ |
| "$VARIANTS_DIR/nnUNetTrainerWandb2000.py" |
| |
| # 4. Download model weights |
| huggingface-cli download KS987/CVPR2026-PanCancerSeg-baseline \ |
| --local-dir ./model --repo-type model |
| |
| # 5. Run inference |
| nnUNetv2_predict \ |
| -i /path/to/input_images \ |
| -o /path/to/output_predictions \ |
| -d 101 -c 3d_fullres -f 0 \ |
| -tr nnUNetTrainerWandb2000 \ |
| -p nnUNetResEncUNetMPlans \ |
| -m ./model/nnUNet/Dataset101_FLAREPanCancer \ |
| --disable_tta |
| ``` |
| |
| Both `checkpoint_final.pth` and `checkpoint_best.pth` are provided. nnUNet uses `checkpoint_final.pth` by default. |
| |
| > Inference resampling requires ~64 GB RAM. |
| |
| ## Limitations |
| |
| - **Partial labels:** Training data only labels the primary lesion per case. |
| - **False positive fragmentation:** The dominant failure mode is scattered false-positive blobs. See the [failure analysis](https://github.com/Kappapapa123/CVPR2026-PanCancerSeg-baseline#failure-analysis). |
| |
| ## Files |
| |
| ``` |
| nnUNet/ |
| Dataset101_FLAREPanCancer/ |
| nnUNetTrainerWandb2000__nnUNetResEncUNetMPlans__3d_fullres/ |
| fold_0/ |
| checkpoint_best.pth # Best validation checkpoint |
| checkpoint_final.pth # Final epoch (2000) checkpoint |
| dataset.json |
| dataset_fingerprint.json |
| plans.json |
| ``` |
| |