1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/RitchieAlpha-nnUNet

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
readme.md 16 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 01.12.2024 13:51 e75e749

Добро пожаловать в новый nnU-Net!

Если вы искали старый, нажмите здесь.

Перешли с версии V1? Ознакомьтесь с TLDR Migration Guide. Чтение остальной документации по-прежнему настоятельно рекомендуется ;-)

Что такое nnU-Net?

Наборы данных изображений чрезвычайно разнообразны: размерность изображения (2D, 3D), модальности/входные каналы (RGB-изображение, КТ, МРТ, микроскопия и т. д.), размеры изображений, размеры вокселей, соотношение классов, свойства целевой структуры и многое другое существенно различаются между наборами данных. Традиционно при возникновении новой проблемы необходимо вручную разработать и оптимизировать индивидуальное решение — процесс, который подвержен ошибкам, не масштабируется и где успех в подавляющем большинстве случаев определяется навыками экспериментатора. Даже для экспертов этот процесс совсем не прост: необходимо учитывать не только множество вариантов дизайна и свойств данных, но они также тесно взаимосвязаны, что делает надёжную ручную оптимизацию конвейера практически невозможной!

nnU-Net — это метод семантической сегментации, который автоматически адаптируется к заданному набору данных. Он проанализирует предоставленные обучающие примеры и автоматически настроит соответствующий конвейер сегментации на основе U-Net. Никаких специальных знаний от вас не требуется! Вы можете просто обучить модели и использовать их в своём приложении.

После выпуска nnU-Net был оценён на 23 наборах данных, принадлежащих соревнованиям из области биомедицины. Несмотря на конкуренцию с рукотворными решениями для каждого соответствующего набора данных, полностью автоматизированный конвейер nnU-Net занял несколько первых мест в открытых рейтингах лидеров! С тех пор nnU-Net выдержал испытание временем: он продолжает использоваться в качестве базовой линии и платформы для разработки методов (9 из 10 победителей конкурса MICCAI 2020 и 5 из 7 в MICCAI 2021 построили свои методы на основе nnU-Net, мы выиграли AMOS2022 с nnU-Net!).

Пожалуйста, цитируйте следующую статью, когда используете 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.

Что может сделать для вас nnU-Net?

Если вы специалист в предметной области (биолог, радиолог и т.д.) и хотите проанализировать собственные изображения, nnU-Net предоставляет готовое решение, которое почти гарантированно даст отличные результаты на вашем индивидуальном наборе данных. Просто преобразуйте свой набор данных в формат nnU-Net и наслаждайтесь силой искусственного интеллекта — никаких специальных знаний не требуется!

Если вы исследователь ИИ, разрабатывающий методы сегментации, nnU-Net:

  • предлагает фантастическое готовое к использованию базовое решение для конкуренции;
  • может служить платформой для разработки метода, чтобы протестировать ваш вклад на большом количестве наборов данных без необходимости настраивать отдельные конвейеры (например, оценивая новую функцию потерь);
  • обеспечивает прочную отправную точку для дальнейшей оптимизации набора данных. Это особенно полезно при участии в соревнованиях по сегментации;
  • предоставляет новый взгляд на разработку методов сегментации: возможно, вы сможете найти лучшие связи между свойствами набора данных и наиболее подходящими конвейерами сегментации?

В чём заключается область применения nnU-Net?

nnU-Net предназначен для семантической сегментации. Он может работать с 2D- и 3D-изображениями с произвольными модальностями/каналами ввода. Он понимает расстояния между вокселями, анизотропии и устойчив даже при сильном дисбалансе классов.

nnU-Net основан на контролируемом обучении, а это значит, что вам нужно предоставить обучающие случаи для вашего приложения. Количество необходимых обучающих примеров сильно варьируется в зависимости от сложности задачи сегментации. Здесь нельзя указать одно подходящее для всех число! nnU-Net не требует больше... Как работает nnU-Net?

nnU-Net предполагает возможность обработки целых изображений сразу во время предварительной и последующей обработки, поэтому он не может работать с огромными изображениями. В качестве примера: мы протестировали изображения размером от 40x40x40 пикселей до 1500x1500x1500 в 3D и от 40x40 до ~30000x30000 в 2D! Если ваша оперативная память позволяет, можно использовать и большие размеры.

Как работает nnU-Net?

При наличии нового набора данных nnU-Net систематически анализирует предоставленные обучающие примеры и создаёт «отпечаток пальца» набора данных. Затем для каждого набора данных создаются несколько конфигураций U-Net:

  • 2d — двумерная U-Net (для двумерных и трёхмерных наборов данных);
  • 3d_fullres — трёхмерная U-Net, работающая с высоким разрешением изображения (только для трёхмерных наборов данных);
  • 3d_lowres → 3d_cascade_fullres — каскад из трёхмерной U-Net, где первая трёхмерная U-Net работает с изображениями низкого разрешения, а вторая трёхмерная U-Net высокого разрешения уточняет предсказания первой (только для больших размеров трёхмерных наборов данных).

