Повышение точности сегментации с помощью ряда вложенных, плотных путей пропуска

В этой статье мы рассмотрим UNet ++: вложенная архитектура U-Net для сегментации медицинских изображений, написанная Чжоу и др. из Университета штата Аризона. Эта статья является продолжением статьи о U-Net, в которой мы будем сравнивать UNet ++ с оригинальной U-Net, написанной Роннебергером и др.

UNet ++ нацелен на повышение точности сегментации за счет включения плотных блоков и слоев свертки между кодером и декодером.

Точность сегментации критически важна для медицинских изображений, поскольку незначительные ошибки сегментации могут привести к ненадежным результатам; таким образом будет отклонен для клинических условий.

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

Что нового в UNet ++?

Ниже приведена иллюстрация архитектуры UNet ++ и U-Net.

UNet ++ имеет 3 дополнения к исходной U-Net:

  1. переработанные пути пропуска (показаны зеленым)
  2. плотные пропускные соединения (показаны синим цветом)
  3. глубокий надзор (показан красным)

Обновленные пути пропуска

В 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 ++: