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

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1 услугВсе 1566 услуг
AI-система виртуальной примерки причёски
Средняя
~2-4 недели
Часто задаваемые вопросы
Направления AI-разработки
Этапы разработки AI-решения
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1218
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    853
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1047
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    825

ИИ-примерка причёсок

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

Сегментация волос: специфика задачи

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

Специализированные модели:

  • Hair-SAM / Matting Anything — сегментация с alpha matte: не бинарная маска, а float32 значения 0..1 на каждый пиксель. На краях — дробные значения, отражающие прозрачность.
  • MODNet — lightweight matting model, 35fps на мобильных. Оптимизирован именно для портретов.
  • ViTMatte — transformer-based матирование, выше качество на сложных прядях.
from matting import load_model, estimate_foreground_ml

model = load_model('vitmate_vit_b_pretrained.pth')

def segment_hair(image, trimap):
    # trimap: 0=точно фон, 128=граничная зона, 255=точно волосы
    alpha, foreground = model(image, trimap)
    return alpha  # float32 маска, 0..1

Наложение новой причёски

Два подхода:

Texture transfer — берём 3D-модель или 2D-reference целевой причёски, деформируем под форму головы пользователя (face shape analysis через 3DMM), накладываем с blending. Работает для схожих длин и форм. Проблема: если у пользователя длинные прямые, а целевая — короткое каре — оригинальные волосы нужно убрать под новую причёску, это требует inpainting кожи головы.

Генеративный подход (диффузионные модели) — более мощный:

  1. Сегментируем волосы и кожу головы
  2. Описываем желаемую причёску текстом: «short bob, brown, with bangs»
  3. Запускаем inpainting через Stable Diffusion с ControlNet (conditioning на форму лица и положение головы)
  4. Сохраняем лицо (face preservation через IP-Adapter или InstantID)

Главная сложность: сохранить идентичность человека при смене причёски. Без face preservation модель может генерировать другого человека с нужной причёской.

Окрашивание волос

Проще примерки формы: меняем цвет в пределах сегментированной маски волос. Инструменты:

  • Selective color transfer в LAB color space: сохраняем L-канал (текстуру), меняем AB (цвет)
  • Neural color transfer через AdaIN для сложных эффектов (омбре, балаяж, мелирование)
  • Балаяж/омбре: gradient mask + отдельный color transfer по градиенту от корней к кончикам
import cv2
import numpy as np

def recolor_hair(image, hair_mask, target_color_lab):
    lab = cv2.cvtColor(image, cv2.COLOR_BGR2LAB).astype(float)
    # Вычисляем средний цвет волос
    hair_pixels = lab[hair_mask > 128]
    mean_ab = hair_pixels[:, 1:].mean(axis=0)
    # Сдвигаем AB-каналы к целевому цвету
    shift = target_color_lab[1:] - mean_ab
    lab[:, :, 1:] += hair_mask[..., None] / 255.0 * shift
    lab = np.clip(lab, 0, 255).astype(np.uint8)
    return cv2.cvtColor(lab, cv2.COLOR_LAB2BGR)

Real-time vs фото-режим

Real-time (видео): MODNet для сегментации + texture-based recoloring. Ограничение: сложные форм-изменения нереалистичны в реальном времени.

Фото-режим: полный pipeline с ViTMatte + диффузионной генерацией. Время: 3–15 секунд в зависимости от метода.

Сроки

Базовый модуль окрашивания (real-time, все типы цвета): 5–8 недель. Полная примерка с изменением формы + генеративный подход: 12–18 недель. Стоимость рассчитывается индивидуально.