Для просмотра этого контента требуется подписка на JoVE. Войдите или начните свой бесплатный пробный период.

Методическая статья

Автоматизированный количественный анализ лёгочных сосудов при врождённой диафрагмальной грыже с использованием глубокого обучения

118 просмотров

DOI:

10.3791/70428

8 мая 2026 г.

В этой статье

Краткое содержание

Этот протокол описывает полностью автоматизированный конвейер глубокого обучения для сегментации и анализа лёгочных сосудов в неонатальных КТ-сканированиях. Метод позволяет количественно морфометрическую оценку сосудистого развития у врождённой диафрагмальной грыжи (CDH) и контрольных пациентов, поддерживая неинвазивную характеристику лёгочной гипоплазии и сосудистого недоразвития.

Аннотация

Врожденная диафрагмальная грыжа (CDH) характеризуется лёгочной гипоплазией и недоразвитием сосудов, что приводит к нарушению газообмена и высокой неонатальной смертности. Точная и количественная оценка лёгочных сосудов крайне важна для понимания тяжести заболевания, однако ручная сегментация трёхмерных сосудистых сетей на медицинских изображениях требует много времени и зависит от оператора.

Этот протокол представляет собой полностью автоматизированный метод на основе глубокого обучения для сегментации лёгочных сосудов и морфометрического анализа с использованием постнатальной компьютерной томографии (КТ). Конвейер включает стандартизированные этапы предварительной обработки — преобразование в единицы Хаунсфилда, окна, изотропное редискретирование и контрастно-ограниченное адаптивное гистограммное уравнивание (CLAHE) — для нормализации данных визуализации и улучшения видимости сосудов. Архитектура сверточной нейронной сети U-Net (CNN) затем обучается сегментировать лёгочную сосудистую систему, а затем трехмерный алгоритм скелетизации для количественной оценки морфометрических параметров, таких как количество ветвей, средняя длина ветви и глубина поколений.

Репрезентативные результаты показывают, что предлагаемая модель достигает высокой точности сегментации, при этом конфигурация трансферного обучения обеспечивает наилучшую производительность. Количественный морфометрический анализ показывает заметно сниженную сосудистую сложность при CDH по сравнению с контрольными лёгкими, что соответствует известным патологическим признакам лёгочной гипоплазии.

Этот автоматизированный подход позволяет воспроизводить, количественно и неинвазивно оценивать морфологию лёгочных сосудов при CDH. Метод может быть адаптирован для других методов визуализации и применён для изучения развития лёгких плода и новорождённых, что способствует трансляционным исследованиям и будущей клинической интеграции.

Введение

Врождённая диафрагмальная грыжа (CDH) — это угрожающая жизни врождённая аномалия, характеризующаяся диафрагмальной аномалией, приводящей к грыжи брюшной внутренней клеткив грудную клетку 1,2. Это физическое сжатие серьёзно нарушает развитие лёгких, что приводит к гипоплазии лёгочных и персистирующей легочной гипертензии (ППГН), которые являются основными факторами заболеваемости и смертности. Помимо легочной гипоплазии и недоразвития сосудов, напряжённое развитие сердца и желудочковая дисфункция также значительно влияют на клинические результаты новорождённых с CDH. Основная патофизиология включает аномальное развитие как дыхательных путей, так и легочно-сосудистого ложа, что приводит к уменьшению числа сосудов, увеличению мышечной колонизации артериол, а значит, и повышению сосудистогосопротивления 3,4. Для точной стратификации риска, руководства вмешательствами и мониторинга реакции на лечение у пациентов с CDH необходимы объективные и количественныебиомаркеры 5. Одним из ключевых аспектов этой оценки является детальный анализ лёгочных сосудов, который может дать представление о степени гипоплазии лёгочных и функциональной способности легких. Достижения в методах визуализации, особенно компьютерной томографии (КТ), расширили нашу способность визуализировать и количественно оценивать лёгочные сосудыв деталях 6,7.

Хотя постнатальная компьютерная томография (КТ) обеспечивает высококачественные анатомические детали лёгких, анализ сложного дерева лёгочных сосудов остаётся сложным. Существующие методы сосудистой сегментации часто опираются на традиционные методы обработки изображений, требующие значительного ручного вмешательства, подверженные артефактам изображения и могут быть неустойчивы к сильным анатомическим искажениям, характерным дляCDH 7,8,9,10. Глубокое обучение, особенно сверточные нейронные сети (CNN), такие как архитектура U-Net, добилось значительных успехов в автоматизированной сегментации медицинских изображений. Однако многие существующие модели обучаются на здоровых субъектах или других заболеваниях, что ограничивает их применимость врождёнными аномалиями, такими какCDH 10,11,12,13.

Несмотря на эти достижения, в литературе остаются значительные пробелы. Многие исследования были сосредоточены на здоровых людях или специфических заболеваниях лёгких, с ограниченным вниманием к врождённым аномалиям, таким какCDH 12. Кроме того, хотя модели глубокого обучения показали улучшенную производительность, они часто требуют больших аннотированных наборов данных для обучения, которые не всегда доступны для редких случаев, таких как CDH. Кроме того, существующие модели не полностью решили задачу различия между различными типами лёгочных сосудов (например, артерии и вены) при сильных анатомических искажениях, вызванных CDH. Это ограничение подчёркивает необходимость дальнейших исследований для разработки более надёжных моделей, способных точно сегментировать и анализировать лёгочные сосудистые органы у пациентов с CDH.

