Name | nnunetv2ml JSON |
Version |
2.6.2
JSON |
| download |
home_page | None |
Summary | nnU-Net is a framework for out-of-the box image segmentation. |
upload_time | 2025-08-13 14:42:11 |
maintainer | None |
docs_url | None |
author | Helmholtz Imaging Applied Computer Vision Lab |
requires_python | >=3.10 |
license | Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [2019] [Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. |
keywords |
deep learning
image segmentation
semantic segmentation
medical image analysis
medical image segmentation
nnu-net
nnunet
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# nnU-Net Multi-Label
This fork of nnU-Net contains adaptions to allow multi-class training and inference using nnu-Net.
Multi-label training has been tested with 2D data only, using SimpleITK as the reader/writer for NRRD files.
We used the modified nnU-Net in our work on TotalSegmentator 2D (TS2D).
Check out [TotalSegmentator 2D (TS2D)](https://github.com/risc-mi/totalsegmentator2D).
> Note: Only the dataloader for SimpleITK (simpleitk_reader_writer.py) has been adapted. Other loaders may not support multi-channel images.
> Note: As of now, the adaptions have been tested for 2D only with: nnUNetTrainer, nnUNetTrainerDA5, nnUNetPlans, ExperimentPlanner, DefaultPreprocessor, DatasetFingerprintExtractor.
> Note: As of now, evaluation of multi-label segmentations is not supported.
## Usage
To activate multi-label training, add `"multilabel": true` to your `dataset.json` file.
Regarding the dataset, use multi-channel NRRD format for your label images - the format is supported natively by ITK/SimpleITK.
When viewing the data with NumPy, the array should contain one channel per label (e.g., `256x256x3` for 256x256 image with 3 labels).
You can verify the structure of your data using `SimpleITK.ReadImage`, which automatically detects channels (also called components) and reports them through the method `GetNumberOfComponents()`.
Ensure that the labels in the `dataset.json` match the channel indices of your label images.
Specifically, label value `1` will be mapped to channel index `0` of your image, i.e., `segmentation[label - 1, ...]`.
Label value `0` must be set as the background channel, which is automatically prepended during preprocessing — do not include it in the image data.
Example dataset.json:
```
{
"name": "MyDataset",
"description": "A dataset with multi-label segmentation.",
"tensorImageSize": "2D",
"channel_names": { "0": "XR" },
"multilabel": true,
"labels": {
"0": "background",
"1": "label1",
"2": "label2"
},
"numTraining": 1000,
"numTest": 100,
"file_ending": ".nrrd"
}
```
Modification to the original nnU-Net code have been marked with `MULTICHANNEL-ADAPTION`.
Note, that in code, the segmentation/slice is structured as [ch, slice, x, y], i.e., for 2D [ch, 1, x, y].
## Attribution
This project is a fork of [nnU-Net](https://github.com/MIC-DKFZ/nnUNet).
Original license and credits belong to the original authors. See [LICENSE](./LICENSE) for details.
---
> 📄 **Original `nnU-Net` README.md file below**
---
# Welcome to the new nnU-Net!
Click [here](https://github.com/MIC-DKFZ/nnUNet/tree/nnunetv1) if you were looking for the old one instead.
Coming from V1? Check out the [TLDR Migration Guide](documentation/tldr_migration_guide_from_v1.md). Reading the rest of the documentation is still strongly recommended ;-)
## **2024-04-18 UPDATE: New residual encoder UNet presets available!**
Residual encoder UNet presets substantially improve segmentation performance.
They ship for a variety of GPU memory targets. It's all awesome stuff, promised!
Read more :point_right: [here](documentation/resenc_presets.md) :point_left:
Also check out our [new paper](https://arxiv.org/pdf/2404.09556.pdf) on systematically benchmarking recent developments in medical image segmentation. You might be surprised!
# What is nnU-Net?
Image datasets are enormously diverse: image dimensionality (2D, 3D), modalities/input channels (RGB image, CT, MRI, microscopy, ...),
image sizes, voxel sizes, class ratio, target structure properties and more change substantially between datasets.
Traditionally, given a new problem, a tailored solution needs to be manually designed and optimized - a process that
is prone to errors, not scalable and where success is overwhelmingly determined by the skill of the experimenter. Even
for experts, this process is anything but simple: there are not only many design choices and data properties that need to
be considered, but they are also tightly interconnected, rendering reliable manual pipeline optimization all but impossible!

**nnU-Net is a semantic segmentation method that automatically adapts to a given dataset. It will analyze the provided
training cases and automatically configure a matching U-Net-based segmentation pipeline. No expertise required on your
end! You can simply train the models and use them for your application**.
Upon release, nnU-Net was evaluated on 23 datasets belonging to competitions from the biomedical domain. Despite competing
with handcrafted solutions for each respective dataset, nnU-Net's fully automated pipeline scored several first places on
open leaderboards! Since then nnU-Net has stood the test of time: it continues to be used as a baseline and method
development framework ([9 out of 10 challenge winners at MICCAI 2020](https://arxiv.org/abs/2101.00232) and 5 out of 7
in MICCAI 2021 built their methods on top of nnU-Net,
[we won AMOS2022 with nnU-Net](https://amos22.grand-challenge.org/final-ranking/))!
Please cite the [following paper](https://www.google.com/url?q=https://www.nature.com/articles/s41592-020-01008-z&sa=D&source=docs&ust=1677235958581755&usg=AOvVaw3dWL0SrITLhCJUBiNIHCQO) when using nnU-Net:
Isensee, F., Jaeger, P. F., Kohl, S. A., Petersen, J., & Maier-Hein, K. H. (2021). nnU-Net: a self-configuring
method for deep learning-based biomedical image segmentation. Nature methods, 18(2), 203-211.
## What can nnU-Net do for you?
If you are a **domain scientist** (biologist, radiologist, ...) looking to analyze your own images, nnU-Net provides
an out-of-the-box solution that is all but guaranteed to provide excellent results on your individual dataset. Simply
convert your dataset into the nnU-Net format and enjoy the power of AI - no expertise required!
If you are an **AI researcher** developing segmentation methods, nnU-Net:
- offers a fantastic out-of-the-box applicable baseline algorithm to compete against
- can act as a method development framework to test your contribution on a large number of datasets without having to
tune individual pipelines (for example evaluating a new loss function)
- provides a strong starting point for further dataset-specific optimizations. This is particularly used when competing
in segmentation challenges
- provides a new perspective on the design of segmentation methods: maybe you can find better connections between
dataset properties and best-fitting segmentation pipelines?
## What is the scope of nnU-Net?
nnU-Net is built for semantic segmentation. It can handle 2D and 3D images with arbitrary
input modalities/channels. It can understand voxel spacings, anisotropies and is robust even when classes are highly
imbalanced.
nnU-Net relies on supervised learning, which means that you need to provide training cases for your application. The number of
required training cases varies heavily depending on the complexity of the segmentation problem. No
one-fits-all number can be provided here! nnU-Net does not require more training cases than other solutions - maybe
even less due to our extensive use of data augmentation.
nnU-Net expects to be able to process entire images at once during preprocessing and postprocessing, so it cannot
handle enormous images. As a reference: we tested images from 40x40x40 pixels all the way up to 1500x1500x1500 in 3D
and 40x40 up to ~30000x30000 in 2D! If your RAM allows it, larger is always possible.
## How does nnU-Net work?
Given a new dataset, nnU-Net will systematically analyze the provided training cases and create a 'dataset fingerprint'.
nnU-Net then creates several U-Net configurations for each dataset:
- `2d`: a 2D U-Net (for 2D and 3D datasets)
- `3d_fullres`: a 3D U-Net that operates on a high image resolution (for 3D datasets only)
- `3d_lowres` → `3d_cascade_fullres`: a 3D U-Net cascade where first a 3D U-Net operates on low resolution images and
then a second high-resolution 3D U-Net refined the predictions of the former (for 3D datasets with large image sizes only)
**Note that not all U-Net configurations are created for all datasets. In datasets with small image sizes, the
U-Net cascade (and with it the 3d_lowres configuration) is omitted because the patch size of the full
resolution U-Net already covers a large part of the input images.**
nnU-Net configures its segmentation pipelines based on a three-step recipe:
- **Fixed parameters** are not adapted. During development of nnU-Net we identified a robust configuration (that is, certain architecture and training properties) that can
simply be used all the time. This includes, for example, nnU-Net's loss function, (most of the) data augmentation strategy and learning rate.
- **Rule-based parameters** use the dataset fingerprint to adapt certain segmentation pipeline properties by following
hard-coded heuristic rules. For example, the network topology (pooling behavior and depth of the network architecture)
are adapted to the patch size; the patch size, network topology and batch size are optimized jointly given some GPU
memory constraint.
- **Empirical parameters** are essentially trial-and-error. For example the selection of the best U-net configuration
for the given dataset (2D, 3D full resolution, 3D low resolution, 3D cascade) and the optimization of the postprocessing strategy.
## How to get started?
Read these:
- [Installation instructions](documentation/installation_instructions.md)
- [Dataset conversion](documentation/dataset_format.md)
- [Usage instructions](documentation/how_to_use_nnunet.md)
Additional information:
- [Learning from sparse annotations (scribbles, slices)](documentation/ignore_label.md)
- [Region-based training](documentation/region_based_training.md)
- [Manual data splits](documentation/manual_data_splits.md)
- [Pretraining and finetuning](documentation/pretraining_and_finetuning.md)
- [Intensity Normalization in nnU-Net](documentation/explanation_normalization.md)
- [Manually editing nnU-Net configurations](documentation/explanation_plans_files.md)
- [Extending nnU-Net](documentation/extending_nnunet.md)
- [What is different in V2?](documentation/changelog.md)
Competitions:
- [AutoPET II](documentation/competitions/AutoPETII.md)
[//]: # (- [Ignore label](documentation/ignore_label.md))
## Where does nnU-Net perform well and where does it not perform?
nnU-Net excels in segmentation problems that need to be solved by training from scratch,
for example: research applications that feature non-standard image modalities and input channels,
challenge datasets from the biomedical domain, majority of 3D segmentation problems, etc . We have yet to find a
dataset for which nnU-Net's working principle fails!
Note: On standard segmentation
problems, such as 2D RGB images in ADE20k and Cityscapes, fine-tuning a foundation model (that was pretrained on a large corpus of
similar images, e.g. Imagenet 22k, JFT-300M) will provide better performance than nnU-Net! That is simply because these
models allow much better initialization. Foundation models are not supported by nnU-Net as
they 1) are not useful for segmentation problems that deviate from the standard setting (see above mentioned
datasets), 2) would typically only support 2D architectures and 3) conflict with our core design principle of carefully adapting
the network topology for each dataset (if the topology is changed one can no longer transfer pretrained weights!)
## What happened to the old nnU-Net?
The core of the old nnU-Net was hacked together in a short time period while participating in the Medical Segmentation
Decathlon challenge in 2018. Consequently, code structure and quality were not the best. Many features
were added later on and didn't quite fit into the nnU-Net design principles. Overall quite messy, really. And annoying to work with.
nnU-Net V2 is a complete overhaul. The "delete everything and start again" kind. So everything is better
(in the author's opinion haha). While the segmentation performance [remains the same](https://docs.google.com/spreadsheets/d/13gqjIKEMPFPyMMMwA1EML57IyoBjfC3-QCTn4zRN_Mg/edit?usp=sharing), a lot of cool stuff has been added.
It is now also much easier to use it as a development framework and to manually fine-tune its configuration to new
datasets. A big driver for the reimplementation was also the emergence of [Helmholtz Imaging](http://helmholtz-imaging.de),
prompting us to extend nnU-Net to more image formats and domains. Take a look [here](documentation/changelog.md) for some highlights.
# Acknowledgements
<img src="documentation/assets/HI_Logo.png" height="100px" />
<img src="documentation/assets/dkfz_logo.png" height="100px" />
nnU-Net is developed and maintained by the Applied Computer Vision Lab (ACVL) of [Helmholtz Imaging](http://helmholtz-imaging.de)
and the [Division of Medical Image Computing](https://www.dkfz.de/en/mic/index.php) at the
[German Cancer Research Center (DKFZ)](https://www.dkfz.de/en/index.html).
Raw data
{
"_id": null,
"home_page": null,
"name": "nnunetv2ml",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "deep learning, image segmentation, semantic segmentation, medical image analysis, medical image segmentation, nnU-Net, nnunet",
"author": "Helmholtz Imaging Applied Computer Vision Lab",
"author_email": "Fabian Isensee <f.isensee@dkfz-heidelberg.de>",
"download_url": "https://files.pythonhosted.org/packages/9a/63/bc596eb7a28ba957fa1f07f12bed54e4f11fd845376e0d0e879046ba3371/nnunetv2ml-2.6.2.tar.gz",
"platform": null,
"description": "# nnU-Net Multi-Label\r\n\r\nThis fork of nnU-Net contains adaptions to allow multi-class training and inference using nnu-Net.\r\nMulti-label training has been tested with 2D data only, using SimpleITK as the reader/writer for NRRD files.\r\n\r\nWe used the modified nnU-Net in our work on TotalSegmentator 2D (TS2D).\r\n\r\nCheck out [TotalSegmentator 2D (TS2D)](https://github.com/risc-mi/totalsegmentator2D).\r\n\r\n> Note: Only the dataloader for SimpleITK (simpleitk_reader_writer.py) has been adapted. Other loaders may not support multi-channel images.\r\n\r\n> Note: As of now, the adaptions have been tested for 2D only with: nnUNetTrainer, nnUNetTrainerDA5, nnUNetPlans, ExperimentPlanner, DefaultPreprocessor, DatasetFingerprintExtractor.\r\n\r\n> Note: As of now, evaluation of multi-label segmentations is not supported.\r\n\r\n## Usage\r\n\r\nTo activate multi-label training, add `\"multilabel\": true` to your `dataset.json` file. \r\n\r\nRegarding the dataset, use multi-channel NRRD format for your label images - the format is supported natively by ITK/SimpleITK.\r\nWhen viewing the data with NumPy, the array should contain one channel per label (e.g., `256x256x3` for 256x256 image with 3 labels). \r\nYou can verify the structure of your data using `SimpleITK.ReadImage`, which automatically detects channels (also called components) and reports them through the method `GetNumberOfComponents()`.\r\n\r\nEnsure that the labels in the `dataset.json` match the channel indices of your label images. \r\nSpecifically, label value `1` will be mapped to channel index `0` of your image, i.e., `segmentation[label - 1, ...]`. \r\nLabel value `0` must be set as the background channel, which is automatically prepended during preprocessing \u2014 do not include it in the image data.\r\n\r\nExample dataset.json:\r\n```\r\n{\r\n \"name\": \"MyDataset\",\r\n \"description\": \"A dataset with multi-label segmentation.\",\r\n \"tensorImageSize\": \"2D\",\r\n \"channel_names\": { \"0\": \"XR\" },\r\n \r\n \"multilabel\": true,\r\n \"labels\": {\r\n \"0\": \"background\",\r\n \"1\": \"label1\",\r\n \"2\": \"label2\"\r\n },\r\n \"numTraining\": 1000,\r\n \"numTest\": 100,\r\n \"file_ending\": \".nrrd\"\r\n}\r\n```\r\n\r\nModification to the original nnU-Net code have been marked with `MULTICHANNEL-ADAPTION`.\r\nNote, that in code, the segmentation/slice is structured as [ch, slice, x, y], i.e., for 2D [ch, 1, x, y].\r\n\r\n## Attribution\r\n\r\nThis project is a fork of [nnU-Net](https://github.com/MIC-DKFZ/nnUNet).\r\nOriginal license and credits belong to the original authors. See [LICENSE](./LICENSE) for details.\r\n\r\n---\r\n\r\n> \ud83d\udcc4 **Original `nnU-Net` README.md file below**\r\n\r\n---\r\n\r\n# Welcome to the new nnU-Net!\r\n\r\nClick [here](https://github.com/MIC-DKFZ/nnUNet/tree/nnunetv1) if you were looking for the old one instead.\r\n\r\nComing from V1? Check out the [TLDR Migration Guide](documentation/tldr_migration_guide_from_v1.md). Reading the rest of the documentation is still strongly recommended ;-)\r\n\r\n## **2024-04-18 UPDATE: New residual encoder UNet presets available!**\r\nResidual encoder UNet presets substantially improve segmentation performance.\r\nThey ship for a variety of GPU memory targets. It's all awesome stuff, promised! \r\nRead more :point_right: [here](documentation/resenc_presets.md) :point_left:\r\n\r\nAlso check out our [new paper](https://arxiv.org/pdf/2404.09556.pdf) on systematically benchmarking recent developments in medical image segmentation. You might be surprised!\r\n\r\n# What is nnU-Net?\r\nImage datasets are enormously diverse: image dimensionality (2D, 3D), modalities/input channels (RGB image, CT, MRI, microscopy, ...), \r\nimage sizes, voxel sizes, class ratio, target structure properties and more change substantially between datasets. \r\nTraditionally, given a new problem, a tailored solution needs to be manually designed and optimized - a process that \r\nis prone to errors, not scalable and where success is overwhelmingly determined by the skill of the experimenter. Even \r\nfor experts, this process is anything but simple: there are not only many design choices and data properties that need to \r\nbe considered, but they are also tightly interconnected, rendering reliable manual pipeline optimization all but impossible! \r\n\r\n\r\n\r\n**nnU-Net is a semantic segmentation method that automatically adapts to a given dataset. It will analyze the provided \r\ntraining cases and automatically configure a matching U-Net-based segmentation pipeline. No expertise required on your \r\nend! You can simply train the models and use them for your application**.\r\n\r\nUpon release, nnU-Net was evaluated on 23 datasets belonging to competitions from the biomedical domain. Despite competing \r\nwith handcrafted solutions for each respective dataset, nnU-Net's fully automated pipeline scored several first places on \r\nopen leaderboards! Since then nnU-Net has stood the test of time: it continues to be used as a baseline and method \r\ndevelopment framework ([9 out of 10 challenge winners at MICCAI 2020](https://arxiv.org/abs/2101.00232) and 5 out of 7 \r\nin MICCAI 2021 built their methods on top of nnU-Net, \r\n [we won AMOS2022 with nnU-Net](https://amos22.grand-challenge.org/final-ranking/))!\r\n\r\nPlease cite the [following paper](https://www.google.com/url?q=https://www.nature.com/articles/s41592-020-01008-z&sa=D&source=docs&ust=1677235958581755&usg=AOvVaw3dWL0SrITLhCJUBiNIHCQO) when using nnU-Net:\r\n\r\n Isensee, F., Jaeger, P. F., Kohl, S. A., Petersen, J., & Maier-Hein, K. H. (2021). nnU-Net: a self-configuring \r\n method for deep learning-based biomedical image segmentation. Nature methods, 18(2), 203-211.\r\n\r\n\r\n## What can nnU-Net do for you?\r\nIf you are a **domain scientist** (biologist, radiologist, ...) looking to analyze your own images, nnU-Net provides \r\nan out-of-the-box solution that is all but guaranteed to provide excellent results on your individual dataset. Simply \r\nconvert your dataset into the nnU-Net format and enjoy the power of AI - no expertise required!\r\n\r\nIf you are an **AI researcher** developing segmentation methods, nnU-Net:\r\n- offers a fantastic out-of-the-box applicable baseline algorithm to compete against\r\n- can act as a method development framework to test your contribution on a large number of datasets without having to \r\ntune individual pipelines (for example evaluating a new loss function)\r\n- provides a strong starting point for further dataset-specific optimizations. This is particularly used when competing \r\nin segmentation challenges\r\n- provides a new perspective on the design of segmentation methods: maybe you can find better connections between \r\ndataset properties and best-fitting segmentation pipelines?\r\n\r\n## What is the scope of nnU-Net?\r\nnnU-Net is built for semantic segmentation. It can handle 2D and 3D images with arbitrary \r\ninput modalities/channels. It can understand voxel spacings, anisotropies and is robust even when classes are highly\r\nimbalanced.\r\n\r\nnnU-Net relies on supervised learning, which means that you need to provide training cases for your application. The number of \r\nrequired training cases varies heavily depending on the complexity of the segmentation problem. No \r\none-fits-all number can be provided here! nnU-Net does not require more training cases than other solutions - maybe \r\neven less due to our extensive use of data augmentation. \r\n\r\nnnU-Net expects to be able to process entire images at once during preprocessing and postprocessing, so it cannot \r\nhandle enormous images. As a reference: we tested images from 40x40x40 pixels all the way up to 1500x1500x1500 in 3D \r\nand 40x40 up to ~30000x30000 in 2D! If your RAM allows it, larger is always possible.\r\n\r\n## How does nnU-Net work?\r\nGiven a new dataset, nnU-Net will systematically analyze the provided training cases and create a 'dataset fingerprint'. \r\nnnU-Net then creates several U-Net configurations for each dataset: \r\n- `2d`: a 2D U-Net (for 2D and 3D datasets)\r\n- `3d_fullres`: a 3D U-Net that operates on a high image resolution (for 3D datasets only)\r\n- `3d_lowres` \u2192 `3d_cascade_fullres`: a 3D U-Net cascade where first a 3D U-Net operates on low resolution images and \r\nthen a second high-resolution 3D U-Net refined the predictions of the former (for 3D datasets with large image sizes only)\r\n\r\n**Note that not all U-Net configurations are created for all datasets. In datasets with small image sizes, the \r\nU-Net cascade (and with it the 3d_lowres configuration) is omitted because the patch size of the full \r\nresolution U-Net already covers a large part of the input images.**\r\n\r\nnnU-Net configures its segmentation pipelines based on a three-step recipe:\r\n- **Fixed parameters** are not adapted. During development of nnU-Net we identified a robust configuration (that is, certain architecture and training properties) that can \r\nsimply be used all the time. This includes, for example, nnU-Net's loss function, (most of the) data augmentation strategy and learning rate.\r\n- **Rule-based parameters** use the dataset fingerprint to adapt certain segmentation pipeline properties by following \r\nhard-coded heuristic rules. For example, the network topology (pooling behavior and depth of the network architecture) \r\nare adapted to the patch size; the patch size, network topology and batch size are optimized jointly given some GPU \r\nmemory constraint. \r\n- **Empirical parameters** are essentially trial-and-error. For example the selection of the best U-net configuration \r\nfor the given dataset (2D, 3D full resolution, 3D low resolution, 3D cascade) and the optimization of the postprocessing strategy.\r\n\r\n## How to get started?\r\nRead these:\r\n- [Installation instructions](documentation/installation_instructions.md)\r\n- [Dataset conversion](documentation/dataset_format.md)\r\n- [Usage instructions](documentation/how_to_use_nnunet.md)\r\n\r\nAdditional information:\r\n- [Learning from sparse annotations (scribbles, slices)](documentation/ignore_label.md)\r\n- [Region-based training](documentation/region_based_training.md)\r\n- [Manual data splits](documentation/manual_data_splits.md)\r\n- [Pretraining and finetuning](documentation/pretraining_and_finetuning.md)\r\n- [Intensity Normalization in nnU-Net](documentation/explanation_normalization.md)\r\n- [Manually editing nnU-Net configurations](documentation/explanation_plans_files.md)\r\n- [Extending nnU-Net](documentation/extending_nnunet.md)\r\n- [What is different in V2?](documentation/changelog.md)\r\n\r\nCompetitions:\r\n- [AutoPET II](documentation/competitions/AutoPETII.md)\r\n\r\n[//]: # (- [Ignore label](documentation/ignore_label.md))\r\n\r\n## Where does nnU-Net perform well and where does it not perform?\r\nnnU-Net excels in segmentation problems that need to be solved by training from scratch, \r\nfor example: research applications that feature non-standard image modalities and input channels,\r\nchallenge datasets from the biomedical domain, majority of 3D segmentation problems, etc . We have yet to find a \r\ndataset for which nnU-Net's working principle fails!\r\n\r\nNote: On standard segmentation \r\nproblems, such as 2D RGB images in ADE20k and Cityscapes, fine-tuning a foundation model (that was pretrained on a large corpus of \r\nsimilar images, e.g. Imagenet 22k, JFT-300M) will provide better performance than nnU-Net! That is simply because these \r\nmodels allow much better initialization. Foundation models are not supported by nnU-Net as \r\nthey 1) are not useful for segmentation problems that deviate from the standard setting (see above mentioned \r\ndatasets), 2) would typically only support 2D architectures and 3) conflict with our core design principle of carefully adapting \r\nthe network topology for each dataset (if the topology is changed one can no longer transfer pretrained weights!) \r\n\r\n## What happened to the old nnU-Net?\r\nThe core of the old nnU-Net was hacked together in a short time period while participating in the Medical Segmentation \r\nDecathlon challenge in 2018. Consequently, code structure and quality were not the best. Many features \r\nwere added later on and didn't quite fit into the nnU-Net design principles. Overall quite messy, really. And annoying to work with.\r\n\r\nnnU-Net V2 is a complete overhaul. The \"delete everything and start again\" kind. So everything is better \r\n(in the author's opinion haha). While the segmentation performance [remains the same](https://docs.google.com/spreadsheets/d/13gqjIKEMPFPyMMMwA1EML57IyoBjfC3-QCTn4zRN_Mg/edit?usp=sharing), a lot of cool stuff has been added. \r\nIt is now also much easier to use it as a development framework and to manually fine-tune its configuration to new \r\ndatasets. A big driver for the reimplementation was also the emergence of [Helmholtz Imaging](http://helmholtz-imaging.de), \r\nprompting us to extend nnU-Net to more image formats and domains. Take a look [here](documentation/changelog.md) for some highlights.\r\n\r\n# Acknowledgements\r\n<img src=\"documentation/assets/HI_Logo.png\" height=\"100px\" />\r\n\r\n<img src=\"documentation/assets/dkfz_logo.png\" height=\"100px\" />\r\n\r\nnnU-Net is developed and maintained by the Applied Computer Vision Lab (ACVL) of [Helmholtz Imaging](http://helmholtz-imaging.de) \r\nand the [Division of Medical Image Computing](https://www.dkfz.de/en/mic/index.php) at the \r\n[German Cancer Research Center (DKFZ)](https://www.dkfz.de/en/index.html).\r\n",
"bugtrack_url": null,
"license": "Apache License\r\n Version 2.0, January 2004\r\n http://www.apache.org/licenses/\r\n \r\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\r\n \r\n 1. Definitions.\r\n \r\n \"License\" shall mean the terms and conditions for use, reproduction,\r\n and distribution as defined by Sections 1 through 9 of this document.\r\n \r\n \"Licensor\" shall mean the copyright owner or entity authorized by\r\n the copyright owner that is granting the License.\r\n \r\n \"Legal Entity\" shall mean the union of the acting entity and all\r\n other entities that control, are controlled by, or are under common\r\n control with that entity. For the purposes of this definition,\r\n \"control\" means (i) the power, direct or indirect, to cause the\r\n direction or management of such entity, whether by contract or\r\n otherwise, or (ii) ownership of fifty percent (50%) or more of the\r\n outstanding shares, or (iii) beneficial ownership of such entity.\r\n \r\n \"You\" (or \"Your\") shall mean an individual or Legal Entity\r\n exercising permissions granted by this License.\r\n \r\n \"Source\" form shall mean the preferred form for making modifications,\r\n including but not limited to software source code, documentation\r\n source, and configuration files.\r\n \r\n \"Object\" form shall mean any form resulting from mechanical\r\n transformation or translation of a Source form, including but\r\n not limited to compiled object code, generated documentation,\r\n and conversions to other media types.\r\n \r\n \"Work\" shall mean the work of authorship, whether in Source or\r\n Object form, made available under the License, as indicated by a\r\n copyright notice that is included in or attached to the work\r\n (an example is provided in the Appendix below).\r\n \r\n \"Derivative Works\" shall mean any work, whether in Source or Object\r\n form, that is based on (or derived from) the Work and for which the\r\n editorial revisions, annotations, elaborations, or other modifications\r\n represent, as a whole, an original work of authorship. For the purposes\r\n of this License, Derivative Works shall not include works that remain\r\n separable from, or merely link (or bind by name) to the interfaces of,\r\n the Work and Derivative Works thereof.\r\n \r\n \"Contribution\" shall mean any work of authorship, including\r\n the original version of the Work and any modifications or additions\r\n to that Work or Derivative Works thereof, that is intentionally\r\n submitted to Licensor for inclusion in the Work by the copyright owner\r\n or by an individual or Legal Entity authorized to submit on behalf of\r\n the copyright owner. For the purposes of this definition, \"submitted\"\r\n means any form of electronic, verbal, or written communication sent\r\n to the Licensor or its representatives, including but not limited to\r\n communication on electronic mailing lists, source code control systems,\r\n and issue tracking systems that are managed by, or on behalf of, the\r\n Licensor for the purpose of discussing and improving the Work, but\r\n excluding communication that is conspicuously marked or otherwise\r\n designated in writing by the copyright owner as \"Not a Contribution.\"\r\n \r\n \"Contributor\" shall mean Licensor and any individual or Legal Entity\r\n on behalf of whom a Contribution has been received by Licensor and\r\n subsequently incorporated within the Work.\r\n \r\n 2. Grant of Copyright License. Subject to the terms and conditions of\r\n this License, each Contributor hereby grants to You a perpetual,\r\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\r\n copyright license to reproduce, prepare Derivative Works of,\r\n publicly display, publicly perform, sublicense, and distribute the\r\n Work and such Derivative Works in Source or Object form.\r\n \r\n 3. Grant of Patent License. Subject to the terms and conditions of\r\n this License, each Contributor hereby grants to You a perpetual,\r\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\r\n (except as stated in this section) patent license to make, have made,\r\n use, offer to sell, sell, import, and otherwise transfer the Work,\r\n where such license applies only to those patent claims licensable\r\n by such Contributor that are necessarily infringed by their\r\n Contribution(s) alone or by combination of their Contribution(s)\r\n with the Work to which such Contribution(s) was submitted. If You\r\n institute patent litigation against any entity (including a\r\n cross-claim or counterclaim in a lawsuit) alleging that the Work\r\n or a Contribution incorporated within the Work constitutes direct\r\n or contributory patent infringement, then any patent licenses\r\n granted to You under this License for that Work shall terminate\r\n as of the date such litigation is filed.\r\n \r\n 4. Redistribution. You may reproduce and distribute copies of the\r\n Work or Derivative Works thereof in any medium, with or without\r\n modifications, and in Source or Object form, provided that You\r\n meet the following conditions:\r\n \r\n (a) You must give any other recipients of the Work or\r\n Derivative Works a copy of this License; and\r\n \r\n (b) You must cause any modified files to carry prominent notices\r\n stating that You changed the files; and\r\n \r\n (c) You must retain, in the Source form of any Derivative Works\r\n that You distribute, all copyright, patent, trademark, and\r\n attribution notices from the Source form of the Work,\r\n excluding those notices that do not pertain to any part of\r\n the Derivative Works; and\r\n \r\n (d) If the Work includes a \"NOTICE\" text file as part of its\r\n distribution, then any Derivative Works that You distribute must\r\n include a readable copy of the attribution notices contained\r\n within such NOTICE file, excluding those notices that do not\r\n pertain to any part of the Derivative Works, in at least one\r\n of the following places: within a NOTICE text file distributed\r\n as part of the Derivative Works; within the Source form or\r\n documentation, if provided along with the Derivative Works; or,\r\n within a display generated by the Derivative Works, if and\r\n wherever such third-party notices normally appear. The contents\r\n of the NOTICE file are for informational purposes only and\r\n do not modify the License. You may add Your own attribution\r\n notices within Derivative Works that You distribute, alongside\r\n or as an addendum to the NOTICE text from the Work, provided\r\n that such additional attribution notices cannot be construed\r\n as modifying the License.\r\n \r\n You may add Your own copyright statement to Your modifications and\r\n may provide additional or different license terms and conditions\r\n for use, reproduction, or distribution of Your modifications, or\r\n for any such Derivative Works as a whole, provided Your use,\r\n reproduction, and distribution of the Work otherwise complies with\r\n the conditions stated in this License.\r\n \r\n 5. Submission of Contributions. Unless You explicitly state otherwise,\r\n any Contribution intentionally submitted for inclusion in the Work\r\n by You to the Licensor shall be under the terms and conditions of\r\n this License, without any additional terms or conditions.\r\n Notwithstanding the above, nothing herein shall supersede or modify\r\n the terms of any separate license agreement you may have executed\r\n with Licensor regarding such Contributions.\r\n \r\n 6. Trademarks. This License does not grant permission to use the trade\r\n names, trademarks, service marks, or product names of the Licensor,\r\n except as required for reasonable and customary use in describing the\r\n origin of the Work and reproducing the content of the NOTICE file.\r\n \r\n 7. Disclaimer of Warranty. Unless required by applicable law or\r\n agreed to in writing, Licensor provides the Work (and each\r\n Contributor provides its Contributions) on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\r\n implied, including, without limitation, any warranties or conditions\r\n of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\r\n PARTICULAR PURPOSE. You are solely responsible for determining the\r\n appropriateness of using or redistributing the Work and assume any\r\n risks associated with Your exercise of permissions under this License.\r\n \r\n 8. Limitation of Liability. In no event and under no legal theory,\r\n whether in tort (including negligence), contract, or otherwise,\r\n unless required by applicable law (such as deliberate and grossly\r\n negligent acts) or agreed to in writing, shall any Contributor be\r\n liable to You for damages, including any direct, indirect, special,\r\n incidental, or consequential damages of any character arising as a\r\n result of this License or out of the use or inability to use the\r\n Work (including but not limited to damages for loss of goodwill,\r\n work stoppage, computer failure or malfunction, or any and all\r\n other commercial damages or losses), even if such Contributor\r\n has been advised of the possibility of such damages.\r\n \r\n 9. Accepting Warranty or Additional Liability. While redistributing\r\n the Work or Derivative Works thereof, You may choose to offer,\r\n and charge a fee for, acceptance of support, warranty, indemnity,\r\n or other liability obligations and/or rights consistent with this\r\n License. However, in accepting such obligations, You may act only\r\n on Your own behalf and on Your sole responsibility, not on behalf\r\n of any other Contributor, and only if You agree to indemnify,\r\n defend, and hold each Contributor harmless for any liability\r\n incurred by, or claims asserted against, such Contributor by reason\r\n of your accepting any such warranty or additional liability.\r\n \r\n END OF TERMS AND CONDITIONS\r\n \r\n APPENDIX: How to apply the Apache License to your work.\r\n \r\n To apply the Apache License to your work, attach the following\r\n boilerplate notice, with the fields enclosed by brackets \"[]\"\r\n replaced with your own identifying information. (Don't include\r\n the brackets!) The text should be enclosed in the appropriate\r\n comment syntax for the file format. We also recommend that a\r\n file or class name and description of purpose be included on the\r\n same \"printed page\" as the copyright notice for easier\r\n identification within third-party archives.\r\n \r\n Copyright [2019] [Division of Medical Image Computing, German Cancer Research Center (DKFZ), Heidelberg, Germany]\r\n \r\n Licensed under the Apache License, Version 2.0 (the \"License\");\r\n you may not use this file except in compliance with the License.\r\n You may obtain a copy of the License at\r\n \r\n http://www.apache.org/licenses/LICENSE-2.0\r\n \r\n Unless required by applicable law or agreed to in writing, software\r\n distributed under the License is distributed on an \"AS IS\" BASIS,\r\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n See the License for the specific language governing permissions and\r\n limitations under the License.",
"summary": "nnU-Net is a framework for out-of-the box image segmentation.",
"version": "2.6.2",
"project_urls": {
"homepage": "https://github.com/MIC-DKFZ/nnUNet",
"repository": "https://github.com/MIC-DKFZ/nnUNet"
},
"split_keywords": [
"deep learning",
" image segmentation",
" semantic segmentation",
" medical image analysis",
" medical image segmentation",
" nnu-net",
" nnunet"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "bb796e47687b20da2fc13b3a9f9474f7ac5b6c35c885d65fa49d85465b338f1a",
"md5": "20c6bf2b7ab83f4d79416925a7938e47",
"sha256": "0553548c60a414718a7ba6234a780d41ccf2b3c48afcf66e5b316f097641a54e"
},
"downloads": -1,
"filename": "nnunetv2ml-2.6.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "20c6bf2b7ab83f4d79416925a7938e47",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 290284,
"upload_time": "2025-08-13T14:42:10",
"upload_time_iso_8601": "2025-08-13T14:42:10.088093Z",
"url": "https://files.pythonhosted.org/packages/bb/79/6e47687b20da2fc13b3a9f9474f7ac5b6c35c885d65fa49d85465b338f1a/nnunetv2ml-2.6.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9a63bc596eb7a28ba957fa1f07f12bed54e4f11fd845376e0d0e879046ba3371",
"md5": "dc4905aed494d0aef8fa23c5a08608cf",
"sha256": "64bbdd8537366d1f9abbde03c7b7360c4d16c830b89b685c3204aed05e84a1d4"
},
"downloads": -1,
"filename": "nnunetv2ml-2.6.2.tar.gz",
"has_sig": false,
"md5_digest": "dc4905aed494d0aef8fa23c5a08608cf",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 217553,
"upload_time": "2025-08-13T14:42:11",
"upload_time_iso_8601": "2025-08-13T14:42:11.574911Z",
"url": "https://files.pythonhosted.org/packages/9a/63/bc596eb7a28ba957fa1f07f12bed54e4f11fd845376e0d0e879046ba3371/nnunetv2ml-2.6.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-13 14:42:11",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "MIC-DKFZ",
"github_project": "nnUNet",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "nnunetv2ml"
}