Реализация AR-примерки косметики (виртуальный макияж)
Виртуальный макияж — технически самый требовательный сценарий face AR. Помада должна точно повторять контур губ, тени — ложиться на складки век, а тональный крем — смешиваться с реальным тоном кожи. Пользователь моментально замечает, если граница «плывёт» при повороте головы на 20°. Именно поэтому большинство производителей косметики не пишут этот стек самостоятельно — они берут специализированный SDK.
Почему ARKit/ARCore недостаточно для косметики
ARKit ARFaceAnchor даёт 1220-точечную сетку лица (geometry.vertices) и blendshapes (blendShapes) для выражений. Этого достаточно для масок и AR-фильтров. Для помады — уже нет: контур губ в ARKit face mesh — это ~80 точек, что при рендеринге даёт угловатую геометрию, особенно заметную на тонких губах.
Специализированные SDK работают с 400-900 точками только для губ, отдельно трекают верхнее и нижнее веко, переносицу, область щёк.
Специализированные SDK для beauty AR
Perfect Corp YouCam SDK — индустриальный стандарт. Поддерживает 120+ косметических эффектов из коробки: помада, румяна, консилер, тушь, тени, контуринг. Своя ML-модель face mesh с 478 точками. Нативный SDK для iOS (Swift/ObjC) и Android (Kotlin/Java). Лицензия enterprise, цена по запросу.
ModiFace (L'Oréal) — аналогичный уровень. Доступен через L'Oréal Group API и закрыт для сторонних брендов без партнёрства.
Banuba Face AR SDK — гибкая альтернатива с возможностью кастомизации эффектов через Banuba Effect Player. Позволяет самостоятельно создавать эффекты в редакторе. Публичная лицензия от $149/мес, enterprise — по запросу. Поддерживает iOS, Android, Web.
Кастомная реализация через MediaPipe Face Mesh: 468 точек, работает на iOS и Android через MediaPipe Tasks. Бесплатно, open source. Потребует разработки собственного рендерера для наложения косметики — это 3-5 месяцев работы и значительно уступает специализированным SDK по реалистичности.
Ключевые техники рендеринга
Помада. Mesh губ → UV-развёртка → текстура с цветом помады, blended через multiply/screen blend mode с исходным изображением камеры. Прозрачность регулирует «насыщенность» тона. Края — feather через gaussian blur по маске.
Тени для век. Gradient texture по веку с учётом кривизны поверхности. Главная сложность — при опускании взгляда веко закрывается, и тень должна деформироваться вместе с ним. Без корректной деформации тень «отслаивается» от кожи.
Тональный крем / консилер. Не просто overlay — нужен skin tone matching. Алгоритм анализирует пиксели кожи вне области нанесения, определяет undertone (warm/cool/neutral) и корректирует цвет продукта под реальный тон. Без этого тональный крем выглядит маской.
Live Camera vs Photo Mode
Для live preview через камеру — 30 fps minimum, иначе задержка делает примерку некомфортной. Perfect Corp SDK держит 30 fps на iPhone X+, 25 fps на Android с Snapdragon 845+. На более слабых Android-устройствах производительность деградирует — планируйте fallback на photo mode.
Photo mode: пользователь выбирает фото из галереи, получает статичный рендер макияжа. Технически проще (нет требований к realtime), результат точнее за счёт большего времени на обработку.
Сроки и стратегия
Интеграция Perfect Corp или Banuba SDK с базовым набором эффектов (помада, тени, румяна) — 2-3 недели. Разработка UI выбора продуктов из каталога, сохранения/шаринга — ещё 1-2 недели. Кастомная реализация на MediaPipe (если SDK по ценовым причинам не подходит) — от 3 месяцев. Стоимость рассчитывается индивидуально.







