(Глубокое погружение) в документ U-NET: документ о сверточных сетях для сегментации биомедицинских изображений

Привет!╰(*°▽°*)╯

🎇🎇🎇🎇🎇🎇🎇

Прошло много времени

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

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

Спасибо, что нашли время прочитать этот пост 💜💜💜 . Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь спрашивать

1. Введение

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

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

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

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

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

Что ж, в этом посте мы объясним статью «U-Net: сверточные сети для сегментации биомедицинских изображений», которая была опубликована в материалах Международной конференции по вычислениям медицинских изображений и компьютерным вмешательствам (MICCAI) в 2015 году.

2. Сетевая архитектура

Архитектура U-Net – это полностью сверточная нейронная сеть (FCN), специально разработанная для задач сегментации биомедицинских изображений.

U-образная архитектура состоит из кодировщика , декодера и пропуска соединений .

Сеть кодировщика состоит из серии повторяющихся
приложений двух незаполненных 3x3 conv , ReLU, за которыми следует операция максимального объединения 2x2 с шагом 2 для понижения дискретизации. На каждом шаге субдискретизации мы удваиваем количество функциональных каналов. цель здесь состоит в том, чтобы уменьшить пространственное разрешение входного изображения, получая при этом высокую контекстуальную детализацию, которая описывает «что» на изображении.

Для экспансивного пути каждый уровень состоит из повторяющихся 3 шагов:

1 — апсемплинг карты признаков со сверткой 2x2 («ап-свертка»), которая вдвое уменьшает количество каналов признаков.

2- конкатенация с соответствующим образом обрезанной картой признаков из пути сокращения.

3- две свертки 3x3, за каждой следует ReLU.

в конце расширенного пути у нас есть conv 1x1 для изменения размера оси каналов до желаемого количества каналов или функций.

цель здесь состоит в том, чтобы постепенно увеличивать пространственное разрешение закодированных признаков, чтобы восстановить информацию «ГДЕ». Пропускные соединения между сетями кодировщика и декодера помогают сохранить детализированную информацию с высоким разрешением и повысить точность сегментации.

________________________________________________________________

3. Обучение

Для этой части это может показаться немного сложным, но просто оставайтесь сосредоточенными, вы легко справитесь.

Для обучения использовались:

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

  • 3.1. стратегия плитки с перекрытием:

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

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

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

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3.2. оптимизатор:

Стохастический градиентный спуск (SGD) со скоростью обучения 0,01 и импульсом 0,99.

SGD: полезно при работе с большими наборами данных, потому что он обновляет параметры модели на основе одного примера, а не всего набора данных, и иногда они также использовали sgd, когда говорили об обновлении после небольшого подмножества. обучающих примеров (мини-пакет)

LR: скорость обучения – это гиперпараметр, определяющий размер шага, с которым параметры модели обновляются во время обучения. Скорость обучения 0,01 – типичная начальная точка, обеспечивающая баланс между скоростью сходимости. и стабильность

MOMENTIUM: накапливает прошлые градиенты и применяет средневзвешенное значение для определения направления и величины следующего обновления. Импульс 0,99 указывает на то, что учитывается большая часть прошлых градиентов, что помогает сгладить обновления и ускорить сходимость.

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

3.3. инициализация весов:

Начальные веса были выбраны из распределения Гаусса со стандартным отклонением np.sqrt(2/N), где N обозначает количество входящих узлов одного нейрона.

Например, в сценарии, где у нас есть сверточный слой 3x3 с 64 функциональными каналами в предыдущем слое, количество входящих узлов (N) будет 9, умноженное на 64, в результате чего N = 576. Применяя формулу, стандартный отклонение будет np.sqrt(2/576). (Инициализация веса имеет решающее значение, поскольку она обеспечивает более быструю сходимость во время обучения, снижает вероятность застревания в неоптимальных решениях и позволяет избежать исчезновения или взрыва градиентов.)

но почему они использовали именно этот стандарт????!!!

Что ж, стандартное отклонение np.sqrt(2/N) получено из концепции инициализации Ксавье «glorot», целью которой является установка начальных весов сети таким образом, чтобы сбалансировать распространение сигнала и градиентный поток во время обучения.

Значение N представляет собой количество входящих соединений, которые способствуют активации нейрона, поэтому, используя np.sqrt(2/N) в качестве стандартного отклонения, веса инициализируются таким образом, что дисперсия входных данных для каждый нейрон остается примерно постоянным на разных слоях сети

np.sqrt(2/10) = 0,44 — — «приемлемая дисперсия»— — - np.sqrt(2/100) =0,14)

таким образом избегая проблем с исчезновением (веса ​​слишком малы, они могут привести к ослаблению сигнала при его распространении по сети) или взрыва градиентов (противоположный случай).

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

  • 3.4. Функция потерь:

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

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

формула следующая:

