Paper · 2024-04-15 · cs.CV
nnU-Net Revisited: A Call for Rigorous Validation in 3D Medical Image Segmentation
Benchmarks CNN, Transformer and Mamba 3D segmentation models on six datasets with five-fold CV on nnU-Net splits. Recent claims mostly fail against the original nnU-Net; CNN U-Nets (ResEnc, MedNeXt, STU-Net) lead. BTCV and BraTS separate methods poorly. Author-reported.
Semantic segmentationBenchmark validitySegmentation evaluation (scoring foreground, saliency and segmentation masks)medical-imagingsegmentationbenchmarkingvalidation
arXivPDFCodeMarkdown13 min read
AI-compiled by claude-haiku-5-5 on 2026-10-24, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.
In plain words
Medical image segmentation means outlining organs or tumours in 3D scans. Many papers claim that a new neural network design beats the U-Net, the standard architecture for this job. This paper asks whether those claims survive a fair test. Its answer is mostly no. When the comparisons are made carefully, the old U-Net, configured well by the nnU-Net framework and given enough GPU memory, beats most of the newer designs.
The authors list common ways such comparisons go wrong. Examples include giving the new method extra training data or a stronger encoder that the baseline lacks, comparing against a poorly tuned baseline, using a single small test split, and picking only the classes that look good. They also rank six public datasets by how well they tell methods apart, and find that some of the most popular ones are poor for that purpose.
The lesson for an engineer is to check the baseline before trusting a new architecture's gain, and to measure on datasets and splits that can actually show a difference.
TL;DR
- Benchmarks CNN, Transformer and Mamba segmentation models on six 3D datasets, using five-fold cross-validation with nnU-Net's splits §3.2 tab. 1.
- Most recent Transformer and Mamba claims do not hold against the original nnU-Net. The strongest entries are CNN U-Nets: nnU-Net ResEnc presets, MedNeXt and STU-Net §4.
- Author-reported. Code is Apache-2.0 nnU-Net; the other methods' code is not part of this card's source.
Problem
Papers that propose a new 3D segmentation model often compare against a baseline that is not fully tuned, is trained on less data or without the same compute, or is measured on a small or unrepresentative split. The authors argue that recent claims of superiority over the U-Net therefore cannot be trusted without a controlled comparison §1 §2.
They identify four pitfalls: confounding performance boosters (P1), baselines that are not well configured or standardised (P2), insufficient or unsuitable datasets (P3), and inconsistent reporting such as custom splits, ensembles and test-time augmentation (P4) §2.1 §2.2.
Method
The paper has two parts: a list of validation pitfalls with recommendations (R1 to R4), and a benchmark that applies them §2 §3.
Recommendations §2
- R1: isolate the claimed innovation. Do not couple it with extra data, self-supervised pre-training, larger compute, or ensembling that the baseline lacks §2.1.
- R2: configure every baseline well. Prefer auto-configuration frameworks, or require that new methods ship adaptation instructions §2.1.
- R3: check that each dataset can separate methods, and use enough datasets §2.2.
- R4: use five-fold cross-validation with rotating validation folds. Ideally keep a separate pool of development datasets and an independent pool for testing §2.2.
Benchmark protocol §3.1
- Every method uses a standard configuration scheme, applied in this order: (a) the method's own self-configuration if it has one; (b) the configuration nearest to the dataset when several are offered; (c) the default configuration when no alternatives exist; (d) where needed, a lower learning rate until training converges §3.1.
- All models are trained from scratch. The only exception is SwinUNETR inside Auto3DSeg, which by default loads pre-trained weights and was left as is §3.1.
- All trainings run on one NVIDIA A100 with 40 GB VRAM, which excludes the largest STU-Net variant ("H") §3.1.
- Most methods run inside the nnU-Net framework. SwinUNETR (V1 and V2) was integrated into nnU-Net because its configuration instructions were incomplete §3.1.
- The framework comparison runs Auto3DSeg (version 1.3.0, part of MONAI) with three architectures: SegResNet, DiNTS and SwinUNETR §3.1.
Dataset suitability score §3.2 fig. 1 tab. 3
Computed per dataset from the same benchmark runs. The paper defines it in words, and it has no numbered equation.
# Dataset suitability: inter-method SD over intra-method SD [§3.2]
# dice[method][fold] = DSC of one method on one of the five folds
# Output: suitability ratio (higher = better at separating methods)
def suitability(dice):
# Intra-method SD: spread across folds, per method, then averaged [§3.2]
intra = mean([std(dice[m]) for m in methods])
# Inter-method SD: spread of each method's fold-mean score [§3.2]
inter = std([mean(dice[m]) for m in methods])
return inter / intraThe paper does not state the SD convention (population or sample).
Evaluation §3.2 tab. 4
- Five-fold cross-validation, with the splits generated by nnU-Net and used for every method §3.2.
- Primary metric: average Dice similarity coefficient (DSC). Secondary metric: Normalized Surface Dice (NSD) at 2 mm tolerance tab. 4.
- Both metrics are averaged over classes and then over folds. For BraTS2021 and KiTS2023, metrics are computed on the hierarchical evaluation regions, not the non-overlapping classes §3.2.
Datasets §3.2: BTCV, ACDC, LiTS, BraTS2021, KiTS2023 and AMOS2022 (post-challenge Task 2). They were chosen for popularity.
Methods compared §3.1 tab. 1
- CNN: nnU-Net original; nnU-Net ResEnc presets M, L, XL (residual-encoder U-Nets sized for three VRAM budgets); MedNeXt L with kernel sizes k3 and k5; STU-Net S, B, L.
- Transformer: SwinUNETR, SwinUNETRV2, nnFormer and CoTr.
- Mamba: U-Mamba Bot and U-Mamba Enc, plus the "No-Mamba Base" ablation that keeps the same setting without Mamba layers.
- Framework comparison: Auto3DSeg SegResNet, DiNTS and SwinUNETR.
Hyperparameters
The paper states few training hyperparameters. The values below come from the official nnU-Net code (commit in the frontmatter), unless noted. They are the framework defaults; the paper does not say which overrides each method used.
| Name | Value | Where | Notes |
|---|---|---|---|
| Folds | 5, nnU-Net splits | §3.2 | same splits for all methods |
| Metrics | DSC (primary), NSD at 2 mm | §3.2 tab. 4 | averaged over classes, then folds |
| Training regime | from scratch | §3.1 | exception: SwinUNETR in Auto3DSeg |
| GPU | 1 × A100 40 GB | §3.1 | equal VRAM budget for all methods |
| Optimiser | SGD, momentum 0.99, Nesterov | nnUNetTrainer.py | code default |
| Initial learning rate | 1e-2 | nnUNetTrainer.py | code default; paper gives no per-method values |
| LR schedule | polynomial decay over epochs | nnUNetTrainer.py | code default |
| Weight decay | 3e-5 | nnUNetTrainer.py | code default |
| Epochs | 1000 | nnUNetTrainer.py | code default |
| Iterations per epoch | 250 training, 50 validation | nnUNetTrainer.py | code default |
| Foreground oversampling | 0.33 | nnUNetTrainer.py | code default |
| Deep supervision | enabled | nnUNetTrainer.py | code default |
| Loss | Dice + cross-entropy, weights 1 and 1, smooth 1e-5, background excluded | nnUNetTrainer.py | batch_dice flag comes from the plans; not checked |
| Base feature count | 32 | default_experiment_planner.py | planner default |
| Max features (3D) | 320 | default_experiment_planner.py | planner default |
| Minimum feature-map edge | 4 | default_experiment_planner.py | planner default |
| Minimum batch size | 2 | default_experiment_planner.py | planner default |
| Dataset coverage cap, default planner | 5% of the dataset | default_experiment_planner.py | planner default; caps batch size |
| ResEnc encoder blocks per stage | (1, 3, 4, 6, 6, …) | residual_encoder_unet_planners.py | fixed in the ResEnc planner |
| ResEnc VRAM target (M / L / XL) | 8 / 24 / 40 GB | residual_encoder_unet_planners.py | sets the patch and batch size; paper gives no batch sizes for the main runs |
| ResEnc reference (3D, M / L / XL) | 680 M / 2100 M / 3600 M | residual_encoder_unet_planners.py | static VRAM-estimate units, not GB |
| ResEnc dataset coverage cap | 1 (whole dataset) | residual_encoder_unet_planners.py | differs from the default 5%; see Pitfalls |
| Auto3DSeg version | 1.3.0 | §3.1 | not part of the cloned code |
| Auto3DSeg budget (KiTS fold 0 ablation) | up to 900 epochs, 8 GPUs | tab. 2 | paper's manual tuning |
Results
Author-reported. Setup: five-fold cross-validation with nnU-Net splits on six 3D datasets, all trained from scratch on one A100 40 GB §3.1 §3.2. RT is GPU-hours on A100 40 GB PCIe, and VRAM is the peak usage the paper reports, in GB.
Table 1: mean DSC (%) per dataset tab. 1. Bold marks the best value in each dataset column, as in the paper.
| Method | BTCV | ACDC | LiTS | BraTS | KiTS | AMOS | VRAM [GB] | RT [h] | Arch. | nnU |
|---|---|---|---|---|---|---|---|---|---|---|
| nnU-Net (org.) | 83.08 | 91.54 | 80.09 | 91.24 | 86.04 | 88.64 | 7.70 | 9 | CNN | Yes |
| nnU-Net ResEnc M | 83.31 | 91.99 | 80.75 | 91.26 | 86.79 | 88.77 | 9.10 | 12 | CNN | Yes |
| nnU-Net ResEnc L | 83.35 | 91.69 | 81.60 | 91.13 | 88.17 | 89.41 | 22.70 | 35 | CNN | Yes |
| nnU-Net ResEnc XL | 83.28 | 91.48 | 81.19 | 91.18 | 88.67 | 89.68 | 36.60 | 66 | CNN | Yes |
| MedNeXt L k3 | 84.70 | 92.65 | 82.14 | 91.35 | 88.25 | 89.62 | 17.30 | 68 | CNN | Yes |
| MedNeXt L k5 | 85.04 | 92.62 | 82.34 | 91.50 | 87.74 | 89.73 | 18.00 | 233 | CNN | Yes |
| STU-Net S | 82.92 | 91.04 | 78.50 | 90.55 | 84.93 | 88.08 | 5.20 | 10 | CNN | Yes |
| STU-Net B | 83.05 | 91.30 | 79.19 | 90.85 | 86.32 | 88.46 | 8.80 | 15 | CNN | Yes |
| STU-Net L | 83.36 | 91.31 | 80.31 | 91.26 | 85.84 | 89.34 | 26.50 | 51 | CNN | Yes |
| SwinUNETR | 78.89 | 91.29 | 76.50 | 90.68 | 81.27 | 83.81 | 13.10 | 15 | TF | Yes |
| SwinUNETRV2 | 80.85 | 92.01 | 77.85 | 90.74 | 84.14 | 86.24 | 13.40 | 15 | TF | Yes |
| nnFormer | 80.86 | 92.40 | 77.40 | 90.22 | 75.85 | 81.55 | 5.70 | 8 | TF | Yes |
| CoTr | 81.95 | 90.56 | 79.10 | 90.73 | 84.59 | 88.02 | 8.20 | 18 | TF | Yes |
| No-Mamba Base | 83.69 | 91.89 | 80.57 | 91.26 | 85.98 | 89.04 | 12.0 | 24 | CNN | Yes |
| U-Mamba Bot | 83.51 | 91.79 | 80.40 | 91.26 | 86.22 | 89.13 | 12.40 | 24 | Mam | Yes |
| U-Mamba Enc | 82.41 | 91.22 | 80.27 | 90.91 | 86.34 | 88.38 | 24.90 | 47 | Mam | Yes |
| A3DS SegResNet | 80.69 | 90.69 | 79.28 | 90.79 | 81.11 | 87.27 | 20.00 | 22 | CNN | No |
| A3DS DiNTS | 78.18 | 82.97 | 69.05 | 87.75 | 65.28 | 82.35 | 29.20 | 16 | CNN | No |
| A3DS SwinUNETR | 76.54 | 82.68 | 68.59 | 89.90 | 52.82 | 85.05 | 34.50 | 9 | TF | No |
Table 4: mean NSD (%) at 2 mm tab. 4 (the paper orders the columns LiTS, BTCV, ACDC, BraTS2021, KiTS2023, AMOS2022)
| Method | LiTS | BTCV | ACDC | BraTS2021 | KiTS2023 | AMOS2022 |
|---|---|---|---|---|---|---|
| nnU-Net (org.) | 78.26 | 85.53 | 94.93 | 93.64 | 82.91 | 91.49 |
| nnU-Net ResEnc M | 79.96 | 86.01 | 95.50 | 93.71 | 84.10 | 91.72 |
| nnU-Net ResEnc L | 80.39 | 86.08 | 95.11 | 93.59 | 85.93 | 92.35 |
| nnU-Net ResEnc XL | 79.64 | 85.89 | 94.90 | 93.61 | 86.49 | 92.64 |
| MedNeXt L k3 | 81.07 | 87.78 | 96.07 | 93.85 | 86.29 | 92.72 |
| MedNeXt L k5 | 81.26 | 88.18 | 96.09 | 94.04 | 85.67 | 92.86 |
| STU-Net S | 76.20 | 85.13 | 94.27 | 93.26 | 81.08 | 90.81 |
| STU-Net B | 77.33 | 85.30 | 94.59 | 93.54 | 83.08 | 91.28 |
| STU-Net L | 78.85 | 85.81 | 95.12 | 93.66 | 83.02 | 92.30 |
| SwinUNETR | 73.06 | 79.79 | 94.12 | 93.16 | 75.91 | 85.13 |
| SwinUNETRV2 | 75.38 | 82.52 | 95.15 | 93.15 | 80.11 | 88.47 |
| nnFormer | 74.66 | 82.29 | 95.83 | 93.22 | 69.43 | 82.93 |
| CoTr | 77.25 | 84.10 | 93.74 | 93.49 | 80.92 | 90.75 |
| No-Mamba Base | 78.88 | 86.14 | 95.26 | 93.64 | 83.56 | 92.08 |
| U-Mamba Bot | 78.91 | 86.40 | 95.40 | 93.65 | 83.27 | 92.00 |
| U-Mamba Enc | 78.60 | 84.60 | 94.33 | 93.21 | 83.64 | 91.25 |
| A3DS SegResNet | 76.46 | 82.01 | 93.88 | 93.40 | 75.61 | 89.85 |
| A3DS DiNTS | 62.49 | 77.30 | 83.67 | 90.36 | 58.74 | 82.75 |
| A3DS SwinUNETR | 61.16 | 74.59 | 83.94 | 92.00 | 46.37 | 86.93 |
Dataset suitability tab. 3 fig. 1. Average over methods. "Inter/intra" is the suitability ratio above.
| Set | Metric | BTCV | ACDC | LiTS | BraTS | KiTS | AMOS |
|---|---|---|---|---|---|---|---|
| All methods | Intra SD | 2.39% | 0.79% | 2.89% | 0.66% | 2.07% | 0.53% |
| All methods | Inter SD | 2.24% | 2.83% | 3.80% | 0.84% | 9.03% | 2.52% |
| All methods | Inter/intra | 94% | 357% | 132% | 127% | 435% | 474% |
| Without A3DS | Intra SD | 2.35% | 0.56% | 2.66% | 0.66% | 1.93% | 0.48% |
| Without A3DS | Inter SD | 1.52% | 0.57% | 1.68% | 0.35% | 3.14% | 2.28% |
| Without A3DS | Inter/intra | 65% | 102% | 63% | 53% | 163% | 477% |
Auto3DSeg vs nnU-Net on KiTS fold 0 tab. 2. Manual tuning of the framework approaches but does not reach nnU-Net ResEnc M.
| Model | GPU h | VRAM (GPUs × MB) | Epochs | Batch | Patch | Spacing (mm) | DSC [%] |
|---|---|---|---|---|---|---|---|
| nnU-Net (org.) | 8.88 | 1 × 6901 | - | 2 | 128³ | 1×0.78×0.78 | 86.25 |
| nnU-Net ResEnc M | 11.39 | 1 × 8805 | - | 2 | 128³ | 1×0.78×0.78 | 87.91 |
| nnU-Net ResEnc L | 35.28 | 1 × 24223 | - | 2 | 160×224×192 | 1×0.78×0.78 | 88.60 |
| A3DS SegResNet (default) | 39.72 | 1 × 20267 | 300 | 2 | 144×224×224 | 1×0.78×0.78 | 83.73 |
| A3DS SegResNet | 61.28 | 8 × 20267 | 300 | 8×2 | 144×224×224 | 1×0.78×0.78 | 76.81 |
| A3DS SegResNet | 136.64 | 8 × 20267 | 600 | 8×2 | 144×224×224 | 0.78×0.78×0.78 | 85.60 |
| A3DS SegResNet | 247.44 | 8 × 39873 | 900 | 8×2 | 224×256×256 | 0.78×0.78×0.78 | 87.77 |
Spacing ablation for MedNeXt tab. 5. Mean DSC (%) with isotropic spacing for ResEnc L:
| Dataset | Method | Patch | Spacing (mm) | Batch | DSC |
|---|---|---|---|---|---|
| BTCV | nnU-Net ResEnc L | 80×256×256 | 3×0.76×0.76 | 2 | 83.35 |
| BTCV | nnU-Net ResEnc L (iso) | 192³ | 1×1×1 | 2 | 84.01 |
| BTCV | MedNeXt L k3 | 128³ | 1×1×1 | 2 | 84.70 |
| ACDC | nnU-Net ResEnc L | 20×256×224 | 5×1.56×1.56 | 10 | 91.69 |
| ACDC | nnU-Net ResEnc L (iso) | 96×256×256 | 1×1×1 | 3 | 92.64 |
| ACDC | MedNeXt L k3 | 128³ | 1×1×1 | 2 | 92.65 |
| AMOS | nnU-Net ResEnc L | 96×224×224 | 2×0.71×0.71 | 2 | 89.40 |
| AMOS | nnU-Net ResEnc L (iso) | 192³ | 1×1×1 | 2 | 89.60 |
| AMOS | MedNeXt L k3 | 128³ | 1×1×1 | 2 | 89.62 |
Transfer ablation for STU-Net L tab. 6. Mean DSC (%); the source caption says the BraTS fine-tune did not converge at the default learning rate of 0.001, so the table cell is 0.
| Model | BTCV | ACDC | LiTS | BraTS | KiTS | AMOS | RT [h] |
|---|---|---|---|---|---|---|---|
| STU-Net L (from scratch) | 83.36 | 91.31 | 80.31 | 91.26 | 85.84 | 89.34 | 51 |
| STU-Net L (pre-trained on TotalSegmentator) | 84.28 | 91.53 | 81.57 | 0 (did not converge) | 88.32 | 89.46 | 51 (fine-tuning only; pre-training about 4× longer) |
Headline findings §4
- CNN U-Nets built in nnU-Net perform strongest across all six datasets. MedNeXt has the best DSC on every dataset except KiTS, but its gains shrink on the more suitable datasets §4 tab. 1.
- Transformer models (SwinUNETR, nnFormer, CoTr) do not match the CNNs or the original nnU-Net §4.
- The U-Mamba advantage disappears once the missing "No-Mamba Base" ablation is included; the earlier gain came from the residual encoder, not Mamba §4 tab. 1.
- Auto3DSeg methods trail the original nnU-Net. Against the same SwinUNETR, nnU-Net wins on 5 of 6 datasets §4.
- Gains from scaling grow on the harder datasets, AMOS and KiTS §4.
Paper vs code
Code: the official nnU-Net repository, https://github.com/MIC-DKFZ/nnUNet, at commit 1489d746e084459581ff20382c1241d8cc2eb258, Apache-2.0. The paper links this repository in its contributions list §1.
- Scope of code checked. Only the nnU-Net framework was cloned and read. The implementations of MedNeXt, STU-Net, U-Mamba, SwinUNETR, nnFormer, CoTr and Auto3DSeg were not checked, so no code citations are given for them.
- ResEnc presets. The paper describes M, L and XL as presets for three hardware tiers, and says all runs used one 40 GB A100 §3.1. The code sizes the presets for targets of 8, 24 and 40 GB and documents them as roughly 9–11 GB, 24 GB and 40 GB residual_encoder_unet_planners.py residual_encoder_unet_planners.py residual_encoder_unet_planners.py. The paper's own VRAM column (9.10, 22.70 and 36.60 GB) is measured usage tab. 1.
- Dataset coverage cap. The paper does not mention it. The ResEnc presets set the batch-size cap to the whole dataset (coverage 1) residual_encoder_unet_planners.py, while the default planner caps coverage at 5% default_experiment_planner.py. Batch sizes for the paper's ResEnc runs are therefore not determined by the paper's text.
- Learning rate rule. The paper says the learning rate was decreased "until convergence" for some methods §3.1. The defaults shown above fix the initial rate at 1e-2 nnUNetTrainer.py, and no per-method values are given in the paper. Whether the learning rate was changed for any method is not stated.
- Deprecated duplicate planner. A module at
nnunetv2/experiment_planning/experiment_planners/resencUNet_planner.pynow re-exports the maintained class and emits a deprecation warning. The code's own comment says that an earlier duplicate caused-pl ResEncUNetPlannerto pick a stale class resencUNet_planner.py. Use theresidual_unetspath. - Trainer defaults not contradicted. The paper does not state epochs, optimiser or loss settings, so the code defaults cannot be checked against it. The code defaults are the values in the Hyperparameters table.
Pitfalls
- Training hyperparameters are mostly not stated. The paper gives no epochs, learning rates, batch sizes or patch sizes for most methods, except the tables in the appendix. The values above are nnU-Net code defaults and may not be what each method used. The paper says the learning rate was lowered for some methods but does not name them.
- Batch sizes depend on the planner. For ResEnc presets, batch size comes from the VRAM estimate and the coverage cap, not from a fixed value. With the cap set to the whole dataset, small datasets can get large batches. Plan on running the planner rather than copying a batch size.
- Dataset ranking depends on which methods are included. Without Auto3DSeg, the ACDC ratio falls from 357% to 102%, and BTCV falls from 94% to 65% tab. 3. The text names ACDC, AMOS and KiTS as most suitable §4; the ranking of ACDC relative to the others is sensitive to the method set. The paper does not state the SD convention, so ratios may shift slightly by convention.
- Differences between top methods are small relative to fold variability. Intra-method SD is 2.39% on BTCV and 2.07% on KiTS tab. 3. Several top-table gaps are below one point (for example, ResEnc L vs MedNeXt L k3 on BraTS: 91.13 vs 91.35). The paper reports no significance test, so the ranking among the top CNNs on the suitable datasets is not established.
- Spacing confounds architecture. Isotropic ResEnc L (84.01 on BTCV, 92.64 on ACDC, 89.60 on AMOS) comes close to MedNeXt L k3 (84.70, 92.65, 89.62), and the paper concludes that part of MedNeXt's advantage is target spacing §4 tab. 5. Spacing and patch size must be set per dataset to reproduce this.
- Hidden compute cost. MedNeXt L k5 runs for 233 GPU-hours against 18 GB VRAM, while ResEnc M runs for 12 hours tab. 1. The paper's cost comparison uses RT, and the Auto3DSeg manual-tuning run uses about 240 GPU-hours on 8 GPUs for one fold tab. 2 §4. The appendix caption gives 240 hours, the table 247.44 hours; use the table value.
- Appendix table numbers. This card cites appendix tables as tab. 2 to tab. 6, following source order in the LaTeX. The compiled PDF was not available, so verify these numbers against it before relying on them.
- Missing STU-Net value. The pre-trained STU-Net BraTS cell is 0 in the source table, meaning the fine-tune did not converge. Do not average it.
- Auto3DSeg version. The paper uses Auto3DSeg 1.3.0 §3.1. The wider Auto3DSeg code is not part of this card's source, so claims about its internals are not checked.
- Licence for external code. The MedNeXt, STU-Net and U-Mamba repositories are separate projects; their licences were not checked here.
Lineage
- Builds on: nnU-Net (cited in the paper as 2018 and 2021 works) for auto-configuration and the self-configuring U-Net baseline §1 §2.1. Not a wiki card.
- Compared against: U-Mamba §3.1, MedNeXt §3.1, STU-Net §3.1, SwinUNETR and SwinUNETR V2 §3.1, nnFormer §3.1, CoTr §3.1, Auto3DSeg §3.1. None of these have cards in this wiki yet.
- Superseded by: not stated.
Source and license
Adapted from “nnU-Net Revisited: A Call for Rigorous Validation in 3D Medical Image Segmentation” by Fabian Isensee, Tassilo Wald, Constantin Ulrich, Michael Baumgartner, Saikat Roy, Klaus Maier-Hein, Paul F. Jaeger (arXiv:2404.09556), used under CC BY 4.0. Changes: condensed and restructured for implementation, with tables, equations and algorithms taken from the paper and its code, each cited to its source. Not affiliated with or endorsed by the authors. Code citations refer to https://github.com/MIC-DKFZ/nnUNet at commit 1489d746e084 (Apache-2.0). Any quoted code is shown under that license.