Повышение точности сегментации с помощью ряда вложенных, плотных путей пропуска
В этой статье мы рассмотрим UNet ++: вложенная архитектура U-Net для сегментации медицинских изображений, написанная Чжоу и др. из Университета штата Аризона. Эта статья является продолжением статьи о U-Net, в которой мы будем сравнивать UNet ++ с оригинальной U-Net, написанной Роннебергером и др.
UNet ++ нацелен на повышение точности сегментации за счет включения плотных блоков и слоев свертки между кодером и декодером.
Точность сегментации критически важна для медицинских изображений, поскольку незначительные ошибки сегментации могут привести к ненадежным результатам; таким образом будет отклонен для клинических условий.
Алгоритмы, разработанные для медицинской визуализации, должны обеспечивать высокую производительность и точность, несмотря на меньшее количество выборок данных. Получение этих образцов изображений для обучения модели может быть ресурсоемким процессом, так как требует высококачественных несжатых и точно аннотированных изображений, проверенных профессионалами.
Что нового в UNet ++?
Ниже приведена иллюстрация архитектуры UNet ++ и U-Net.
UNet ++ имеет 3 дополнения к исходной U-Net:
- переработанные пути пропуска (показаны зеленым)
- плотные пропускные соединения (показаны синим цветом)
- глубокий надзор (показан красным)
Обновленные пути пропуска
В UNet ++ были добавлены переработанные пути пропуска (показаны зеленым) для преодоления семантического разрыва между подпутьями кодера и декодера.
Назначение этих слоев свертки направлено на уменьшение семантического разрыва между характеристическими картами подсетей кодера и декодера. В результате оптимизатор может решить более простую задачу оптимизации.
Пропускные соединения, используемые в U-Net, напрямую соединяют карты функций между кодером и декодером, что приводит к слиянию семантически несходных карт функций.
Однако в UNet ++ вывод предыдущего сверточного слоя того же самого плотного блока объединяется с соответствующим выходным сигналом нижнего плотного блока с повышающей дискретизацией. Это приближает семантический уровень закодированного признака к семантическому уровню карт признаков, ожидающих в декодере; таким образом, оптимизация упрощается, когда получаются семантически похожие карты функций.
Все сверточные слои на пути пропуска используют ядра размером 3 × 3.
Плотные пропускные соединения
В UNet ++ в плотных соединениях пропуска (показано синим) реализованы пути пропуска между кодером и декодером. Эти блоки Dense вдохновлены DenseNet с целью повышения точности сегментации и улучшения градиентного потока.
Плотные пропускные соединения гарантируют, что все предыдущие карты функций накапливаются и достигают текущего узла из-за плотного блока свертки на каждом пути пропуска. Это создает карты функций с полным разрешением на нескольких семантических уровнях.
Глубокий надзор
В UNet ++ добавлен глубокий контроль (показан красным), так что эту модель можно обрезать для корректировки сложности модели, чтобы сбалансировать скорость (время вывода) и производительность.
Для режима точный вывод всех ветвей сегментации усредняется.
Для режима быстрого окончательная карта сегментации выбирается из одной из ветвей сегментации.
Чжоу и др. провели эксперименты, чтобы определить лучшую производительность сегментации с разными уровнями обрезки. Используемые метрики: пересечение по объединению и время вывода.
Они экспериментировали над четырьмя задачами сегментации: а) ядра клеток, б) полип толстой кишки, в) печень и г) узелок в легких. Результаты приведены ниже:
L3 достиг в среднем 32,2% сокращения времени вывода по сравнению с L4 при незначительном ухудшении Intersection по сравнению с Union.
Более агрессивные методы отсечения, такие как L1 и L2, могут еще больше сократить время вывода, но за счет значительной производительности сегментации.
Мы можем настроить количество слоев для наших сценариев использования при использовании UNet ++.
Мой эксперимент на UNet ++
Я буду использовать Drishti-GS Dataset, который отличается от того, что Ronneberger et al. использовали в своей статье. Этот набор данных содержит 101 изображение сетчатки глаза и аннотированную маску оптического диска и оптического стакана для выявления глаукомы, одной из основных причин слепоты в мире. 50 изображений будут использованы для обучения, а 51 - для проверки.
Метрики
Нам нужен набор метрик для сравнения различных моделей, здесь у нас есть двоичная кросс-энтропия, коэффициент кубика и пересечение по объединению.
Двоичная кросс-энтропия
Общая метрика и функция потерь для двоичной классификации для измерения вероятности ошибочной классификации.
Мы будем использовать binary_cross_entropy_with_logits от PyTorch. Используется вместе с коэффициентом Дайса в качестве функции потерь для обучения модели.
Коэффициент кубика
Общая метрическая мера совпадения между предсказанным и достоверным. Расчет состоит из 2 * площади перекрытия (между прогнозируемым и наземным истинным положением), деленным на общую площадь (прогнозируемого и наземного истинного вместе взятых).
Этот показатель находится в диапазоне от 0 до 1, где 1 означает полное и полное перекрытие.
Я буду использовать эту метрику вместе с двоичной кросс-энтропией в качестве функции потерь для обучения модели.
Пересечение через Союз
Простая (но эффективная!) Метрика для расчета точности прогнозируемой маски с наземной маской истинности. Расчет для вычисления площади перекрытия (между прогнозируемой и базовой истинностью) и деления на площадь объединения ( предсказаний и достоверности).
Подобно коэффициенту Дайса, этот показатель находится в диапазоне от 0 до 1, где 0 означает отсутствие перекрытия, а 1 означает полное перекрытие между предсказанным и исходным.
Обучение и результаты
Чтобы оптимизировать эту модель, обучение более 50 эпох с Оптимизатором Адама со скоростью обучения 1e-4 и Step LR с 0,1 затуханием (гамма) для каждых 10 эпох. Функция потерь представляет собой комбинацию двоичной кросс-энтропии и коэффициента Дайса.
Модель завершила обучение 36,6 млн обучаемых параметров за 27 минут; каждая эпоха занимала примерно 32 секунды.
Эпоха с лучшими показателями - это эпоха №45 (из 50).
- Двоичная кросс-энтропия: 0,2650
- Коэффициент кубика: 0,8104
- Пересечение над Союзом: 0,8580
Метрики между несколькими моделями U-Net для сравнения, как показано ниже.
Тест начался с обработки модели нескольких невидимых образцов для прогнозирования оптического диска (красный) и оптического стакана (желтый). Вот результаты тестов для UNet ++ и U-Net для сравнения.
Судя по таблице показателей, UNet ++ превзошел U-Net в Intersection over Union, но уступает в коэффициенте Dice. Судя по качественным результатам тестирования, UNet ++ смогла правильно сегментировать первое изображение, чего не удалось U-Net. Также из-за сложности UNet ++ время обучения вдвое больше, чем у U-Net. Необходимо оценить каждый метод в соответствии с их набором данных.
Заключение
UNet ++ нацелен на повышение точности сегментации с помощью ряда вложенных, плотных путей пропуска.
Переработанные пути пропуска упростили оптимизацию благодаря семантически схожим картам функций.
Плотные пропускные соединения повышают точность сегментации и улучшают градиентный поток.
Глубокий контроль позволяет настраивать сложность модели для баланса между скоростью и оптимизацией производительности.
О другом U-Net читайте:
Вот код PyTorch архитектуры UNet ++: