AI-система виртуальной примерки макияжа в реальном времени

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

Виртуальная примерка макияжа: где ломается реальное время

Виртуальная примерка макияжа в интерфейсе выглядит как одна кнопка: включил камеру — и на лице помада. Внутри это конвейер из четырёх ступеней — находит лицо, ведёт ключевые точки, накладывает слой оттенка, отдаёт кадр на экран. Пока ступени укладываются в бюджет времени одного кадра, картинка читается как зеркало; как только одна выбивается — как фильтр с запозданием.

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

Задержка отклика при отслеживании лица ощущается сильнее всего на движении — наклон головы, улыбка, поворот к источнику света. Если ступени считаются последовательно, камера успевает отдать несколько новых кадров, пока обрабатывается предыдущий, и между жестом и реакцией появляется рассинхрон. Здесь помогает распараллеливание ступеней и отдельный облегчённый тракт на быстрые движения.

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

Разбираем, как это закрывается: где нужна нормализация по эталонному снимку кожи, где — калибровка каталога под реальные пигменты.

Точность наложения и устойчивость отслеживания лица

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

Устойчивость отслеживания держится на плотной сетке лицевых точек и временном сглаживании: положение контура между кадрами интерполируется, поэтому макияж не дрожит на губах при мимике и не «плывёт» на скулах. Базовый слой — MediaPipe Face Mesh, поверх него свои фильтры и покадровая стабилизация. Когда лицо перекрыто рукой, волосами или оправой очков, маска не уезжает: она замирает в последнем достоверном положении и возвращается к расчёту, как только зона снова видна.

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

Проверяем на сценариях реальной съёмки: контровой свет из окна, лампа над столом, вечернее освещение, повороты головы до предела, активная мимика, руки у лица. Каждый сценарий — отдельный прогон с покадровой разметкой, поэтому видна не абстрактная «плавность», а конкретика: стабильность кадра, доля срывов отслеживания, цветовое расхождение оттенка на разных тонах кожи. По этим числам заказчик принимает работу, а мы фиксируем регрессии при последующих обновлениях модели.

Варианты запуска: браузер, приложение, зеркало в точке продаж

Один и тот же алгоритм примерки макияжа ведёт себя по-разному в зависимости от точки входа. Браузер, мобильное приложение и зеркало с камерой в точке продаж отличаются доступом к камере, требованиями к каналу связи и тем, где вообще считаются модель и подбор оттенков.

Второе решение — где выполняется расчёт: на устройстве посетителя или на сервере. Оно влияет на приватность, стабильность картинки и на то, как быстро мы сможем обновлять палитры и правила подбора.

Вариант Когда подходит Ограничения
Примерка в браузере Акции в соцсетях, страница с промо: переход по ссылке без установки Доступ к камере зависит от разрешений браузера, на слабых устройствах картинка подтормаживает, разный набор камер у посетителей
Примерка в мобильном приложении Примерка — постоянная функция: нужны история образов, личный кабинет, уведомления Установка приложения — барьер на входе, нужны сборки под две платформы и регулярные обновления
Зеркало с камерой в точке продаж Корнер или полка в магазине, где важен эффект «примерил и купил» Привязка к месту, чувствительность к свету и калибровке, обслуживание парка устройств
Расчёт на устройстве Приватность критична: кадр не покидает устройство, работает и без сети Ограниченный класс моделей, на бюджетных устройствах качество ниже
Расчёт на сервере Нужно единое качество на всех устройствах и быстрая смена палитр Требует устойчивого канала, согласий на обработку изображений, нагрузка растёт вместе с числом одновременных посетителей

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

Этапы внедрения: от разбора задачи до передачи системы

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

  1. Аудит сценариев съёмки. Собираем реальные условия: фронтальная камера телефона или веб-камера, свет из окна или от витрины, крупный план, повороты головы, улыбка. По каждому сценарию фиксируем, что система обязана выдержать и где вправе отказаться от результата вместо ложного наложения.
  2. Схема решения. Согласуем зоны лица для отслеживания, точки опоры для наложения и порядок слоёв — тон, румяна, тени, губы, — а также то, как ведёт себя макияж при быстром движении.
  3. Подготовка эталонных наборов. Размечаем кадры по тонам кожи, типам освещения и возрасту. Набор фиксируется, чтобы итерации сравнивались между собой по одним и тем же данным, а не «на глаз».
  4. Настройка палитр и правил наложения. Приводим оттенки к предсказуемому результату при разном свете: смешивание с тоном кожи, плотность, поведение на бликах и на тёмных участках.
  5. Приёмочные проверки. Прогоняем контрольные сценарии: доля кадров без срыва наложения, отклик на движение, устойчивость на слабых устройствах. Расхождения разбираем до передачи, а не после запуска.
  6. Передача в эксплуатацию. Отдаём конфигурации, документацию по палитрам и правилам, инструкцию по добавлению новых оттенков, обучаем команду заказчика.

Такая последовательность оставляет систему, которую можно развивать своими силами: новые оттенки и сценарии добавляются настройкой, без переписывания основы.

Что передаём на руки: конфигурации, схемы и регламенты

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

  • Комплект конфигураций — пороги детекции лица, точки наложения и параметры отрисовки вынесены в отдельные файлы, а не зашиты в код: оттенки и поведение подкручиваются без пересборки и релиза.
  • Схемы интеграции с сайтом и приложением — порядок вызовов, форматы запросов и ответов, поведение при недоступности сервиса и деградация до статичного превью.
  • Политики доступа к изображениям — где хранятся кадры, сколько живут, кто и по какому признаку их запрашивает, что уходит в аналитику. Закрывает вопросы службы безопасности и требований к персональным данным.
  • Регламент обновления палитр — как добавить оттенок, откалибровать его под разное освещение и выкатить в боевой контур, не ломая уже настроенные наборы.
  • Эталонные кадры и метрики качества — набор тестовых сцен, по которым каждая новая палитра и обновление модели проверяются до выката: видно, стало лучше или хуже.
  • Инструкция по развёртыванию и откату — окружения, переменные, порядок выката и возврат на предыдущую версию за один шаг.
  • Каталог точек расширения — где подключить новые категории продукта и какие модули при этом затрагиваются.

