python

Обучаем качественные модели без DensePose разметки

  • понедельник, 7 июня 2021 г. в 00:38:24
https://habr.com/ru/post/561234/
  • Python
  • Машинное обучение


Возможно ли обучить качественную модель, которая предсказывает 3D координаты поверхности тела животного по фотографии, без соответствующей DensePose разметки?

Исследователи из Facebook Artificial Intelligence Research затронули этот вопрос на конференции по машинному зрению CVPR 2020.

Источник: https://www.facebook.com/watch/?v=678774242681114
Источник: https://www.facebook.com/watch/?v=678774242681114

О задаче DensePose

Ранее эти исследователи представили научному сообществу новый датасет DensePose-COCO и архитектуру нейронной сети, которая работает с этими данными (статья). Этот датасет состоит из собранной особым образом разметки людей на картинках из COCO 2014.

Подробнее о датасете

Данные включают в себя:

  • bounding boxes людей на фото,

  • pixel-perfect foreground-background маски,

  • сегментацию 32х частей тела, внутри вышеупомянутой маски,

  • и большой набор троек (c, u, v) для каждой фотографии, где c— это индекс части тела, u , v — это геодезические координаты в пределах части тела.

Собирались они следующим образом:

Разметчикам ставили задачу определить соответствие между случайно брошенными на изображение человека точками (в пределах маски сегментации) и точками на шести пререндеренных изображениях 3D модели человека, т.е. на шести 2D проекциях модели SMPL под разными углами. Получив такую разметку исследователи восстановили (c, u, v) координаты для этих точек на поверхности человека.

По этому принципу было собрано 5 миллионов точек для 50 тысяч изображений людей внутри датасета COCO 2014.

Такого рода данные позволили построить Mask-RCNN подобную модель для предсказания масок с 3D координатами по снимкам.

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

Визуализации в формате видео можно увидеть здесь.

Теперь об обезьянах

В новой статье исследователи предлагают воспользоваться разметками из DensePose-COCO и COCO Dataset для того, чтобы решить схожую задачу предсказания 3D координат поверхности животных. При этом предлагается не размечать изображения животных по описанному выше алгоритму. Утверждается, что можно воспользоваться существующей разметкой не только для шимпанзе, но и для любых других животных, которые менее похожи на человека с точки зрения анатомии.

Таким способом исследователям удалось достичь качества по метрике DensePose Average Precision = 34.9. Имея размеченные данные для класса людей, модель из первой статьи показывала результат = 46.8. Это при том, что метрика варьируется от 0 до 100. Неплохой результат knowledge transferring?

Чтобы измерить качество новой модели, потребовалось разметить некоторый объем фотографий шимпанзе (по образу того, как это делалось для человека). Для этого был предложен метод восстановления соответствия между точками SMPL модели человека и очень детальной 3D модели шимпанзе.

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

Show me the code!

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

Ранний код из первой статьи, написанную с использованием detectron первой версии, в основе которого лежит Caffe2, можно так же найти на GitHub.