Введение в U-Nets и одно из его многочисленных приложений!

Что такое глубокое обучение?

Глубокое обучение, как определяет его IBM, — это «попытка имитировать человеческий мозг, хотя и далекая от его возможностей, позволяющая системам кластеризовать данные и делать прогнозы с невероятной точностью».

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

Что такое сегментация изображений?

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

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

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

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



В U-Net, как и в любой другой сверточной нейронной сети, она состоит из таких операций, как свертка и максимальное объединение.

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

На диаграмме каждый синий прямоугольник соответствует карте многоканальных объектов. Изначально большинство операций представляют собой свертки, за которыми следует нелинейная активация типа ReLU. Затем следуют операции Max Pooling, которые уменьшают размер карты объектов. Кроме того, после каждой операции Max Pooling количество функциональных каналов увеличивается в 2 раза. В целом, последовательность сверток и операций max pooling приводит к пространственному сокращению.

U-Net также имеет дополнительный путь расширения для создания карты сегментации с высоким разрешением. Этот путь расширения состоит из последовательности сверток вверх и конкатенации с функциями высокого разрешения из пути сокращения. После этого мы получаем нашу выходную карту сегментации.

Сегментация легких с использованием U-Net

Для этой цели я использовал Рентгеновский набор округа Монтгомери. Набор данных состоит из различных рентгеновских изображений легких, а также изображений сегментированных изображений левого и правого легкого каждого рентгеновского снимка, которые были даны отдельно.

Итак, после импорта необходимых библиотек были созданы следующие функции для чтения изображений и масок.

После этого данные были разделены на обучающие, проверочные и тестовые наборы и преобразованы в тензоры, чтобы их можно было подавать в качестве входных данных в U-Net.

После этого для обучения использовались следующие гиперпараметры:

  • размер партии = 2
  • скорость обучения = 1e-5
  • эпох = 30

Модель была скомпилирована с помощью оптимизатора Adam с указанной выше скоростью обучения. Используемые показатели включали коэффициент Dice, IoU, Recall и Precision.

После обучения модели в течение 30 эпох модель, которая была сохранена (с потерей при проверке 0,10216), имела следующие показатели:

  • dice_coef: 0,9148
  • иу: 0,8441
  • отзыв: 0,9865
  • точность: 0,9781
  • val_loss: 0,1022
  • val_dice_coef: 0,9002
  • val_iou: 0,8198
  • val_recall: 0,9629
  • val_precision: 0,9577

Результаты:

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

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