реклама
Бургер менюБургер меню

Платон Диалогов – ИИ для макияжа. Как нейросети наносят тональные средства на фото (страница 3)

18

Скулы, носогубка и миллиметр точности

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

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

Этот процесс очень похож на работу художника, который сначала делает легкий набросок углем, намечая основные линии портрета, и только потом берется за кисти и краски. Только наш «художник» – это бездушный, но очень обученный алгоритм, а его «набросок» состоит из тысяч математических вычислений.

Вспомни, как иногда, глядя на неудачные фото, ты ловишь себя на мысли: «Какая-то странная форма лица получилась, хотя в жизни всё иначе». Это как раз тот случай, когда даже человеческий глаз и камера могут исказить реальность из-за ракурса или освещения. Нейросеть же в этот момент изо всех сил пытается найти тот самый идеальный контур, игнорируя случайные тени и блики. И чем лучше она натренирована, тем точнее будет её «цифровой слепок».

Почему это происходит так быстро?

Скорость здесь – результат огромной предварительной работы. Современные нейросети не вычисляют положение каждой точки лица с нуля каждый раз. Они используют опыт, полученный во время обучения. Представь, что нейросеть «пересмотрела» миллионы фотографий лиц, на которых люди уже вручную (или с помощью разметчиков) указали, где находятся глаза, нос, скулы. В результате у алгоритма сформировалась некая идеальная модель «усредненного лица».

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

Так что, когда в следующий раз будешь виртуально примерять тональный крем, знай: первое, что сделала программа – это не просто увидела тебя, а за долю секунды нанесла на твое лицо свою невидимую карту, чтобы твой будущий «идеальный тон» лег точно по адресу.

Тональная основа: подбираем текстуру и оттенок под пиксели

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

Когда мы говорим о тональном средстве в реальности, мы всегда выбираем между лёгким вуалирующим флюидом, satin-финишем или плотной матовой основой. В цифровом мире нейросеть проделывает ту же работу, но оперирует не пигментами и силиконами, а пикселями и математическими алгоритмами. Ей нужно не просто «закрасить» лицо одним цветом, а симулировать поведение конкретной текстуры на коже.

Математика кожи: как нейросеть понимает текстуру

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

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

И вот тут в игру вступает текстура самого средства. В данных, на которых учится нейросеть, есть миллионы примеров того, как выглядит кожа с нанесённым на неё плотным тональным кремом, и как – с лёгким ВВ-кремом. Для плотного покрытия алгоритм сделает тон более однородным, слегка «приглушит» поры и добавит эффект мягкого фокуса. Для лёгкого же средства нейросеть, наоборот, сохранит бо́льшую часть природного рельефа, лишь слегка изменив оттенок кожи. Это похоже на работу художника, который вместо того, чтобы закрасить холст целиком, наносит на него очень тонкую лессировку, через которую проступает фактура холста.

Охота за идеальным оттенком: от пикселя к пантону

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

Когда вы загружаете своё фото в приложение для примерки, алгоритм анализирует цвет каждого пикселя на лице, но он не может просто взять и усреднить их. Если он это сделает, то получится тот самый унылый серо-бежевый цвет, который не подходит никому. Вместо этого нейросеть ищет закономерности. Она выделяет зоны, где кожа наиболее чистая и лучше всего отражает истинный подтон – обычно это щёки и лоб, избегая покраснений у носа или тёмных кругов под глазами.

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

Представьте, что нейросеть – это очень дотошный колорист. Она смотрит на ваш снимок и думает: «Так, уровень красного выше среднего, синего чуть ниже – скорее всего, это оливковый подтон. Значит, нейтральный беж с лёгкой зелёной ноткой будет идеален, а розоватые оттенки сделают кожу красной». И уже потом, на основе этого анализа, она подбирает виртуальный пигмент из своей базы.

Свет, камера, мотор: почему идеал в приложении не всегда идеален в жизни

Здесь мы подходим к самому деликатному моменту. Даже самая умная нейросеть, которая идеально подобрала текстуру и оттенок по вашему фото, может ошибиться. И виноват в этом будет не алгоритм, а физика. Главный враг виртуальной примерки – освещение, при котором сделано фото.

Конец ознакомительного фрагмента.

Текст предоставлен ООО «Литрес».

Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.