Данное исследование направлено на устранение этих пробелов путём разработки и валидации полностью автоматизированной системы глубокого обучения для сегментирования лёгочных сосудов и извлечения количественных морфометрических особенностей из КТ. Ключевым новшеством нашего подхода является обучение модели на комбинированном наборе данных CDH и контрольных пациентов, что позволяет ей получить надёжное представление как нормальных, так и патологических сосудистых паттернов. Хотя КТ-визуализация включает ионизирующее излучение, что делает его неподходящим для рутинного продольного скрининга, это исследование служит важным доказательством концепции. Основная цель данного исследования — установить, что автоматизированная радиологическая количественная оценка сосудистой структуры осуществима и способна надёжно различать пациентов с CDH от контрольных групп. Успех в этой области обеспечивает необходимую валидацию для адаптации этой количественной системы к безрадиационным методам визуализации, таким как магнитно-резонансная томография (МРТ), для будущих клинических применений.

Доступ ограничен. Войдите в систему или начните пробный период, чтобы просмотреть этот контент.

Протокол

Все процедуры, связанные с человеческими участниками, проводились в соответствии с руководящими принципами институционального комитета по этике человеческих исследований и утверждён Институциональным обзорным советом (IRB #2017-6361). Исследование проводилось в соответствии с применимыми нормативными стандартами. Данные пациентов были собраны ретроспективно и деактивированы перед анализом. Обзор разработанной системы показан на рисунке 1.

1. Предварительная обработка изображений

  1. Загрузить необработанные КТ неонатальных пациентов в формате DICOM в рабочую среду.
    1. Откройте программное обеспечение для анализа медицинских изображений и создайте новое рабочее пространство для проекта.
    2. Нажмите Файл > Импортировать > серию DICOM .
    3. Перейдите к папке с неонатальной грудной КТ в формате DICOM и выберите полную серию изображений.
    4. Проверьте, что все срезы в серии правильно обнаружены и упорядочены на основе метаданных получения (например, номер экземпляра).
    5. Подтвердите размеры изображения, расстояние между вокселями и толщину срезов в панели метаданных, чтобы обеспечить согласованность между сканами.
    6. Загрузите серию в рабочее пространство и визуально осмотрите ось, корональный и сагиттальный вид, чтобы подтвердить правильную ориентацию и отсутствие ошибок загрузки.
  2. Конвертировать файлы DICOM в формат NIfTI с помощью программного обеспечения с открытым исходным кодом для упрощения обработки и анализа.
    1. Откройте окно терминала в среде научных вычислений.
    2. Перейдите к каталогу с серией изображений DICOM с помощью команды cd.
    3. Выполните инструмент преобразования DICOM-to-NIfTI с помощью следующей командной структуры: dcm2niix -z y -f output_filename -o /output_directory /input_directory
    4. Убедитесь, что сжатие включено (-z y) для генерации сжатого .nii.gz файла.
    5. Проверьте, что выходной файл успешно сгенерирован в указанной директории вывода.
    6. Откройте конвертированный файл NIfTI в медицинском просмотрщике изображений и визуально осмотрите ось, корональную и сагиттальную плоскости, чтобы подтвердить правильную пространственную ориентацию и целостность изображения.
    7. Проверьте интервалы между вокселями и размеры изображения, чтобы обеспечить согласованность между всеми объектами до предварительной обработки.
  3. Преобразовать интенсивность изображения в единицы Хаунсфилда (HU) с использованием метаданных, специфичных для сканера, или стандартных формул.
    1. Извлекайте параметры метаданных DICOM Rescale Slope и Rescale Intercept из заголовка изображения для каждого сканирования.
    2. Для каждого значения интенсивности вокселя (I_raw) вычислите соответствующую единицу Хаунсфилда (HU) по следующей формуле: HU = (I_raw × перемасштабированного наклона) + пересечение масштаба.
    3. Применить преобразование ко всему объему 3D-изображения с помощью матричных операций по элементам в научной вычислительной среде.
    4. Подтвердите правильное преобразование, убедившись, что воздушные области примерно составляют −1000 HU, а области мягких тканей находятся в ожидаемых физиологических диапазонах.
    5. Сохраните конвертированный том как новый файл NIfTI, чтобы сохранить исходные данные.
  4. Нанесите окна, чтобы выделить лёгкие и мягкие ткани. Установить уровень окна (WL) на -400 HU, а ширину окна (WW) на 1500 HU.
    1. Откройте конвертированный файл NIfTI в программном обеспечении визуализации изображений.
    2. Перейдите к панели настроек изображения или интенсивности.
    3. Выберите опцию «Окно/регулировка уровня».
    4. Вручную установите значение уровня окна (WL ) на -400 единиц Хаунсфилда (HU).
    5. Установить значение ширины окна (WW ) на 1500 HU.
    6. Подтвердите и примените настройки для обновления визуализации изображения.
    7. Убедитесь, что паренхима лёгких и легочные сосуды чётко различимы от костных и средностных структур, прежде чем перейти к дальнейшим этапам предварительной обработки.
  5. Выполнить изотропную передискретизацию для обеспечения однородных размеров вокселей (например, 1 мм × 1 мм × 1 мм) с помощью трилинейной интерполяции.
    1. Загрузите образ NIfTI в среду Python с помощью медицинской библиотеки обработки изображений.
    2. Извлечь исходный интервал между вокселями из метаданных заголовка изображения.
    3. Определим целевое изотропное расстояние как (1,0, 1,0, 1,0) мм.
    4. Вычислите новые размерности изображения по формуле: new_size = original_size × (original_spacing / target_spacing)
    5. Инициализируйте объект пересэмплирования.
    6. Установим метод интерполяции на трилинейную интерполяцию.
    7. Назначьте расстояние между вокселями цели (1,0 мм × 1,0 мм × 1,0 мм).
    8. Задайте вычисленный новый размер изображения.
    9. Сохраняйте исходное направление изображения и метаданные происхождения.
    10. Выполните операцию пересэмплирования.
    11. Сохраните пересэмплированное изображение в формате NIfTI для последующих этапов предварительной обработки.
    12. Проверьте изотропное расстояние, проверив обновлённые размеры вокселя в заголовке изображения перед продолжением.
  6. Применяйте адаптивную гистограмму с ограничением контраста (CLAHE) для усиления контраста и улучшения видимости сосудистых структур.
    1. Импортируйте необходимую библиотеку обработки изображений в среду Python.
    2. При необходимости преобразовать пересэмплированный объем 3D-CT в 8-битный оттенок серого, используя нормализацию линейной интенсивности для отображения выбранного диапазона HU в 0–255.
    3. Обрабатывайте объём CT срез за срезом в осевой плоскости для применения CLAHE в 2D.
    4. Инициализируйте объект CLAHE с помощью следующих параметров: clipLimit = 2.0, tileGridSize = (8, 8).
    5. Для каждого осевого среза применяйте функцию CLAHE для усиления локального контраста.
    6. Реконструировать обработанные срезы обратно в 3D-объём после применения CLAHE.
    7. Оставьте громкость с усилением контраста в формате NIfTI для последующего сегментирования.
    8. Визуально убедитесь, что легочные сосуды лучше отличаются от окружающих паренхим без чрезмерного усиления шума, прежде чем продолжать.
  7. Визуально осмотрите часть предварительно обработанных изображений, чтобы обеспечить качество и согласованность по всему набору данных.
    1. Случайным образом выберите не менее 10% от общего набора данных для ручной оценки качества.
    2. Откройте каждый выбранный заранее обработанный том в просмотре медицинских изображений.
    3. Проверьте ось, корональную и сагиттальную плоскости для проверки следующего: Правильная пространственная ориентация; Отсутствие артефактов усечения; Правильное применение параметров окон; Успешное изотропное ресемплирование (равномерное расстояние между вокселями); Достаточное усиление контраста после CLAHE.
    4. Подтвердите, что легочные сосуды чётко отличаются от соседних паренхимальных структур без чрезмерного усиления шума.
    5. Сравните предобработанные изображения с оригинальными объёмами, преобразованными в HU, чтобы убедиться, что этапы предварительной обработки не привели к искажениям или анатомическим несоответствиям.
    6. Документируйте любые ошибки предварительной обработки и повторяйте предобработку для затронутых случаев, если это необходимо.

2. Ручная аннотация

  1. Выберите представительную подгруппу КТ как у контрольных, так и у CDH пациентов для ручного аннотирования. Обеспечьте сбалансированное распределение анатомической вариабельности.
    1. Определите все подходящие предварительно обработанные КТ как из контрольных, так и из CDH когорт.
    2. Исключайте сканирование с серьёзными артефактами движения или неполным покрытием лёгких.
    3. Случайным образом выбирайте заранее определённое количество случаев из каждой группы для обеспечения сбалансированного представления.
    4. Обеспечьте включение случаев, демонстрирующих различные анатомические различия, включая различия в объёме лёгких, плотности сосудов и степени смещения медиастинального сдвига.
    5. Подтвердите, что отдельные случаи CDH представляют разную степень лёгочной гипоплазии, если это возможно.
    6. Задокументируйте выбранные идентификаторы падежа перед ручной аннотацией.
  2. Загрузите предварительно обработанные изображения NIfTI в 3D-инструмент для аннотирования медицинских изображений.
    1. Откройте программу для 3D-аннотации медицинских изображений.
    2. Создайте новый проект или сессию сегментации.
    3. Нажмите «Файл > открыть изображение» (или аналогичную опцию импорта).
    4. Перейдите в каталог с предварительно обработанным файлом NIfTI (.nii или .nii.gz) и выберите изображение.
    5. Подтвердите успешную загрузку, проверив правильную ориентацию изображения в осьом, корональном и сагиттальном видах.
    6. При необходимости настройте настройки дисплея для оптимизации визуализации.
    7. Создайте новую сегментационную метку или слой маски для хранения ручных сосудистых аннотаций.
    8. Сохраните файл проекта перед началом ручной аннотаций.
  3. Используя аксиальные, корональные и сагиттальные виды, вручную сегментируйте лёгочную сосудистую систему, обводя сосудистые структуры в каждом соответствующем срезе.
    1. Активируйте слой сегментационных меток, созданный на шаге 2.2.
    2. Выберите ручной инструмент рисования или кисти в программе аннотаций.
    3. Динамически регулируйте размер щётки в зависимости от диаметра сосуда, чтобы обеспечить точное обводление границ.
    4. Используя аксиальные срезы в качестве основной опорной плоскости, вручную обведите видимые легочно-сосудистые структуры, включая артериальные и венозные ветви.
    5. Исключайте несосудистые структуры, такие как бронхи, стенки дыхательных путей и ткани срединного образования.
    6. Прокручивайте по всему объёму лёгких, чтобы обеспечить непрерывное аннотирование каждой сосудистой ветви.
    7. Проверьте каждую аннотированную область в корональных и сагиттальных видах, чтобы подтвердить анатомическую согласованность и избежать разрывов.
    8. Включайте сосуды до самых маленьких визуально различимых ветвей, избегая чрезмерной сегментации шумовых артефактов.
    9. Периодически рендерить 3D-предпросмотр сегментации для проверки пространственной непрерывности сосудистого дерева.
    10. Сохраните готовую маску сегментации в формате NIfTI перед переходом к обучению модели.
  4. Аннотируйте только легочные сосуды, за исключением сердца, бронхов и основных нелегочных структур.
    1. Определите легочные артерии и вены в паренхиме лёгких, используя аксиальные срезы в качестве основного ориентира.
    2. Включают интрапаренхимальные сосудистые ветви, начинающиеся от основных легочных артерий и простирающиеся дистально внутри лёгких полей.
    3. Исключайте сердечные камеры, предсердия, желудочки и большие сосуды.
    4. Исключать структуры дыхательных путей, включая бронхи и бронхиальные стенки, отличая их от сосудов по морфологии и световым характеристикам.
    5. Избегайте маркировки мягких тканей медиастиналы, плевры и структур грудной стенки.
    6. Используйте мультипланарные виды (аксиальные, корональные, сагиттальные), чтобы подтвердить, что аннотированные структуры следуют ожидаемой сосудистой непрерывности и паттернам ветвления.
    7. Если дифференцировка сосудов и дыхательных путей неясна, проверяйте непрерывность по соседним срезам для подтверждения траектории сосудистых срезов перед маркировкой.
    8. Выполните финальный 3D-рендеринг сегментированного объёма, чтобы убедиться, что включено только дерево лёгочных сосудистых систем.
  5. Если есть возможность, обратитесь к специалистам по клинической визуализации для проверки неоднозначных областей при аннотации.
    1. Определите области, в которых границы сосудов неясны из-за низкого контраста, анатомических искажений или близости к бронхам или структурам медиастина.
    2. Помечайте эти области в программном обеспечении для аннотаций с помощью временной метки или инструмента для комментариев.
    3. Покажите отмеченные участки специалисту по визуализации.
    4. Изучите аксиальные, корональные и сагиттальные виды вместе, чтобы определить, соответствует ли структура легочной сосудистой системе.
    5. Модифицировать маску сегментации на основе консенсуса экспертов.
    6. Задокументируйте все исправленные области перед окончательной формулировкой маски правды.
  6. Проведите межоценочную валидацию, поручив как минимум двум независимым аннотаторам проверить и уточнить каждую сегментацию. В случае разногласий достигайте консенсуса через обсуждение или арбитраж.
    1. Назначить каждое выбранное КТ двум независимым аннотаторам с опытом в области торакального анализа визуализации.
    2. Убедитесь, что аннотаторы выполняют сегментацию независимо и не замечают результатов друг друга.
    3. После завершения независимых аннотаций сравните сегментационные маски с помощью количественной метрики перекрытия (например, коэффициента сходства кубиков).
    4. Определите области разногласий, вычисляя воксельные различия между масками.
    5. Рассмотрите несоответствующие области совместно в осевой, корональной и сагиттальной плоскостях.
    6. Достигайте консенсуса через структурированное обсуждение.
    7. Если разногласия сохраняются, привлечь третьего старшего рецензента для принятия окончательного решения.
    8. Оставьте маску сегментации консенсуса как окончательную метку на основе для обучения моделей.
  7. Сохраняйте аннотированные маски сосудов в том же разрешении и пространстве, что и оригинальные КТ-изображения. Храните их в формате NIfTI с использованием согласованных наименований.
    1. Убедитесь, что финальная маска сегментации консенсуса хранится в виде бинарной карты меток, где сосудистым вокселям присваивается значение 1, а фоновым вокселям — 0.
    2. Убедитесь, что маска сегментации сохраняет те же интервалы между вокселями, размеры изображения, матрицу начала и ориентации, что и соответствующее предварительно обработанное КТ-изображение.
    3. Экспортируйте сегментационную маску в формате NIfTI (.nii или .nii.gz) с помощью функции экспорта программы аннотаций.
    4. Используйте согласованную систему именования, структурированную следующим образом: SubjectID_Group_VesselMask.nii.gz; (например, CDH_012_VesselMask.nii.gz).
    5. Храните маски в выделенной директории, параллельной набору данных изображения, чтобы сохранить согласованность пар.
    6. Проведите окончательную проверку, перезагрузив как КТ-изображение, так и соответствующую маску для подтверждения идеального пространственного выравнивания перед обучением модели.
  8. Используйте эти вручную маркированные сегментации как основную истину для обучения и оценки моделей.

3. Обучение и валидация моделей

  1. Организуйте набор данных на три подмножества: обучающий, валидационный и тестовый. В этом исследовании используйте 35 контрольных случаев и 20 случаев CDH для обучения, 5 контрольных и 10 случаев CDH для валидации, а остальные — для независимого тестирования.
    1. Скомпилировать все предварительно обработанные КТ-изображения и соответствующие им маски консенсусных сосудов в единый набор данных.
    2. Выполняйте разделение наборов данных на уровне пациента, чтобы предотвратить утечку данных между подмножествами.
    3. Случайным образом назначьте 35 контрольных случаев и 20 CDH в обучающий набор.
    4. Случайным образом назначьте 5 контрольных случаев и 10 CDH в валидационный набор.
    5. Назначить все оставшиеся случаи в независимый тестовый набор, который не используется во время обучения модели или настройки гиперпараметров.
    6. Убедитесь, что каждое КТ-изображение и соответствующая маска сегментации остаются парными на протяжении всего процесса разделения.
    7. Проверьте распределение классов в каждом подмножестве для сохранения представления как контрольных, так и CDH-случаев.
    8. Документируйте окончательное распределение идентификаторов субъекта для воспроизводимости.
  2. Нормализуйте значения интенсивности всех изображений от 0 до 1 для улучшения сходимости нейронных сетей во время обучения.
    1. Для каждого объема CT сначала ограничите значения интенсивности заранее определённым диапазоном единицы Хаунсфилда, чтобы устранить экстремальные выбросы.
    2. Применим интенсивность клиппинга так, чтобы значения ниже −1000 HU были установлены на −1000 HU, а значения выше 500 HU — на 500 HU.
    3. Выполняйте нормализацию min–max независимо для каждого объёма, используя следующее преобразование: Нормированное значение = (I − I_min) / (I_max − I_min), где I_min и I_max соответствуют обрезанным минимальным и максимальным значениям интенсивности объёма.
    4. Применить нормализацию к всему 3D-объему с помощью элементных операций в вычислительной среде.
    5. Проверьте, что все воксельные интенсивности находятся в интервале [0, 1], прежде чем вводить данные в нейронную сеть.
    6. Убедитесь, что параметры нормализации выводятся независимо для каждого изображения, чтобы предотвратить утечку информации между наборами обучения, валидации и тестирования.
  3. Реализовать архитектуру сверточных нейронных сетей U-Net с использованием фреймворка глубокого обучения, такого как PyTorch или TensorFlow.
    1. Создайте новый проект в среде глубокого обучения и установите фиксированный случайный сид для воспроизводимости.
    2. Определите архитектуру 2D U-Net (рисунок 2) для бинарной сегментации с использованием структуры энкодер-декодера и пропускающих соединений.
    3. Установить вход модели как одноканальные КТ-срезы (в оттенках серого), а вывод модели — как одноканальную карту вероятности, отражающую вероятность судна.
    4. Настройте последний слой так, чтобы использовать сигмоидную активационную функцию для получения значений в диапазоне [0, 1].
    5. Определите функцию потерь для бинарной сегментации (например, бинарную кросс-энтропию) и инициализуйте оптимизатор.
    6. Определить обучающие гиперпараметры, включая размер пакета, количество эпох и скорость обучения, и записать эти значения для отчетности.
    7. Подготовьте загрузчики данных для подачи обучающих и валидационных наборов данных в модель с последовательным перемешиванием и пакетированием.
    8. Сохраните полное определение модели и конфигурацию гиперпараметров для воспроизводимости.
  4. Настройте модель с помощью структуры энкодер-декодер, включая пропускные соединения и слои пакетной нормализации для повышения точности сегментации.
    1. Определим энкодер, состоящий из повторяющихся сверточных блоков. Убедитесь, что каждый блок включает:
      Два последовательных двумерных слоя свёртки (размер ядра 3 × 3, дополнение = 1)
      После каждой свёртки применяется пакетная нормализация
      Активация Ректифицированной линейной единицы (ReLU)
    2. Применяйте максимальное пулирование 2 × 2 с шагом 2 после каждого блока энкодера, чтобы постепенно снижать пространственное разрешение.
    3. Удвойте количество функциональных каналов после каждого этапа понижения дискретизации.
    4. Определите декодер с использованием транспонированной свёртки (ядро 2 × 2, шаг 2) для апсэмплинга.
    5. Конкатенируйте отображения признаков с соответствующего слоя энкодера на слой декодера с помощью пропускных соединений для сохранения пространственной информации.
    6. После каждого этапа конкатенации применяйте два сверточных слоя с пакетной нормализацией и активацией ReLU.
    7. Используйте последний слой свёртки 1 × 1 для сопоставления признаков на одноканальный выход.
    8. Применим сигмоидную активационную функцию для создания воксельно-по-по-вероятной карты сегментации сосудов.
  5. Обучите три конфигурации модели:
    1. Базовая модель (обучение с нуля)
      1. Инициализируйте U-чистые веса случайным образом (например, инициализация He).
      2. Используйте только ручно аннотированный набор данных по артерии-венам в качестве входа.
      3. Уменьшите размер входных изображений до 512 × 512 пикселей.
      4. Нормализуйте значения интенсивности до диапазона [0,1].
      5. Установите размер пакета на 8 (или максимум, разрешённый памятью GPU).
      6. Используйте оптимизатор Адама с скоростью обучения = 1 × 10⁻4.
      7. Используйте бинарную перекрестную энтропию (для бинарной сегментации) или потерю перекрёстной энтропии (для классификации артерии и вен).
      8. Тренируйтесь 30 эпох.
      9. Отслеживайте потерю валидации после каждой эпохи.
      10. Сохраняйте веса модели, соответствующие наименьшим потерям валидации.
      11. В PyTorch следуйте шагам 3.5.1.13–3.5.1.14.
      12. Определите оптимизатор: torch.optim.Adam(model.parameters(), lr=1e-4)
      13. Определите потерю: torch.nn.BCEWithLogitsLoss() или torch.nn.CrossEntropyLoss()
      14. Используйте model.train() во время обучения и model.eval() во время валидации.
    2. Модель сегментационного входа (вход маски вспомогательного сосуда)
      1. Модифицируйте входной слой так, чтобы он принимал два канала:
        Канал 1: КТ-изображение
        Канал 2: Маска сегментации двойного сосуда
      2. Соедините КТ-изображение и маску сосуда вдоль измерения канала перед подачей их в сеть.
      3. Сохраняйте архитектуру идентичной базовой модели.
      4. Используйте тот же оптимизатор, скорость обучения, размер пакета и количество эпохи, что и в шаге 3.5.1.
      5. Сохраняйте лучшие веса на основе валидационного результата F1.
    3. Модель трансферного обучения (предварительно обученная инициализация)
      1. Загрузка предобученных U-net весов, обученных на общем наборе данных по сегментации сосудов (как описано в отчёте о прогрессе).
      2. Заморозить слои энкодера для первых 5 эпох (опциональный этап стабилизации).
      3. Разморозьте все слои и продолжайте тонкую настройку для оставшихся эпох.
      4. Используйте пониженную скорость обучения = 5 × 10⁻5 во время тонкой настройки.
      5. Тренируйтесь в общей сложности 30 эпох.
      6. Применяйте горизонтальное переворачивание как дополнение данных во время тренировки.
      7. Сохраняйте модель с самым высоким результатом валидации F1.
  6. Используйте бинарную потерю перекрестной энтропии и оптимизатор Адама с начальной скоростью обучения 0,001. Снизить скорость обучения адаптивно, если потеря валидации достигла плато.
    1. Определение функции потерь
      1. Для сегментации бинарных сосудов используйте потерю бинарной перекрестной энтропии с логитами.
      2. В PyTorch определите: criterion = torch.nn.BCEWithLogitsLoss()
      3. При многоклассовой классификации артерия-вена используйте критерий = torch.nn.CrossEntropyLoss()
    2. Определение оптимизатора
      1. Используйте оптимизатор Adam с начальной скоростью обучения 0,001.
      2. В PyTorch: optimizer = torch.optim.Adam(model.parameters(), lr=0.001)
    3. Обеспечение снижения скорости адаптивного обучения
      1. Внедрить планировщик скорости обучения, чтобы снизить скорость обучения, когда потеря валидации перестаёт улучшаться.
      2. Используйте планировщик ReduceLROnPlateau.
      3. В PyTorch: планировщик = torch.optim.lr_scheduler. ReduceLROnPlateau(
        оптимизатор,
        mode='min',
        множитель=0,5,
        терпение=5,
        verbbose=True
        )
      4. После каждой фазы валидации вызовите: scheduler.step(validation_loss)
    4. Конфигурация тренировочного цикла.
      1. Для каждой эпохи следуйте шагам 3.6.4.2–3.6.4.7:
      2. Установите модель в режим обучения: model.train()
      3. Выполните пас вперёд.
      4. Вычислите потери.
      5. Backpropagate: loss.backward()
      6. Обновление весов: optimizer.step()
      7. Ноль градиентов перед следующей итерацией: optimizer.zero_grad()
      8. После этапа обучения переключайтесь в режим оценки с помощью model.eval() и вычисляйте потери валидации.
    5. Ранняя остановка (необязательно, но рекомендуется)
      1. Если потеря валидации не улучшается в течение 10 последовательных эпох, прекратите тренировки, чтобы избежать перенастройки.
  7. Применяйте методы увеличения данных, такие как случайные вращения, перевороты и упругие деформации, чтобы повысить прочность и уменьшить перенагон.
    1. Определение конвейера аугментации
      1. Применяйте улучшения только к учебному набору данных.
      2. Применить идентичные пространственные преобразования как к КТ-изображению, так и к соответствующей маске сегментации.
    2. Случайные вращения.
      1. Применяйте случайные вращения в плоскости между -15° и +15°.
      2. В PyTorch (с использованием torchvision или Albumentations): RandomRotation(degrees=15)
    3. Горизонтальные и вертикальные сальто.
      1. Применим горизонтальное переворот с вероятностью p = 0.5.
      2. Примените вертикальный переворот с вероятностью p = 0,5 (если анатомически приемлемо).
    4. Упругая деформация.
      1. Примените упругое преобразование для имитации анатомической вариабельности.
      2. Используйте небольшие параметры деформации, чтобы избежать нереалистичных искажений.
    5. Пример реализации (PyTorch + Albumentations)
      1. Определите конвейер трансформации до обучения:
        transform = A.Compose([
        A.Rotate(limit=15, p=0.5),
        A.HorizontalFlip(p=0.5),
        A.ElasticTransform(alpha=1, sigma=50, alpha_affine=10, p=0.3)
        ])
      2. Примените трансформацию внутри метода __getitem__() набора данных, чтобы обеспечить синхронизированное преобразование изображения и маски.
    6. Наборы валидации и тестирования
      1. Не применяйте дополнение к валидационным или тестовым наборам данных.
      2. Используйте только нормализацию и изменение размера для этих наборов.
    7. Контроль качества.
      1. Визуально осматривайте дополненные образцы перед тренировкой, чтобы убедиться в анатомической правдоподобности.
      2. Проверьте, что маски остаются выровнены с преобразованными изображениями.
  8. Обучайте модель для фиксированного количества эпох или до сходимости, отслеживая производительность на валидационном наборе после каждой эпохи.
    1. Определение длительности тренировок
      1. Установите максимальное количество тренировочных эпох на 30.
      2. Альтернативно, продолжайте обучение до тех пор, пока не будут выполнены критерии сходимости (см. раздел «Раннее прекращение» ниже).
    2. Тренировочный цикл
      1. Для каждой эпохи следуйте шагам 3.8.2.2–3.8.2.10:
      2. Установите модель в режим обучения: model.train()
      3. Повторяйте все мини-партии в тренировочном наборе.
      4. Загрузите партию КТ-изображений и соответствующие маски.
      5. Выполните пас вперёд.
      6. Вычислите потери с помощью определённой функции потерь.
      7. Градиенты обратного распространения: loss.backward()
      8. Обновить веса модели: optimizer.step()
      9. Градиенты сброса перед следующей партией: optimizer.zero_grad()
      10. Вычислите средние потери в тренировках для эпохи.
    3. Шаг валидации (после каждой эпохи)
      1. Переключить модель в режим оценки: model.eval()
      2. Отключить градиентные вычисления: с помощью torch.no_grad():
      3. Повторяйте валидационный набор данных.
      4. Выполните пас вперёд.
      5. Вычислить потери валидации.
      6. Показатели производительности вычислений (оценка F1, точность, чувствительность, оценка DICE).
      7. Фиксируйте потери валидации и метрики.
    4. Корректировка скорости обучения
      1. Обновить планировщик после этапа валидации: scheduler.step(validation_loss)
    5. Критерии сходимости
      1. Прекратите тренировки, если потеря валидации не улучшается в течение 10 последовательных эпох (ранняя остановка) или если показатели производительности достигнут плато.
    6. Контрольная точка моделей
      1. Сохраняйте веса модели, когда результат валидации F1 улучшается.
      2. Сохраняйте модель с наилучшей производительностью для окончательной оценки на тестовом наборе.
    7. Лесозаготовка
      1. Стоимость потерь в обучении и валидации по эпохе.
      2. Постройте кривые обучения (потеря против эпохи) для проверки поведения сходимости.
  9. Выберите модель с наилучшей производительностью на основе наивысшего результата F1 в валидационном наборе данных.
    1. Отслеживание метрик валидации
      1. После каждой эпохи вычисляйте результат F1 в валидационном наборе данных.
      2. Храните результат F1 вместе с соответствующим номером эпохи.
    2. Сравнение моделей
      1. Сравните результаты валидации F1 по всем эпохам.
      2. Определите эпоху, которая достигла наивысшего валидационного результата F1.
    3. Контрольная точка моделей
      1. Во время тренировки экономьте веса моделей при улучшении результата валидации F1.
    4. Окончательный выбор модели
      1. После завершения обучения загрузите веса, соответствующие наивысшему валидационному баллу F1:
        model.load_state_dict(факелная загрузка("best_model.pth"))
    5. Независимое тестирование
      1. Оценить выбранную модель только один раз в независимом тестовом наборе данных.
      2. Не используйте производительность тестового набора для выбора модели.
    6. Воспроизводимость
      1. Запишите выбранный номер эпохи и соответствующие метрики валидации.
      2. Исправьте случайный сид для обеспечения воспроизводимости.
  10. Сохраняйте обученные веса и конфигурации моделей для задач сегментации на последующих этапах.

4. Сегментация и скелетизация

  1. Загрузите обученную модель U-Net и примените её к предварительно обработанным КТ-сканам в независимом тестовом наборе.
  2. Для каждого сканирования генерируйте бинарную сегментационную маску лёгочной сосудистой системы, применяя порог к вероятностному выходу модели.
  3. Визуально осмотрите результаты сегментации для подтверждения анатомической правдоподобности, особенно в областях, поражённых искажениями, вызванными CDH.
  4. Преобразуйте сегментированные 3D-бинарные маски в скелетизированные представления с помощью 3D-алгоритма истончения, реализованного в программном обеспечении.
  5. Маркировать сосудистый скелет с помощью алгоритма поиска по ширине, обозначая ствол лёгочных как корневой узел и назначая уровни генерации каждой ветви на основе связности.
  6. Удаляйте мелкие, отключённые компоненты или ложные ветви, которые, вероятно, вызваны шумом или ошибками сегментации, используя минимальный порог размера вокселей или длины ветвей.
  7. Сохраняйте скелетизированные структуры в форматах 3D-сетки или совместимых с графами (например, VTK или SWC) для дальнейшего морфометрического анализа.

5. Морфометрическое извлечение признаков

  1. Загрузите скелетизированные сосудистые графики, полученные из сегментированных КТ-изображений.
  2. Определите все отдельные ветви, пройдя по структуре графа между точками бифуркации и конечными узлами.
  3. Вычислите общее количество ветвей, суммируя все идентифицированные сегменты в сосудистом графе.
  4. Вычислите длину каждой ветви, суммируя евклидовые расстояния между связными вокселями вдоль скелета.
  5. Определите среднюю длину ветви, усредняя длину всех ветвей в скелете каждого испытуемого.
  6. Назначьте уровни генерации каждой ветви, начиная с главной легочной артерии как поколение 0 и увеличиваясь на один при каждой бифуркации, используя ширину сначала обход.
  7. Вычислите максимальное количество дистальных поколений, определив самый длинный путь от корневого узла до любой концевой ветви.
  8. Вычислите максимальное количество проксимальных поколений, определив самый длинный путь от любой периферийной ветви обратно к корню.
  9. Храните все морфометрические признаки в структурированной таблице или базе данных (например, CSV или SQL) с идентификаторами субъекта, группой диагнозов и извлечёнными метриками.
  10. Визуально осмотрите подмножество скелетных графов и соответствующие морфометрические признаки для подтверждения точности и биологической правдоподобности.

6. Классификационный анализ

  1. Импортировать структурированный набор данных, содержащий морфометрические признаки (например, общее количество ветвей, средняя длина ветви, дистальная и проксимальная глубина генерации) и соответствующие диагностические метки (CDH или контроль).
  2. Разделите набор данных на обучающие и тестовые наборы с использованием стратифицированной выборки для поддержания распределения классов.
  3. Реализовать классификаторы случайного леса и дерева принятия решений с использованием стандартной библиотеки машинного обучения.
  4. Настройте параметры модели, такие как количество оценщиков (например, 100 деревьев для Random Forest) и максимальную глубину на основе эффективности перекрёстной валидации.
  5. Обучайте каждый классификатор с помощью обучающего подмножества данных.
  6. Оценивайте результаты классификации на тестовом наборе с использованием точности в качестве основного показателя.
  7. Создайте матрицы путаницы для оценки показателей истинно положительных, истинно отрицательных, ложноположительных и ложноотрицательных показателей обнаружения CDH.
  8. Сравните производительность классификаторов случайного леса и дерева принятия решений и выберите модель с наибольшей точностью для представления репрезентативных результатов.
  9. Визуализируйте результаты классификации с помощью столбчатых диаграмм, кривых ROC или деревьев решений, если применимо, и сохраняйте результаты для включения в рисунки.
  10. Документируйте все параметры модели, метрики производительности и предварительную обработку, применённую к данным, чтобы обеспечить воспроизводимость.

Доступ ограничен. Войдите в систему или начните пробный период, чтобы просмотреть этот контент.

Результаты

Модель глубокого обучения, обученная с использованием трансферного обучения, достигла наивысших результатов сегментации среди всех конфигураций с точностью 0,714, чувствительностью 0,706 и результатом F1 0,672 на независимом тестовом наборе. Базовая модель, обучаемая с нуля, показала снижение производительности (точность: 0,703, чувствительность: 0,589, оценка F1: 0,551), тогда как модель сегментационного ввода показала умеренные результаты (оценка F1: 0,630).

Доступ ограничен. Войдите в систему или начните пробный период, чтобы просмотреть этот контент.

Обсуждение

Несколько этапов этого протокола критически важны для достижения точных и воспроизводимых результатов. Этап предварительной обработки изображений должен быть тщательно выполнен, особенно преобразование в единицы Хаунсфилда и применение оконного использования (WL = -400 HU, WW = 1500 HU), поскольку эти параметры определяют видимость сосудистыхструктур 14,15,16,17.

Доступ ограничен. Войдите в систему или начните пробный период, чтобы просмотреть этот контент.

Раскрытие информации

У авторов нет финансовых раскрытий, чтобы декларировать.

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

Эмрах Айдын получил поддержку от Научно-технологического исследовательского совета Турции (TÜBİTAK) 2219 Международной программы постдокторских исследовательских стипендий для граждан Турции (1059B191501313). Аслыгюль Аксан и Мустафа Экрем Эркан получили поддержку от Научно-технологического исследовательского совета Турции (TÜBİTAK) 2209-A — программы поддержки исследовательских проектов для студентов бакалавриата.

Доступ ограничен. Войдите в систему или начните пробный период, чтобы просмотреть этот контент.

Материалы

Список материалов, использованных в этой статье
ИмяКомпанияКаталожный номерКомментарии
Анализировать 12.0AnalyzeDirecthttps://analyzedirect.com/Используется для обзора, редактирования и измерений изображений в КТ
Данные КТ (постнатальное торакальное сканирование)Институциональный архивН/ДРетроспективный набор данных CDH и контрольных новорожденных
dcm2niixОткрытый исходный код (GitHub)https://github.com/rordenlab/dcm2niixПреобразование DICOM в формат NIfTI
ITK-SNAPОткрытый исходный код (http://www.itksnap.org)http://www.itksnap.org3D-инструмент аннотирования медицинских изображений
NetworkXОткрытый исходный кодhttps://networkx.orgИспользуется для анализа сосудистых деревьев на основе графов
OpenCV (функция CLAHE)Открытый исходный кодhttps://opencv.orgИспользуется для усиления контраста изображения
Пандас, НампиОткрытый исходный кодhttps://pandas.pydata.org, https://numpy.orgУправление данными и численные операции
Python 3.8+Фонд программного обеспечения Pythonhttps://www.python.orgЯзык программирования для анализа и разработки моделей
PyTorch 1.13+Meta AIhttps://pytorch.orgФреймворк глубокого обучения для реализации U-Net
Scikit-imageОткрытый исходный кодhttps://scikit-image.orgБиблиотека обработки изображений, используемая для скелетонизации
Scikit-learnОткрытый исходный кодhttps://scikit-learn.orgБиблиотека машинного обучения для классификации
Ubuntu 20.04 LTSКаноническийhttps://ubuntu.comОперационная система, используемая во всех процессах обработки
Рабочая станция с видеокартой NVIDIA RTX 3090NVIDIAhttps://www.nvidia.comТребуется для обучения моделей глубокого обучения

Ссылки

  1. Keijzer, R., et al. Dual-hit hypothesis explains pulmonary hypoplasia in the nitrofen model of congenital diaphragmatic hernia. Am J Pathol. 156 (4), 1299-1306 (2000).
  2. Aydin, E., et al. The survivorship bias in congenital diaphragmatic hernia. Children. 9 (2), 218(2022).
  3. Harting, M. T. Congenital diaphragmatic hernia-associated pulmonary hypertension. Semin Pediatr Surg. 26 (3), 147-153 (2017).
  4. Kool, H., et al. Pulmonary vascular development goes awry in congenital lung abnormalities. Birth Defects Res C Embryo Today. 102 (4), 343-358 (2014).
  5. Leeuwen, L., Fitzgerald, D. A. Congenital diaphragmatic hernia. J Paediatr Child Health. 50 (9), 667-673 (2014).
  6. Aydin, E., et al. Optimization of pulmonary vasculature tridimensional phenotyping in the rat fetus. Sci Rep. 9 (1), 1244(2019).
  7. Aydin, E., et al. Pulmonary vasculature development in congenital diaphragmatic hernia: a novel automated quantitative imaging analysis. Pediatr Surg Int. 40 (1), 1244(2024).
  8. Memon, N. A., Mirza, A. M., Gilani, S. A. M. Segmentation of lungs from CT scan images for early diagnosis of lung cancer. World Acad Sci Eng Technol. 20, 1050-1055 (2008).
  9. Fetita, C., Brillet, P. Y., Preteux, F. J. Morpho-geometrical approach for 3D segmentation of pulmonary vascular tree in multi-slice CT. Proceedings of SPIE - The International Society for Optical Engineering. , (2009).
  10. Orkisz, M., et al. Segmentation of the pulmonary vascular trees in 3D CT images using variational region-growing. IRBM. 35 (1), 11-19 (2014).
  11. Fabijanska, A. Segmentation of pulmonary vascular tree from 3D CT thorax scans. Biocybern Biomed Eng. 35 (2), 106-119 (2015).
  12. Zhai, Z., Staring, M., Stoel, B. C. Lung vessel segmentation in CT images using graph-cuts. , SPIE Medical Imaging. San Diego, California, United States. (2016).
  13. Khanna, A., Londhe, N. D., Gupta, S. Detection of pulmonary vessels in 3D lung CT using improved graph cut. 2018 5th International Conference on Signal Processing and Integrated Networks (SPIN), Noida, India, , (1109).
  14. DenOtter, T. D., Schubert, J. Hounsfield Unit. , StatPearls Publishing. Treasure Island, FL. (2023).
  15. Detection and classification of brain hemorrhage based on Hounsfield values and convolution neural network technique. Phan, A. C., Nguyen, T. M. N., Phan, T. C. 2019 IEEE-RIVF International Conference on Computing and Communication Technologies (RIVF), Danang, Vietnam, , (2019).
  16. Xue, Z., et al. Window classification of brain CT images in biomedical articles. AMIA Annu Symp Proc. 2012, 1023-1029 (2012).
  17. Contrast-limited adaptive histogram equalization: speed and effectiveness. Pizer, S. M., et al. Proceedings of the First Conference on Visualization in Biomedical Computing, Atlanta, GA, USA, , (1990).
  18. Moccia, S., De Momi, E., El Hadji, S., Mattos, L. S. Blood vessel segmentation algorithms – Review of methods, datasets and evaluation metrics. Comput Methods Programs Biomed. 158, 71-91 (2018).

Доступ ограничен. Войдите в систему или начните пробный период, чтобы просмотреть этот контент.

Перепечатки и разрешения

Теги

U Net
Видео скоро будет доступно