AI Virtual Makeup Try-On System

We design and deploy artificial intelligence systems: from prototype to production-ready solutions. Our team combines expertise in machine learning, data engineering and MLOps to make AI work not in the lab, but in real business.
Showing 1 of 1 servicesAll 1566 services
AI Virtual Makeup Try-On System
Medium
~2-4 weeks
FAQ
AI Development Areas
AI Solution Development Stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1212
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    852
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1041
  • image_logo-advance_0.png
    B2B Advance company logo design
    561
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    822

ИИ-примерка макияжа в реальном времени

Конверсия в интернет-магазине косметики растёт на 25–35% при наличии AR-примерки — пользователь видит, как помада или тени выглядят на его лице, и принимает решение быстрее. Технически это задача face landmark detection + texture rendering + real-time compositing.

Пайплайн виртуальной примерки

Шаг 1: Face mesh — MediaPipe Face Mesh даёт 468 ключевых точек лица в реальном времени (~12ms на CPU, ~3ms на GPU). Точки покрывают все зоны для косметики: губы (32 точки), веки (60 точек), брови (20 точек), щёки. На мобильных устройствах: MediaPipe через TFLite, ~5ms на A15 Bionic.

Шаг 2: 3D face model — из 2D landmarks реконструируем 3D-форму лица через 3DMM (3D Morphable Model) или dense face alignment. Это нужно для корректного нанесения текстуры с учётом перспективы и поворота головы.

Шаг 3: Texture application — нанесение макияжа как texture overlay с blending:

  • Помада: заполнение полигонов губ, alpha blending 0.7–0.9
  • Тени: мягкий gradient на веках, multiply/overlay blending mode
  • Румяна: gaussian softblend на polygon щёк
  • Карандаш: thin stroke вдоль контура

Шаг 4: Lighting adaptation — цвет макияжа должен «жить» в реальном освещении. Оценка ambient light из кадра (средний тон нейтральных зон — лоб, нос) и умножение на color temperature correction matrix.

# MediaPipe face mesh + makeup overlay
import mediapipe as mp
import cv2
import numpy as np

mp_face_mesh = mp.solutions.face_mesh
face_mesh = mp_face_mesh.FaceMesh(
    static_image_mode=False,
    max_num_faces=1,
    refine_landmarks=True,  # ирис и контур губ высокого разрешения
    min_detection_confidence=0.7
)

def apply_lipstick(frame, landmarks, color_bgr, alpha=0.75):
    h, w = frame.shape[:2]
    # Индексы точек контура губ (MediaPipe lip indices)
    UPPER_LIP = [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291]
    LOWER_LIP = [61, 146, 91, 181, 84, 17, 314, 405, 321, 375, 291]
    lip_pts = [(int(landmarks[i].x * w), int(landmarks[i].y * h))
               for i in UPPER_LIP + LOWER_LIP[::-1]]
    mask = np.zeros(frame.shape[:2], dtype=np.uint8)
    cv2.fillPoly(mask, [np.array(lip_pts)], 255)
    colored = np.zeros_like(frame)
    colored[:] = color_bgr
    return cv2.addWeighted(frame, 1-alpha, colored, alpha, 0,
                            dst=np.where(mask[..., None] > 0,
                                         cv2.addWeighted(frame, 1-alpha,
                                                         colored, alpha, 0),
                                         frame))

Фотореалистичность: где сложно

Зубы и отражения. При открытом рте помада должна корректно заканчиваться на внешнем контуре губ, не закрашивая зубы. Рефайнд контур MediaPipe + tooth detection маска.

Текстура кожи. Простой flat-color overlay выглядит неестественно — помада «плоская». Реалистично: сохраняем HSV-структуру текстуры кожи (morph texture transfer), меняем только hue/saturation компоненту. Метод: LAB color space transfer — меняем A/B каналы (цвет), сохраняем L (яркость/текстуру).

Быстрые движения. При резком повороте головы или моргании facial landmark модель дает temporal jitter — контур «прыгает» на 2–4 пикселя. Temporal smoothing через Kalman filter на координатах landmarks — устраняет дрожание, сохраняет отзывчивость.

Мобильная и веб-реализация

Веб: MediaPipe JavaScript + WebGL для рендеринга. Latency на современном смартфоне в браузере: 30–50ms на кадр (20–30fps).

iOS/Android: TFLite + Metal/Vulkan для рендеринга. 60fps на устройствах 2021+ года.

Backend-режим: для фото-примерки (не real-time) обработка на сервере с ONNX Runtime + OpenCV. Время на фото: 200–500ms.

Сроки

Базовая примерка помады + теней (real-time, веб + мобайл): 6–10 недель. Полный модуль (все продукты + AR-эффекты): 12–18 недель. Стоимость рассчитывается индивидуально.