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

OSCHINA-MIRROR/RitchieAlpha-nnUNet

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

Нормализация интенсивности в nnU-Net

Тип нормализации интенсивности, применяемый в nnU-Net, можно контролировать через запись channel_names (ранее modalities) в файле dataset.json. Как и в старом nnU-Net, поддерживается z-оценка для каждого канала, а также z-оценка всего набора данных на основе интенсивностей переднего плана. Однако было сделано несколько дополнений.

Напоминание: запись channel_names, как правило, выглядит следующим образом:

"channel_names": {
    "0": "T2",
    "1": "ADC"
},

Она содержит столько записей, сколько входных каналов у данного набора данных.

Скажем по секрету, nnU-Net не особо заботится о том, как называются ваши каналы. Мы просто используем это, чтобы определить, какая схема нормализации будет использоваться для данного набора данных. nnU-Net требует, чтобы вы указали стратегию нормализации для каждого из ваших входных каналов! Если вы введёте название канала, которого нет в следующем списке, будет использована стандартная (zscore).

Вот список доступных схем нормализации:

  • CT: Выполнить нормализацию CT. В частности, собрать значения интенсивности из классов переднего плана (все, кроме фона и игнорирования) из всех обучающих случаев, вычислить среднее значение, стандартное отклонение, а также 0,5 и 99,5 процентиль значений. Затем обрезать до процентилей, после чего вычесть среднее значение и разделить на стандартное отклонение. Применяемая нормализация одинакова для каждого обучающего случая (для этого входного канала). Значения, используемые nnU-Net для нормализации, хранятся в записи foreground_intensity_properties_per_channel в соответствующем файле планов. Эта нормализация подходит для модальностей, представляющих физические величины, такие как изображения КТ и карты ADC.
  • noNorm: не выполнять нормализацию вообще.
  • rescale_to_0_1: масштабировать интенсивности до [0, 1].
  • rgb_to_0_1: предполагает входные данные uint8. Делится на 255, чтобы масштабировать uint8 до [0, 1].
  • zscore/что-либо ещё: выполнить z-оценку (вычесть среднее и стандартное отклонение) отдельно для каждого тренировочного случая.

Важно: По умолчанию в nnU-Net выполняется нормализация «CT» для изображений КТ и «zscore» для всего остального! Если вы отклоняетесь от этого пути, обязательно проверьте, действительно ли это улучшает результаты!

Как реализовать пользовательские стратегии нормализации?

  • Перейдите в nnunetv2/preprocessing/normalization.
  • Реализуйте новый класс нормализации изображения, производный от ImageNormalization.
  • Зарегистрируйте его в nnunetv2/preprocessing/normalization/map_channel_name_to_normalization.py:channel_name_to_normalization_mapping. Здесь вы указываете название канала, которое должно быть с ним связано.
  • Используйте его, указав правильное channel_name.

Нормализацию можно применять только к одному каналу за раз. В настоящее время нет способа реализовать схему нормализации, которая получает несколько каналов в качестве входных данных для совместного использования!

Опубликовать ( 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