AI Віртуальна примерка причіски у мобільних додатках
Віртуальна примерка причіски складніша, ніж примерка макіяжу — волосся не плоска текстура на обличчі, а тривимірний об'єкт з тисячами пасм, який рухається при повороті голови, правильно покриває плечі та реагує на освітлення. Реалізації, що наклеюють 2D-картинку причіски на голову, одразу видно — це не працює. Потрібно або 3D hair mesh, або нейросетевий синтез.
Два принципово різних підходи
3D Hair Mesh + Face Tracking
Працює в реальному часі. Face tracking (ARKit ARFaceAnchor або MediaPipe) визначає положення та орієнтацію голови. 3D-модель причіски — меш зі skeleton, прив'язаний до head transform. При повороті голови меш повертається разом.
Технічні складності:
-
Hair physics. Статичний меш виглядає пластиковим — потрібна симуляція руху пасм.
SCNPhysicsBodyна кожне пасмо — катастрофа для продуктивності. Рішення: vertex shader симуляція через Metal — кожне пасмо — сплайн з control points, симулюємо spring dynamics на GPU -
Hair-to-face occlusion. Чубок повинен покривати лоб. Створіть маску з depth face geometry — пікселі за площиною обличчя усікаються. На ARKit з TrueDepth: використовуйте
ARFaceGeometryяк occluder geometry зSCNMaterial.colorBufferWriteMask = [] - Підбір розміру. Причіска повинна сідати на голову конкретного користувача. Використовуйте міжзрачкову відстань як baseline для масштабування моделі
Нейросетевий синтез зображення
Не реальний час — для статичного фото або режиму "примерка за фото". Image-to-image модель: вхідне фото + обрана причіска → синтезоване фото з новою причіскою. Якість значно вища, ніж 3D mesh, але latency 1–5 секунд.
Реалізація: Core ML (iOS) або TFLite (Android) з конвертованою моделлю. Моделі: SAM (Segment Anything Model) для сегментації голови + Stable Diffusion Inpainting для генерації нової причіски в сегментованій зоні. Або спеціалізовані моделі — HairCLIP, HairstyleGAN.
Серверний inference: моделі 500 MB–2 GB не підходять для on-device. Надішліть фото на GPU-сервер (A100 / H100), отримайте результат за 1–3 секунди. Стрімінг частин не застосовується (ціле зображення), але progress indicator обов'язковий.
Сегментація волосся
Обидва підходи потребують точної сегментації волосся на вхідному кадрі — відокремити волосся від фону та обличчя. Моделі: MediaPipe Hair Segmentation, DeepLabV3+ файнтюнена на hair dataset, BiSeNet. Метрика якості — mIoU на тестовому датасеті, прийнятне від 85%+.
На iOS — конвертуйте в CoreML через coremltools, inference через VNCoreMLRequest. Важливо: сегментаційна маска повинна оновлюватися кожен кадр для real-time режиму — потрібна модель з inference < 20 мс на A15. U-Net lite або MobileNetV3-based сегментатор справляється.
UX та каталог причесок
Каталог причесок — 3D-моделі (для mesh-підходу) або reference images (для neural-підходу). Фільтри: довжина, колір, тип (прямі/кудрявої/хвилясті). Вибір кольору причіски: змінюємо vertex color / albedo texture через HSV-трансформацію. Один і той же меш — різні кольори — без окремих моделей на варіант.
Фарбування волосся в нестандартний колір (ombre, highlights) — окрема задача: gradient vertex color по довжині пасма, спеціальна UV-раскладка для gradient map.
Часова шкала
Real-time 3D hair mesh примерка з face tracking для iOS: 8–12 тижнів. Нейросинтез з серверним inference для статичних фото + on-device сегментація: 6–10 тижнів. Комбінований продукт (real-time 3D + neural для фінального результату) з кроссплатформою: 4–7 місяців. Вартість розраховується індивідуально.







