Оригинальная фотография (a), первоначальная реконструкция (b), два варианта оптимизации реконструкции (с) и результат состаривания/омолаживания лиц со вторым вариантом оптимизации IP, то есть с лучшим сохранением узнаваемости лица (d)
Состаривание лица (синтез возраста) с морфингом фотографии — важная задача, которая имеет много практических применений. Такое состаривание необходимо делать для корректной работы систем распознавания лиц. Оно нужно при поиске пропавших детей спустя годы или десятилетия после пропажи. Ну и конечно, морфинг лиц используется в индустрии развлечений — например, в кинематографе. Вероятно, мобильные приложения c такой функцией могут стать популярными. Каждому интересно посмотреть, как в молодости выглядел этот старичок-преподаватель или какой станет ваша красавица-однокурсница через 40-50 лет.
Традиционно программы состаривания лиц основаны на одном из двух подходов: прототипирование и моделирование. В первом случае вычисляется оценка среднего лица в каждой возрастной группе, а также разница между средними лицами в разных возрастных группах. Затем эта разница используется для морфинга конкретного лица. Прототипирование — простой и быстрый подход, но он полностью игнорирует индивидуальные черты человека. Поэтому изображения получаются не очень реалистичными.
В отличие от него, моделирование предполагает составление параметрической модели, которая симулирует механизмы старения на мышцах, коже и черепе конкретного индивида. У этого подхода тоже есть недостаток. Для создания хорошей модели часто нужны фотографии одного и того же человека в разном возрасте. Получить такие данные не всегда возможно.
Оба упомянутые подхода плохо справляются с дополнительными модификациями, которые происходят со стареющим лицом. Например, появление бороды, лысины или очков.
Методы естественной генерации изображений изучались много десятилетий, но они получили существенный толчок после 2014 года, в результате серьёзного прогресса в глубинном обучении. Нейросети научились генерировать картинки очень высокого качества и разрешения. Ключевая технология в данной сфере — генеративные состязательные нейросети (Generative Adversarial Network, GAN), которые неоднократно описывались на Хабре и GT. Сеть GAN обучает функцию потерь, задача которой — классифицировать изображение как «настоящее» или «поддельное». Одновременно тренируется генеративную модель, чтобы минимизировать эту функцию.
В отличие от автоэнкодеров, GAN не может сгенерировать размытое изображение, потому что оно не пройдёт проверку классификации как «настоящее». GAN — это своеобразная «война» двух нейросетей, генератора и дискриминатора, где первая пытается обмануть вторую, сгенерировать фотографию, которая сойдёт за настоящую у дискриминатора.
Генеративные состязательные нейросети отлично показали себя в разных программах для изменения лица — например, в наложении причёсок и изменении цвета волос или в простом изменении возраста человека без чётких возрастных критериев. Но в большинстве случаев у этих программ была проблема, что вместе со старением на лице исчезали характерные индивидуальные черты, присущие конкретному человеку. Эту проблему попытались решить сотрудники научного коллектива под руководством Григория Антипова из компании Orange Labs (Франция). Их научная статья опубликована 7 февраля 2017 года на сайте препринтов arXiv.org (arXiv:1702.01983).
Антипов и его коллеги разработали генеративную состязательную нейросеть acGAN (Age Conditional Generative Adversarial Network), обученную состаривать или омолаживать лицо с сохранением узнаваемости. Это первая нейросеть, которая генерирует высококачественные лица в любой заданной возрастной категории. Кроме того, нейросеть умеет восстанавливать исходную фотографию с сохранением узнаваемости человека.
Авторы пишут, что после обучения нейросети состаривание происходит в два шага. На первом шагу вычисляется оптимальный собственный вектор для реконструкции. На втором этапе включается генератор изображений, который просто создаёт фотографию указанного возраста с учётом собственного вектора.
Алгоритм работы генеративной состязательной нейросети acGAN
Для условий генератора acGAN были установлены шесть возрастных категорий: 18 лет, 19-29, 30-39, 40-49, 50-59 и более 60 лет. Нейросеть обучали на наборе фотографий IMDB-Wiki cleaned, содержащем минимум 5000 изображений в каждой возрастной категории. Таким образом, условия acGAN — это шестимерные прямые векторы.
Всего в наборе для обучения было 120 тыс. фотографий. Из них 110 тыс. использовали для обучения, а остальные 10 тыс. — для проверки работы нейросети с использованием двух альтернативных методов вычисления оптимальных собственных векторов Pixelwise и Identity-Preserving.
Примеры генерации синтетических изображений в шести возрастных категориях с использованием двух случайных оптимальных собственных векторов
Сравнение результатов работы методов Pixelwise и Identity-Preserving показало, что наиболее оптимальные результаты показывает второй из этих методов. Оценка узнаваемости лиц осуществлялась с помощью программного обеспечения OpenFace — одной из самых лучших программ с открытым исходным кодом для распознавания лиц.
Авторы научной работы считают, что инновационный метод Identity-Preserving подойдёт не только для состаривания людей, но и для других трансформаций лица с сохранением узнаваемости. Например, для наложения бороды, очков и других трансформаций. Эту технологию можно применять в различных системах распознавания лиц и развлекательных приложениях.
Комментарии (9)
FernandoAlfonso
22.02.2017 19:53Мужики отлично получаются, лысина как родная) А с женщинами алгоритм не очень хорошо работает, кмк. На последнем изображении дамочке на седьмом десятке запросто можно дать двадцатник, с такой-то гривой и натянутой как барабан кожей.
Acuna
22.02.2017 20:41Ну с двадцаткой, это Вы, конечно, переборщили, тут тридцатка минимум, однако та же дамочка до 18 вышла просто отлично, не находите?)
plan_putina
22.02.2017 23:23Осталось сделать сайтик и прикрутить всё это туда. Но нет, мы же жадные и всё это зажмём.
rPman
23.02.2017 09:27Интересно, как будет выглядеть результат морфинга на серии фото, например на видео. Сразу будут видны огрехи алгоритма (например если человек будет говорить, гримасничать, поворачивать голову)
exMatrix
25.02.2017 09:57То, как человек будет выглядеть в старости, зависит от того как именно он будет жить после сделанной фотографии. Поэтому это бред пока что. Вот, например, добавить опцию «переболел такой то болезнью в таком то возрасте» — выглядеть будет по-другому. Или «всю жизнь отдыхал на острове, питаясь фруктами и морепродуктами».
Makito
25.02.2017 14:31Самым интересным, мне кажется, будет, если скормить ей фотографию человека 30-ти летней давности, и сравнить результаты в живую.
riot26
Совмещаем с findface – ищем одноклассников по старым школьным фотографиям :)