Комплексный обзор методов классического и глубокого обучения для семантической сегментации

Автор Бхарат Радж с отзывами от Ной Шульман и Ротем Алалуф.

Семантическая сегментация - это процесс присвоения метки каждому пикселю изображения. Это резко контрастирует с классификацией, когда всему изображению присваивается одна метка. Семантическая сегментация рассматривает несколько объектов одного класса как одну сущность. С другой стороны, сегментация экземпляров рассматривает несколько объектов одного класса как отдельные индивидуальные объекты (или экземпляры). Обычно сегментация экземпляров сложнее семантической.

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

Классические методы

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

Сегментация серого уровня

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

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

Условные случайные поля

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

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

CRF - это класс методов статистического моделирования, используемых для структурированного прогнозирования. В отличие от дискретных классификаторов, CRF могут учитывать «соседний контекст», такой как взаимосвязь между пикселями, прежде чем делать прогнозы. Это делает его идеальным кандидатом для семантической сегментации. В этом разделе исследуется использование CRF для семантической сегментации.

Каждый пиксель изображения связан с конечным набором возможных состояний. В нашем случае целевые метки - это набор возможных состояний. Стоимость присвоения состояния (или метки u) одному пикселю (x) называется его унарной стоимостью. Чтобы смоделировать отношения между пикселями, мы также учитываем стоимость присвоения пары меток (u,v) паре пикселей (x,y), известную как парная стоимость. Мы можем рассматривать пары пикселей, которые являются его непосредственными соседями (Grid CRF), или мы можем рассматривать все пары пикселей в изображении (Dense CRF)

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

Методы глубокого обучения

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

1. Модельные архитектуры

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

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

Еще один недостаток - плохое разрешение на границах из-за потери информации в процессе кодирования.

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

U-Net

U-Net - это модернизация простой архитектуры FCN. Он имеет пропускные соединения от выхода блоков свертки к соответствующему входу блока транспонированной свертки на том же уровне.

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

Модель Тирамису

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

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

Методы MultiScale

Некоторые модели глубокого обучения явно вводят методы для включения информации из разных масштабов. Например, сеть анализа сцены пирамиды (PSPNet) выполняет операцию объединения (максимального или среднего) с использованием четырех различных размеров ядра и переходит к выходной карте функций CNN, такой как ResNet. Затем он увеличивает размер всех выходных данных объединения и карты характеристик выходных данных CNN с помощью билинейной интерполяции и объединяет их все по оси канала. На этом объединенном выходе выполняется окончательная свертка для генерации прогноза.

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

В документе DeepLabv3 используются Atrous Convolutions с разной степенью расширения для захвата информации из нескольких масштабов без значительной потери размера изображения. Они экспериментируют с использованием сверток Atrous каскадно (как показано выше), а также параллельно в форме объединения пространственных пирамид Atrous (как показано ниже).

Гибридные методы CNN-CRF

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

Некоторые методы включают CRF в самой нейронной сети, как представлено в CRF-as-RNN, где плотная CRF моделируется как рекуррентная нейронная сеть. Это обеспечивает непрерывное обучение, как показано на изображении выше.

2. Функции потерь

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

Пиксельный Softmax с кросс-энтропией

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

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

Потеря фокуса

Focal Loss, представленный в статье RetinaNet, предлагает обновить стандартную кросс-энтропийную потерю для использования в случаях с экстремальным классовым дисбалансом.

Рассмотрим график стандартного уравнения кросс-энтропийных потерь, как показано ниже (синий цвет). Даже в том случае, если наша модель достаточно уверена в классе пикселя (скажем, 80%), она имеет ощутимое значение потерь (здесь около 0,3). С другой стороны, Focal Loss (фиолетовый цвет, с gamma=2) не штрафует модель в такой большой степени, когда модель уверена в классе (т.е. потеря почти равна 0 для 80% уверенности).

Давайте разберемся, почему это важно, на интуитивном примере. Предположим, у нас есть изображение с 10000 пикселей, только с двумя классами: фоновый класс (0 в одноразовой форме) и целевой класс (1 в одноразовой форме). Предположим, что 97% изображения - это фон, а 3% изображения - это цель. Теперь предположим, что наша модель на 80% уверена в пикселях, которые являются фоном, но только на 30% в пикселях, которые являются целевым классом.

При использовании кросс-энтропии потери из-за фоновых пикселей равны (97% of 10000) * 0.3, что равняется 2850 , а потери из-за целевых пикселей равны (3% of 10000) * 1.2, что равно _9 _ . Ясно, что преобладают потери из-за более уверенного класса, и у модели очень низкий стимул к изучению целевого класса. Для сравнения, с потерей фокуса потеря из-за фоновых пикселей равна (97% of 10000) * 0, что равно 0. Это позволяет модели лучше изучить целевой класс.

Потеря кости

Dice Loss - еще одна популярная функция потерь, используемая для задач семантической сегментации с экстремальным дисбалансом классов. Представленный в статье V-Net, потеря игральных костей используется для вычисления перекрытия между предсказанным классом и наземным классом истинности. Коэффициент игральной кости (D) представлен следующим образом:

Наша цель - максимизировать перекрытие между прогнозируемым и наземным классами истинности (то есть максимизировать коэффициент игральной кости). Следовательно, мы обычно минимизируем (1-D) вместо этого для достижения той же цели, поскольку большинство библиотек машинного обучения предоставляют варианты только для минимизации.

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

Приложения

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

Автономное вождение

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

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

Сегментация медицинских изображений

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

Мы также можем автоматизировать менее важные операции, такие как оценка объема органов на основе трехмерных семантически сегментированных сканирований.

Понимание сцены

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

Модная индустрия

Семантическая сегментация используется в индустрии моды для извлечения предметов одежды из изображения и получения аналогичных предложений из розничных магазинов. Более продвинутые алгоритмы могут «переодеть» определенные предметы одежды на изображении.

Обработка спутниковых (или аэрофотоснимков) изображений

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

Заключение

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