Затем nnU-Net настраивает эти конвейеры сегментации на основе трёхэтапного рецепта:

  1. Фиксированные параметры не адаптируются. Во время разработки nnU-Net мы определили надёжную конфигурацию (определённую архитектуру и свойства обучения), которую можно просто использовать постоянно. Это включает, например, функцию потерь nnU-Net, стратегию увеличения данных и скорость обучения.
  2. Параметры, основанные на правилах, используют отпечаток пальца набора данных для адаптации определённых свойств конвейера сегментации, следуя жёстко заданным эвристическим правилам. Например, топология сети (поведение объединения и глубина архитектуры сети) адаптируется к размеру патча; размер патча, топология сети и размер пакета оптимизируются совместно с учётом некоторого ограничения памяти графического процессора.
  3. Эмпирические параметры по сути являются методом проб и ошибок. Например, выбор наилучшей конфигурации U-net для данного набора данных (2D, 3D с полным разрешением, 3D с низким разрешением, 3D каскад) и оптимизация стратегии постобработки.

С чего начать?

Прочитайте следующие разделы:

  • Инструкции по установке (documentation/installation_instructions.md);
  • Преобразование набора данных (documentation/dataset_format.md);
  • Инструкции по использованию (documentation/how_to_use_nnunet.md).

Дополнительная информация:

  • Обучение на основе регионов (documentation/region_based_training.md);
  • Ручное разделение данных (documentation/manual_data_splits.md);
  • Предварительное обучение и точная настройка (documentation/pretraining_and_finetuning.md);
  • Нормализация интенсивности в nnU-Net (documentation/explanation_normalization.md);
  • Вручную редактирование конфигураций nnU-Net (documentation/explanation_plans_files.md);
  • Расширение nnU-Net (documentation/extending_nnunet.md);
  • Что изменилось в версии V2? (documentation/changelog.md).

Где nnU-net работает хорошо, а где нет?

nnU-Net отлично справляется с задачами сегментации, которые необходимо решать путём обучения с нуля, например: исследовательские приложения, использующие нестандартные модальности изображений и входные каналы, наборы данных из области биомедицины, большинство задач трёхмерной сегментации и т. д. Нам ещё предстоит найти набор данных, для которого принцип работы nnU-Net не сработает!

Примечание: в стандартных задачах сегментации, таких как 2D RGB-изображения в ADE20k и Cityscapes, тонкая настройка базовой модели (предварительно обученной на большом корпусе похожих изображений, например Imagenet 22k, JFT-300M) обеспечит лучшую производительность, чем nnU-Net! Это просто потому, что эти модели позволяют гораздо лучшую инициализацию. Базовые модели не поддерживаются nnU-Net, поскольку они: 1) бесполезны для задач сегментации, отклоняющихся от стандартной настройки (см. упомянутые выше наборы данных), 2) обычно поддерживают только 2D-архитектуры и 3) противоречат нашему основному принципу проектирования тщательной адаптации топологии сети для каждого набора данных (если топология изменена, больше нельзя передавать предварительно обученные веса!).

Что случилось со старым nnU-Net?

Основа старого nnU-Net была собрана вместе в... В течение короткого периода времени, участвуя в соревновании Medical Segmentation Decathlon в 2018 году, код был не самого лучшего качества. Многие функции были добавлены позже и не совсем соответствовали принципам дизайна nnU-Net. В целом, всё было довольно беспорядочно, действительно. И работать с этим было неприятно.

nnU-Net V2 — это полная переработка. «Удалите всё и начните заново». Так что всё стало лучше (по мнению автора, хаха). Хотя производительность сегментации осталась прежней, было добавлено много интересных функций. Теперь также намного проще использовать его как среду разработки и вручную настраивать конфигурацию для новых наборов данных. Большим стимулом для повторной реализации также стало появление Helmholtz Imaging, побудившее нас расширить nnU-Net для большего количества форматов изображений и областей применения. Ознакомьтесь с некоторыми основными моментами здесь.

Благодарности

nnU-Net разработан и поддерживается Лабораторией прикладного компьютерного зрения (ACVL) Helmholtz Imaging и Отделом медицинских вычислений (MIC) в Немецком центре исследования рака (DKFZ).

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/RitchieAlpha-nnUNet.git
git@api.gitlife.ru:oschina-mirror/RitchieAlpha-nnUNet.git
oschina-mirror
RitchieAlpha-nnUNet
RitchieAlpha-nnUNet
master