3d модели лиц всего по одной фотографии.

Трехмерная реконструкция лица - одна из немногих, но существенных текущих проблем технологий . Процесс получения формы и облика человека современными системами предполагает наличие нескольких изображений лица с разных ракурсов (в качестве входных данных), с разными выражениями, а также с несколькими вариантами освещения. Проще говоря, это вопрос необычайной сложности. Команде исследователей из университета Ноттингема и университета Кингстона (Великобритания) удалось обойти многие вышеперечисленные ограничения. Новый инструмент на базе (CNN) значительно упрощает процесс превращения 2D-изображения в трехмерный объект.
Новая система искусственного интеллекта способна превратить обычную 2D-фотографию в 3D-изображение без необходимости и может использоваться для реконструкции всей трехмерной геометрии лица, включая невидимые его области. За всю работу отвечает глубокое машинное обучение, которое выполняет прямую регрессию объемного 3D-изображения используя данные предоставляемой 2D-фотографии. Попробовать и посмотреть, как это работает, можно на специальном сайте .

«Сайт, демонстрирующий нашу технологию, был создан за несколько вечеров. В основном я сделал его, потому что подумал, что видеть себя в 3D - это весело. Многие исследования в области компьютерного зрения трудно представить в увлекательной форме», - сказал Аарон Джексон (Aaron Jackson), один из соавторов проекта.
Команда исследователей представит свою работу и расскажет больше подробностей о ней в следующем месяце на Международной конференции по компьютерному зрению в Венеции. В дальнейшем подобная технология простейшего создания 3D-моделей лиц может найти потенциальное применение во многих социальных сферах. Например, вы сможете создавать 3D-аватары для игр, использовать свое лицо в социальных сетях виртуальной реальности или даже в смешанной реальности. Также, если новая сверточная нейронная сеть без труда превращает 2D-фотографии в полноценные 3D-объекты (не только фото), создание виртуальных сред любых видов для VR-гарнитур в будущем может стать более быстрым и легким.

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

Этапы работы нейросети

Häne et al. / arXiv 2017

Исследователи из Калифорнийского университета в Беркли разработали алгоритм, который позволяет создавать трехмерные модели объектов, основываясь только на реконструкции его поверхности, видимой на плоском изображении. Алгоритм работает на основе сверточной нейросети и превосходит другие методы 3D-реконструкции по качеству полученных моделей. Статья с описанием работы нейросети доступна на сайте arXiv .

Современные технологии компьютерного зрения позволяют реконструировать объекты в трехмерном пространстве из его двухмерного изображения. Такие алгоритмы активно применяются в создании компьютерных игр, а также в других видах компьютерной графики. Сверточные нейросети часто применяются для создания подобных программ: получая на вход двухмерное цветное изображения объекта, нейросеть составляет «сетку» из вокселей (элементов объемного изображения), из которых состоит изображенный объект. Такой метод, однако, сильно ограничен параметром разрешения изображения: например, для реконструкции объекта, разрешение изображение которого равняется 50×50 пикселей, нейросети нужно будет составить «сетку», состоящую из 125 тысяч вокселей, что может потребовать много времени и оперативной памяти, несмотря на то, что не все полученные воксели в итоге будут использованы в 3D-модели.

Авторы новой работы предложили новый метод создания 3D-моделей на основе двухмерных изображений - иерархическое предсказание поверхности (hierarchical surface prediction, коротко HSP). Этот метод основывается на идее о том, что для успешной трехмерной реконструкции необходимы только те воксели, которые находятся на поверхности объекта, а все, что внутри и снаружи него, можно «выбросить», тем самым сократив время работы алгоритма и оперативную память компьютера. Для этого они разделяют трехмерную модель объекта на три части: пустые воксели (все, что находится вне объекта), полные воксели (то, которые находятся внутри трехмерного объекта) и границы объекта (воксели его двухмерной поверхности). Пустые и полные воксели «выбрасываются», а нейросеть реконструирует объект, основываясь только на его поверхности.

Алгоритм работает с использованием сверточной нейросети, которая принимает на вход один из трех видов изображений: цветное двухмерное изображение объекта, его карту глубины (англ. depth map) или трехмерную модель. После этого нейросеть реконструирует трехмерное изображение объекта в низком разрешении (16 вокселей, или 16×16×16 пикселей) и «выбрасывает» пустые и полные воксели. Изображение затем реконструируют еще раз, в лучшем разрешении, после чего процедура избавления от лишних вокселей проводится снова и снова. В результате получается трехмерная модель объекта в разрешении 256 вокселей (или 256×256×256 пикселей).


Схема работы HSP

Häne et al. / arXiv 2017

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

Некоторые результаты применения метода VRN - Guided на изображениях из набора AFLW2000-3D

В интернете есть ряд стартапов, в том числе российские, которые занимаются восстановлением 3D-структуры лица по фотографиям. Например, VisionLabs со своим приложением Face.DJ умеет выполнять 3D-реконструкцию по единственной фотографии. Такая трансформация (3D-моделирование по фото) имеет практический смысл. После создания модели появляется возможность, например, изменить причёску, примерить очки, отрастить бороду и т. д. Технология может использоваться в системах проверки и распознавания лиц.

Но теперь бизнес подобных стартапов под угрозой: их работу легко выполняет новая нейросеть VRN (Volumetric Regression Network), которую выложили в открытый доступ на GitHub . Прямо на сайт вы можете загрузить свою или любую другую фотографию - и нейросеть осуществит преобразование в онлайне за несколько секунд (демо).

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

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

Авторы этой разработки под руководством Аарона Джексона (Aaron Jackson) из Ноттингемского университета (Великобритания) применили очень простой подход к вокселизации изображений. Он лишён многих недостатков, присущих другим методам 3D-реконструкции (в том числе 3D Morphable Model - 3DMM). В общем виде суть нового метода VRN изображена на иллюстрации ниже.


(а) Предлагаемая Volumetric Regression Network (VRN) принимает в качестве входящих данных RGB-изображение и напрямую возвращает 3D-объёмные выходные данные, полностью пропуская подгонку 3DMM. Каждый прямоугольник - это остаточный модуль из 256 признаков. (b) Предлагаемая архитектура VRN - Guided сначала определяет 2D-проекцию по 3D-ориентирам и стыкует её с оригинальным изображением. Этот стек отправляется в сеть реконструкции, которая напрямую возвращает объём. (с) Предлагаемая архитектура VRN - Multitask возвращает и объёмное 3D-изображение лица, и набор разреженных 3D-ориентиров.

Авторы исследования доказали, что свёрточная нейросеть (CNN) способна успешно генерировать 3D-модели из фотографий после обучения на наборе данных, который содержит фотографии и соответствующие им 3D-модели. В данном случае обучение проводили на 60 000 двумерных фотографиях лиц из базы 300W и соответствующих им 3D-сетках, полученных с помощью 3DMM.

Как выяснилось, для выдачи удовлетворительного результата нейросеть не нуждается в использовании модели 3DMM и успешно выполняет прямое преобразование из 2D в 3D.

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

Нейросеть можно запустить и локально на собственном компьютере. Код программы опубликован на GitHub . Для работы требуется установленный фреймворк для научных вычислений Torch7 , более-менее производительный графический процессор Nvidia с поддержкой CUDA. Программа тестировалась в операционной системе Linux и автор понятия не имеет, как она работает под Windows. Понадобятся ещё MATLAB, bash, ImageMagick, GNU awk, Python 2.7 (+ visvis, imageio, numpy).