Трехмерная реконструкция лица с регрессионными сетями карты положений

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

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

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

Сети регрессии карты позиций (PRN)

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

В частности, они разработали УФ-карту положения, которая представляет собой двухмерное изображение, записывающее трехмерные координаты полного облака точек лица, которое сохраняет семантическое значение каждого УФ-многоугольника. Затем они обучают простую сеть кодировщика-декодера с взвешенными потерями, которая больше фокусируется на отличительной области, чтобы регрессировать карту положения UV из одного 2D-изображения лица.

Их вклад можно подытожить здесь (из той же статьи):

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

- Чтобы напрямую регрессировать трехмерную структуру лица и плотное выравнивание, мы разрабатываем новое представление, называемое UV-картой положения, которое записывает информацию о местоположении трехмерного лица и обеспечивает плотное соответствие семантическому значению каждой точки в УФ-пространстве.

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

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

- Сравнение наборов данных AFLW2000–3D и Florence показывает, что наш метод обеспечивает более чем 25% относительных улучшений по сравнению с другими современными методами как при трехмерной реконструкции лица, так и при плотном выравнивании лица.

Реализация

Их код реализован на Python с использованием TensorFlow. Вы можете посмотреть официальное репо здесь:



Если вы хотите запустить их примеры, вам понадобится следующее:

  • Python 2.7 (numpy, skimage, scipy)
  • TensorFlow ›= 1,4
  • dlib (для определения лица. Вам не нужно устанавливать, если вы можете предоставить информацию об ограничивающей рамке.)
  • OpenCV 2 (для показа результатов)

Обученную модель можно скачать на BaiduDrive или GoogleDrive.

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

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

Приложения

Основы (оценка в бумаге)

  • Выравнивание лица: плотное выравнивание видимых и невидимых точек (включая 68 ключевых точек).

  • 3D-реконструкция лица: получите 3D-вершины и соответствующие цвета из одного изображения. Сохраните результат как данные сетки (.obj), которые можно открыть с помощью Meshlab или Microsoft 3D Builder. Обратите внимание, что текстура невидимой области искажена из-за самоокклюзии.

Быть добавленным:

3D-оценка позы: вместо того, чтобы использовать только 68 ключевых точек для расчета матрицы камеры (легко зависит от выражения и позы), мы используем все вершины (более 40K) для расчета более точной позы.

Изображение глубины:

Редактирование текстур: увеличение данных / редактирование селфи, изменение специальных частей лица ввода, например глаз:

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

Основное использование

  • Клонировать репозиторий
git clone https://github.com/YadiraF/PRNet
cd PRNet
  • Загрузите обученную модель PRN в BaiduDrive или GoogleDrive и поместите ее в Data/net-data
  • Запустите тестовый код. (тестовые изображения AFLW2000)

python run_basics.py #Can run only with python and tensorflow

  • Работайте со своими собственными изображениями

python demo.py -i <inputDir> -o <outputDir> --isDlib True

запустите python demo.py --help для получения более подробной информации.

В ближайшем будущем я буду использовать Deep Learning Studio Deep Cognition для тестирования этой и других платформ, поэтому начните с создания учетной записи :).



Спасибо, что прочитали это. Надеюсь, вы нашли здесь что-то интересное :)

Если у вас есть вопросы, подпишитесь на меня в Твиттере



и LinkedIn.



Увидимся там :)

Обсудите сообщение в Hacker News.

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

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

Если вы хотите внести свой вклад, отправляйтесь на наш призыв к участникам. Вы также можете подписаться на наши еженедельные информационные бюллетени (Deep Learning Weekly и Comet Newsletter), присоединиться к нам в » «Slack и подписаться на Comet в Twitter и LinkedIn для получения ресурсов, событий и гораздо больше, что поможет вам быстрее и лучше строить лучшие модели машинного обучения.