Реализация AI-виртуальной примерки макияжа в мобильном приложении

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

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Реализация AI-виртуальной примерки макияжа в мобильном приложении
Сложный
~1-2 недели
Часто задаваемые вопросы

Почему виртуальная примерка макияжа врёт по цвету и тормозит

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

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

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

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

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

Эффект от корректной примерки: точность, скорость, нагрузка

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

Точность подбора тона

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

Время отклика примерки

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

Нагрузка на устройство

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

Меньше отказов «лицо не распознано»

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

Способы реализации примерки: что и где считать

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

Отдельная развилка — поставлять примерку своим кодом или встраивать готовый модуль примерки. Ниже — как эти варианты ведут себя на живых проектах.

Вариант Когда подходит Ограничения
Отрисовка на устройстве Офлайн-сценарии, поток без задержки, слабый канал Разный парк устройств: на слабых аппаратах приходится упрощать качество текстур
Серверная отрисовка Максимальное качество синтеза, сложные образы и переходы Задержка отклика и нагрузка, растущая с числом активных пользователей
Встраиваемый модуль примерки Нужен быстрый запуск без своей команды по графике Рамки чужого интерфейса, обновления по чужому графику, привязка к поставщику
Гибридная схема обработки Нужен компромисс: отклик на клиенте, качество с сервера Сложнее контур: синхронизация версий моделей и контроль канала

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

Этапы работы: от аудита камеры до передачи сборки

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

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

Комплект передачи: схемы, регламенты, документация

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

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

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

Кейс магазина косметики: метрики до и после внедрения

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

До: треть попыток обрывалась на распознавании

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

После: отклик в реальном времени

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

Что делать, если в приложении уже есть камера и фильтры

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

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

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

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

Технические сомнения: точность цвета, свет, нагрузка

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

Насколько точно передаётся оттенок при разном свете?

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

Работает ли примерка без сети?

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

Что на старых и слабых устройствах?

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

Как обновляется палитра оттенков?

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

Обсудим задачу: разберём приложение и вернёмся с планом

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

Что нужно от вас для старта проекта:

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

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

Наши компетенции:

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

  • Разработка мобильного приложения для компании FEEDME
    Разработка мобильного приложения для компании FEEDME
    1010
  • Разработка мобильного приложения для компании XOOMER
    Разработка мобильного приложения для компании XOOMER
    903
  • Разработка мобильного приложения для компании RHL
    Разработка мобильного приложения для компании RHL
    1332
  • Разработка мобильного приложения для компании ZIPPY
    Разработка мобильного приложения для компании ZIPPY
    1180
  • Разработка мобильного приложения для компании Affhome
    Разработка мобильного приложения для компании Affhome
    1107
  • Разработка мобильного приложения для компании FLAVORS
    Разработка мобильного приложения для компании FLAVORS
    714