Сегментация людей на фотографии в сложных условиях

23 августа 2018

Сегментация людей на фотографии в сложных условиях

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

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

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

Задача и подзадачи

Мы видим значительное продвижение в области получения 3D-информации из плоского изображения. Недавняя работа DeepMind AI продемонстрировала возможности рендеринга трехмерного изображения из двумерного. Решение таких задач расширяет границы человеческого понимания о изображениях.

Исследователи из французского института INRIA и Facebook AI Research предложили метод распознавания сложных человеческих поз. В своей работе они представляют технику глубокого обучения, с помощью которой им удалось получить 3х-мерное поверхностное представление человеческого тела из двумерной картинки. Как было упомянуто выше, восприятие сцены и контекста, бьется на небольшие подзадачи:

  • детектирование,
  • классификация,
  • локализация и так далее.

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

COCO-DensePose датасет

Наличие большого и качественного набора данных очень важно для обучения с учителем. Задачи требуют отличной друг от друга маркировки данных, и очень часто это представляет собой узкое место в процессе моделирования. По этой причине исследователи создали аннотированный набор данных картинку-в-поверхность, взяв 50000 изображений из набора данных COCO. Они ввели новый набор данных под названием COCO-DensePose вместе с оценочными метриками. Новый набор данных создается путем внедрения “умного” конвейера аннотаций, позволяющего максимально уменьшить потребность в человеческих усилиях. Аннотация включает в себя сегментирование изображения, маркировку соответствий с использованием модели SMPL для получения UV-полей.

Конвейер аннотации

Архитектура сети

Чтобы решить проблему оценки поверхности человеческого тела из плоских 2D-изображений, авторы представляют проблему, как регрессию координат поверхности тела в пикселе изображения. Вручную аннотируя датасет, они используют архитектуру глубокой нейронной сети — MaskRCNN, которая обучается с учителем. Они объединяют сеть Mask-RCNN с DenseReg (Dense Regression System) для получения соответствий между RGB-изображением и 3D-моделью поверхности тела.

DensePose-RCNN архитектура

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

В первой части используется пиксельная кросс-энтропийная функция потерь. Вторая, то есть регрессия абсолютных значений координат, определяется как отображение пикселя в точку в двумерной системе координат, заданной параметризацией каждой части (части тела человека). Фактически вторая часть действует, как поправка к классификации первой части. Поэтому регрессионные потери учитываются только в том случае, если пиксель находится в пределах определенной части. Наконец, каждый пиксель отображается в U, V координаты параметризации каждой части тела (в этом случае каждая из 25 определенных частей тела).

Результат работы метода (слева). Новый набор данных с сегментацией тела и параметризацией в новой 2D-системе координат (справа)

Авторы улучшили метод, введя регрессию по областям. Они вводят FCNN поверх ROI-pooling, которая целиком посвящена двум задачам: классификация и формировании базы регрессии, которая определяет, что это за область, и предсказывает координаты области.

Окончательная архитектура состоит из каскада proposing regions-of-interest (ROI), извлекающий особенности области  посредством ROI pooling и предоставляющий результаты в соответствующие ветки.

Финальная кросс-каскадная архитектура

Cross-modal supervision

Дальнейшее улучшение достигается за счет введения cross-modal supervision. Слабый supervion сигнал определяется путем аннотации небольшого подмножества пикселей на каждом обучающем экземпляре. Обучение сети таком образом допустимо, если исключить потери пикселей, которые не имеют соответствия в тренировочном датасете (ground-truth correspondance), при подсчете функции потерь для пикселей.

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

Cross-modal supervision используется путем включения сети-учителя, которая «дорисовывает» недостающие пиксели

Оценка и выводы

Сравнение с другими методами приведено в таблицах ниже. Стоит отметить, что сравнение между этим подходом и предыдущим подходом должно быть тщательно рассмотрено, поскольку новый метод использует новый набор данных, который они создали — DensePose-COCO.

AUC сравнение с разными методами
AUC и IoC сравнение с другими архитектурами и подходами

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

testing the method

Результаты тестов на различных реальных изображениях

Исследователи из Facebook AI предложили подход для сегментации всего

26 июня 2018
image segmentation

Исследователи из Facebook AI предложили подход для сегментации всего

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

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

