Реалізація 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 за реалістичністю.
Ключові техніки рендеринга
Помада. Меш губ → UV-розвертка → текстура з кольором помади, blended через multiply/screen blend mode з вихідним зображенням камери. Прозорість регулює насиченість тону. Краї — feather через gaussian blur по масці.
Тіні для век. Gradient texture по веку з урахуванням кривизни поверхні. Головна складність — при опусканні взгляду веко закривається та тінь повинна деформуватися разом з ним. Без коректної деформації тінь «відшаровується» від шкіри.
Тональний крем / консилер. Не просто overlay — потрібен skin tone matching. Алгоритм аналізує пікселі шкіри поза областю нанесення, визначає undertone (warm/cool/neutral) та коригує колір продукту під реальний тон. Без цього тональний крем виглядає маскою.
Live Camera проти Photo Mode
Для live preview через камеру — 30 fps мінімум, іначе затримка робить примерку некомфортною. 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 місяців. Вартість розраховується індивідуально.







