«Кто правильно видит человеческое лицо: фотограф, зеркало или художник?» - Пабло Пикассо

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

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

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

Даже знаменитости пробуют это и публикуют в социальных сетях. Такие, как Дрейк, Джонас Бразерс, Чарли Пут, Дэвид Гетта, Сэм Смит, Билли Эйлиш, Рахул Субраманиан и многие другие, штурмовали Instagram своими версиями FaceApp.

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

Так что же происходит, когда мы применяем фильтр к FaceApp?

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

Итак, при чем тут машинное обучение? Что оно делает? Что это?

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

Довольно кошек и собак, вернемся к FaceApp.

FaceApp использует нейронные сети или, скорее, генерирующую состязательную сеть (GAN) для выполнения своих задач. И чтобы вдаваться в подробности, нейронная сеть называется «глубокой генеративной сверточной нейронной сетью». Итак, что же такое нейронные сети для начала?

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

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

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

Итак, FaceApp использует библиотеки с открытым исходным кодом AI, такие как TensorFlow, для поиска особенностей вашего лица, а затем применяет фильтр или говорит, добавляет функции, которые заставляют вас выглядеть старым, или что вы выберете.

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

В заключение дайте нам знать, что такое GAN.

В основном это технология нейронной сети, которую можно использовать для создания новых поддельных данных, которые выглядят как любые настоящие данные.

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

Согласно определению, генеративные состязательные сети (GAN) - это архитектуры глубоких нейронных сетей, состоящие из двух сетей, противопоставляющих друг друга (таким образом, «состязательные»).

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

📝 Прочтите этот рассказ позже в Журнале.

👩‍💻 Просыпайтесь каждое воскресное утро и слушайте самые интересные истории недели в области технологий, которые ждут вас в вашем почтовом ящике. Прочтите информационный бюллетень« Примечательно в технологиях .