где :

  • wc(x) представляет собой карту весов, используемую для балансировки частот разных классов( wc может быть назначен вручную экспертами в предметной области, у которых есть предварительные знания о важности различных областей на изображениях. Они может назначать более высокие веса недопредставленным классам или регионам, которые требуют большего внимания во время обучения, или автоматически, и это может включать статистический анализ набора данных для определения относительной встречаемости различных классов и присвоения веса соответственно, Например, карта весов может быть обратно пропорциональна к частотам классов, присваивая более высокие веса менее частым классам.)
  • d1(x) соответствует расстоянию от пикселя x до границы ближайшей ячейки.
  • d2(x) представляет собой расстояние до границы второй ближайшей ячейки .
  • w0 = 10 и σ примерно до 5 пикселей .

однако, рассматривая эту взвешенную карту как наземную метку, функция loos была рассчитана с помощью комбинации попиксельной операции soft-max и функции перекрестной энтропийной потери. Комбинируя эти две функции, мы достигаем двух важных целей. Во-первых, функция мягкого максимума преобразует активации модели в значимые вероятности. Во-вторых, функция потери перекрестной энтропии позволяет измерить несоответствие между этими предсказанными вероятностями и метками истинности.

  • 3.3.1. Функция soft-max:

где :

  • ak(x) представляет активацию в функциональном канале k в позиции пикселя x.
  • К - общее количество классов.
  • pk(x) приблизительно равно 1 для класса k с наивысшей активацией ak(x) и приблизительно равно 0 для всех остальных классов.

Эта функция работает путем деления экспоненциальной активации класса k (exp(ak(x))) на сумму экспонент по всем классам, таким образом, мы получаем вероятность pk(x) для этого класса в этой позиции пикселя.

ps : (Экспоненциальное преобразование помогает выделить более высокие значения активации и подавить меньшие . Это означает, что классам с более высокими активациями будут присвоены более высокие вероятности, что указывает на более высокую вероятность того, что они являются наиболее вероятным классом в этом пикселе. положение).

  • 3.3.2. Бинарная функция кросс-энтропийных потерь

после применения soft-max функция перекрестной энтропии затем используется для штрафа за отклонение p l (x)(x) (прогноз) от 1 в каждой позиции .

общий случай бинарной кросс-энтропийной функции:

L(y, ŷ) = -[y * log(p(y)) + (1 - y) * log(1 - p(y))]

где:

L представляет двоичную перекрестную энтропийную потерю.

y — истинная метка (либо 0, либо 1).

ŷ - прогнозируемая вероятность того, что вход принадлежит классу 1.

Когда y = 1, первый член y * log(p(y)) становится отрицательным логарифмом прогнозируемой вероятности p(y). Когда p(y) приближается к 1, потери приближаются к 0, что указывает на правильность прогноза для класса 1. Однако, когда ŷ приближается к 0, потери приближаются к бесконечности, что указывает на серьезное наказание за прогнозирование класса 0, когда истинная метка равна 1.
когда y = 0, второй член (1 — y) * log(1 — p(y)) становится отрицательным логарифмом (1 — p(y)) , что эквивалентно отрицательному логарифму прогнозируемой вероятности для класса .

в статье к функции взаимной энтропии применена небольшая модификация, и измененная формула задается следующим образом:

где :

  • w(x) представляет вычисленную карту весов
  • p l (x)(x) — прогнозируемая вероятность.

мы можем записать формулу как:

E = Σx∈Ω [w(x)* log(p (x)) + (1 — w(x)) * log(1 — p (x)))]

и расчет будет аналогичен обычной функции, за исключением замены значений истинной карты на взвешенные.

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

  • 3.4. Увеличение данных:

Они применили эластичные деформации, которые имитируют реалистичные вариации тканей, вводя плавные деформации, имитирующие естественные вариации, наблюдаемые в биологических тканях.

«Мы генерируем плавные деформации, используя случайные векторы смещения на грубой сетке 3 на 3. Смещения взяты из распределения Гаусса со стандартным отклонением 10 пикселей. Затем смещения на пиксель вычисляются с использованием бикубической интерполяции. Выпадающие слои в конце пути сокращения выполняют дальнейшую неявную
аугментацию данных». Они сказали

позвольте мне объяснить это на примере

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

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

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Авторы обучили свою модель для 100 эпох с размером пакета 1. Они использовали раннюю остановку на основе потери проверки, чтобы предотвратить переоснащение.

4. Эксперименты

они экспериментировали над 3 задачами:

задача ISBI по отслеживанию клеток 2012 – задача сегментации нейронных структур в электронно-микроскопических записях

  • 30 изображений (512x512 пикселей) из серийного среза просвечивающей электронной микроскопии вентрального нервного шнура личинки первого возраста дрозофилы (VNC).
  • полностью аннотированная черно-белая правда

Оценка выполняется путем пороговой обработки карты на 10 различных уровнях и вычисления «ошибки деформации», «ошибки Rand» и «ошибки пикселя».

сравнительная таблица показывает, что UNET дает наилучшую частоту ошибок деформации

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

задача сегментации клеток ISBI Cell tracking Challenge 2014 в световых микроскопических изображениях на 2 наборах данных:

  • «PhC-U373»: 35 частично аннотированных обучающих изображений глиобластомы-астроцитомы.
  • «DIC-HeLa»: 20 частично аннотированных обучающих изображений клеток HeLa на плоском стекле, полученных
    с помощью дифференциально-интерференционно-контрастной (ДИК) микроскопии.

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

5. Вывод

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

Спасибо за чтение !

ССЫЛКИ