Подход к сегментации от Facebook AI Research

FAIR (Facebook AI Research) представили новую задачу частичного обучения (partially supervised learning, похожую на semi-supervised learning, некоторые авторы не различают эти методы) сегментации сущностей и предложили новый метод обучения для ее решения. Частично контролируемая задача сегментации объекта формулируется следующим образом:

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

Поскольку обучающие данные представляют собой смесь сильно размеченных примеров (маска + рамки) и слабо размеченных примеров (только с рамками), задача относится к частично контролируемым. Для решения проблемы частично контролируемой сегментации экземпляров используется новый подход к обучению, основанный на Mask R-CNN. Mask R-CNN хорошо подходит для этой задачи, поскольку она разбивает задачу сегментации экземпляра на подзадачи обнаружения рамок и выделения масок.

Учимся сегментировать всё

Пусть C — набор категорий объектов, для которых обучается модель сегментации. Все обучающие примеры из C имеют маски. Предполагается, что С = А ∪ B, где образцы категорий A имеют маски, а B только рамки. Поскольку примеры категорий B размечены слабо, то задача (сегментация объектов) относится к обучению на комбинации сильно и слабо размеченных данных, как частично контролируемая задача.

Рис. 1. Подробная иллюстрация предложенного Mask^x R-CNN метода 
Рис. 1. Подробная иллюстрация предложенного Mask^x R-CNN метода

Этот метод основан на использовании Mask R-CNN, потому что это простая модель сегментации сущностей, которая достигает современных (state-of-the-art) результатов. В маске R-CNN присутствует две ветви. В конечном итоге одна ветвь предсказывает ограничивающие рамки (будем называть её ветвью рамок), а вторая маску объекта (будем называть её ветвью маски). В последних слоях данных веток содержатся дополнительные параметры для каждой категории, которые используются при предсказании. Вместо этого авторы предлагают в некоторый момент прокинуть веса с ветви рамок на ветвь масок и называют это transfer function. При этом функция передачи (transfer function) это тоже какая-то настраиваемая функция (может быть нейронной сетью) которая, вообще говоря, выбирается дифференцируемой, чтобы обучать end-to-end.

Пусть для заданной категории cat, w(det) — те самые индивидуальные веса объектов класса в последнем слое ветви рамок, а w(seg) — аналогичные веса в ветви маски. Вместо того, чтобы рассматривать w(seg) в качестве параметров модели, w(seg) параметризуется с помощью общей функции прогнозирования веса T(·):

segmentation

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

T(·) может быть реализована в виде небольшой полносвязной нейронной сети. На рис. 1 показано, как функция передачи помещается в маску R-CNN для формирования Mask^X R-CNN. Обратите внимание, что ветвь рамки содержит два типа весов: веса региона интересов(RoI) w(cls) и веса регрессии ограничивающей рамки w(box).

Эксперименты на наборе данных COCO

Этот метод был применен на наборе данных COCO, который включает в себя мало категорий, но содержит исчерпывающие маски для 80 категорий. Каждый класс имеет вектор параметров размерности 1024 для региона интересов(RoI) w(cls), вектор параметров размерности 4096 для регрессии ограничивающей рамки w(box) и вектор из 256 параметров для сегментации w(seg). Заметим, что последние два вектора w(box) и w(seg) находятся в голове сети. Разрешение выходной маски M × M = 28 × 28. В таблице ниже приведено сравнение с бейзлайнами.

Mask^X R-CNN превосходит эти подходы с большим отрывом (более чем на 20% относительное увеличение MAP)
Mask^X R-CNN превосходит эти подходы с большим отрывом (более чем на 20% относительное увеличение MAP)

Результаты

Сверху бейзлайн, снизу Mask^X R-CNN. Зеленые рамки соответствуют объектам из множества A, красные множеству B
Сверху бейзлайн, снизу Mask^X R-CNN. Зеленые рамки соответствуют объектам из множества A, красные множеству B

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

results Mask^X R-CNN
Предсказанные маски для данных Visual Genome (3000 классов) с помощью Mask^X R-CNN

Модель способна помочь построить крупномасштабную модель сегментации экземпляров на основе 3000 классов в наборе данных Visual Genome.