Кейс: как мы убрали подвисания и ускорили отклик

Кейс внедрения примерки начался с розничной сети косметики Lumé: примерка оттенков работала прямо в карточке товара, покупательницы ей пользовались, но до покупки доходила лишь часть. Слой тона появлялся с ощутимой паузой после поворота головы, маска «съезжала» при движении и смене освещения, а на части смартфонов сессия обрывалась на середине. По логам примерку бросали 4 покупательницы из 10, и почти никто из них не возвращался в карточку.

Что показал разбор

Узким местом оказался не сам алгоритм наложения, а путь кадра: сжатие, отправка на сервер, ожидание ответа, обратная отрисовка. Чем слабее канал и чем загруженнее устройство, тем длиннее становилась эта цепочка — отсюда и подвисания, и обрывы. Замеры на реальных устройствах дали метрики до изменений: отклик примерки на движение головы — около секунды, доля оборванных сессий — 23%, доля переходов от примерки к корзине — 6%.

Что изменили и что стало

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

Ускорение отклика примерки вышло кратным: слой реагирует на движение головы без заметной глазу паузы. Доля оборванных сессий упала с 23% до 4%, переход в корзину вырос с 6% до 14%, нагрузка на серверы примерки снизилась почти в семь раз. Класс отказов «интерфейс подвис и потерял лицо в кадре» ушёл совсем — вместо него покупатель видит лишь мягкое снижение качества картинки, которого не замечает.

Чем примерка отличается от наложения фильтра?

Фильтр-маска — это готовая полупрозрачная текстура, приклеенная к лицу по нескольким опорным точкам. Она не знает ни тона кожи, ни рельефа губ: оттенок задан заранее, поэтому на смуглой коже, при боковом свете или на блеске помады выглядит как наклейка. Отсюда и характерный эффект «маски» — цвет есть, а косметики нет.

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

Вариант Как работает Ограничения
Фильтр-маска Готовая текстура накладывается поверх лица по опорным точкам Не учитывает тон кожи и свет, сползает при движении, перекрытия игнорирует
Перекраска по разнице цветов Цвет сдвигается в границах маски по всему кадру Теряет блики и текстуру, на тёмных тонах оттенок уходит в грязный
Перенос пигмента по зонам Оттенок смешивается с рельефом губ, век и кожи с учётом света Требует точной сегментации и устойчивого отслеживания лица в реальном времени

Губы и глаза — самая сложная часть переноса: там рельеф, блики, полупрозрачные переходы и тонкая граница с кожей. Оттенок наносится с учётом освещённости кадра, а блеск и текстура сохраняются — именно поэтому помада выглядит наложенной, а не нарисованной.

Ограничение фильтра в том, что он не различает перекрытия: волосы, очки, рука у лица для него не существуют. Плюс тени на маске не совпадают со светом в кадре. Для развлечения этого достаточно, для выбора оттенка косметики — нет.

Технические сомнения перед запуском: отвечаем по существу

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

Как обрабатываются изображения лиц и где они хранятся?

Разбор кадра идёт на устройстве покупателя: находим ключевые точки лица, подбираем оттенок под текущее освещение, накладываем слой поверх видеопотока. На сервер уходит только обезличенный набор координат и артикул товара, само изображение устройство не покидает. Поэтому решение проходит по требованиям GDPR и не превращает виртуальную примерку макияжа в сбор биометрии.

Заработает ли примерка на недорогом смартфоне?

Модель поставляется в двух ветках разной тяжести. Лёгкая держит плавную картинку на устройствах прошлых лет без перегрева корпуса, тяжёлая включается только там, где есть запас производительности. Если аппарат не проходит порог вовсе, показываем примерку по загруженному фото — покупатель в любом случае видит оттенок на себе, а не пустой экран.

Что происходит при пиковом трафике в день распродажи?

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

Ниже — остальные сомнения: стыковка с каталогом, обновление палитры оттенков и разграничение доступов внутри команды заказчика.

Обсудим задачу: что подготовить к первому разговору

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

  • Сценарии использования примерки: карточка товара в приложении, экран в торговом зале, промо-страница или камера у витрины. От этого зависит, собираем мы отдельный модуль или встраиваемся в готовый интерфейс.
  • Каталог продуктов: снимки помад, теней и тональных оттенков, их коды и группировка по линиям. Аккуратные исходники и единый формат ощутимо сокращают ручную настройку.
  • Требования к точности наложения: типы кожи, слабое освещение, движение человека в кадре, очки и закрывающие лицо волосы. Что считаем допустимым, а где примерка должна честно сообщить, что лицо не распознано.
  • Правила бренда: палитра, типографика, подача продукта и подсказки в интерфейсе. Примерка должна выглядеть частью вашего продукта, а не чужим блоком поверх него.
  • Технологическая база и ограничения: платформа приложения или сайта, язык, где хранится каталог, как модуль свяжется с системами учёта и аналитикой.
  • Критерии приёмки и ответственные: кто со стороны бизнеса и ИТ принимает результат, что считаем готовым модулем, какие отчёты об использовании нужны.

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

Направления AI-разработки

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    815
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139