Реалізація розпізнавання емоцій за обличчям у мобільному додатку

Користувач дивиться відеоурок, а додаток не бачить його усмішку — емоційна аналітика в edtech втрачає до 40% даних через погане освітлення та часткову оклюзію. Ми вирішили це завдання для клієнта за допомогою гібридного підходу: геометричні дескриптори плюс тимчасова агрегація. Інтеграція розпізнава

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Реалізація розпізнавання емоцій за обличчям у мобільному додатку
Складний
~1-2 тижні

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Користувач дивиться відеоурок, а додаток не бачить його усмішку — емоційна аналітика в edtech втрачає до 40% даних через погане освітлення та часткову оклюзію. Ми вирішили це завдання для клієнта за допомогою гібридного підходу: геометричні дескриптори плюс тимчасова агрегація. Інтеграція розпізнавання емоцій за обличчям у мобільні додатки включає детекцію обличчя, вилучення мімічних ознак та класифікацію за базовими емоціями (happiness, sadness, anger, surprise, fear, disgust, neutral за моделлю Екмана). Наш досвід — понад 5 років і 30+ інтеграцій CV для edtech, ритейлу та реклами.

Як працює розпізнавання емоцій за обличчям у мобільному додатку

На iOS: VNDetectFaceLandmarksRequest та CoreML — реалізація розпізнавання емоцій

VNDetectFaceLandmarksRequest видає 76 landmarks. Цього достатньо для геометричних дескрипторів: відстань куточків губ, ступінь відкриття очей, кут брів. Поверх них навчаємо невелику CoreML-модель (MLP 3–4 шари). Такий підхід стабільніший за пряму CNN при поганому освітленні, оскільки landmarks нормалізовані під положення голови.

На Android: ML Kit Face Detection

setContourDetectionEnabled(true) дає 468 точок — повний контур обличчя. Це надмірно для емоцій, але дозволяє точніше відстежувати мімічні м'язи. Ми використовуємо subset landmarks для прискорення.

Кроссплатформена альтернатива: MediaPipe Face Landmarker

MediaPipe видає 478 landmarks + 52 blendshapes (наприклад, mouthSmileLeft, eyeBlinkRight). Blendshapes — готові семантичні дескриптори, які можна подавати безпосередньо в класифікатор. Латентність на Pixel 7 — ~15 ms. MediaPipe Face Landmarker працює в 2–3 рази швидше за ML Kit у режимі контуру, що критично для анімації реакції.

Платформа Інструмент Кількість точок Особливості
iOS VNDetectFaceLandmarksRequest 76 Працює з CoreML, нормалізація пози
Android ML Kit Face Detection 468 Контур обличчя, простий в інтеграції
Кроссплатформа MediaPipe Face Landmarker 478 + 52 blendshapes Висока швидкість, готові семантичні ознаки

Чому on-device моделі точніші в реальних умовах?

Готові моделі (HSEmotion TFLite, MobileNet FER2013) на валідації 7 класів дають 65–72%, у реальності — нижче. Це не баг, а обмеження: «нейтральне» та «задумливе» вираження важко розрізнити. Ми вирішуємо проблему двома способами:

  • Усереднення за часове вікно 2–5 секунд. Замість класифікації кожного кадру працюємо з відсотком часу позитивної/нейтральної емоції та піками здивування.
  • Фільтрація артефактів. Наприклад, низький confidence детекції обличчя (менше 0.5) відкидається, кадри з частковою оклюзією (рука, окуляри) не беруть участі в агрегації.

Порівняння точності різних підходів:

Підхід Точність (7 класів) Латентність Вимоги до даних
Готова CNN (MobileNet FER2013) 65–72% ~5 ms Тільки картинка
Геометричні дескриптори + MLP 70–78% на валідації ~2 ms Need landmarks
Тимчасова агрегація + фільтрація Стабільність у реальних умовах Дод. ~0 ms Агрегація 2–5 с

Навіщо потрібна анімація реакції та як її реалізувати?

Якщо додаток реагує на емоцію користувача (маскот в edtech, інтерактивний персонаж), критична latency. Цикл захоплення → інференс → оновлення анімації повинен вкладатися в 100 ms, інакше реакція сприймається як запізніла.

На iOS використовуємо SwiftUI + withAnimation(.spring()) для плавного переходу стану маскота. Інференс на background queue, результат через @Published в @StateObject на main actor. На Android — Animator + MotionLayout для складних переходів.

Кейс: реакція маскота на усмішку дитини

Освітній додаток для дітей. Персонаж танцює, якщо усмішка утримується >1.5 секунди. Використали MediaPipe Face Landmarker + blendshape mouthSmileLeft/Right > 0.6 як тригер. Проблема: дитина сміється з відкритим ротом — mouthOpen збивав фільтр. Додали умову: mouthSmile > 0.6 AND mouthOpen < 0.4 OR (mouthOpen > 0.4 AND jawOpen > 0.3). Хибних спрацювань стало на 40% менше.

Як впровадити розпізнавання емоцій: покрокова інструкція

  1. Аудит стеку — визначаємо, які технології вже є (камера, ML-фреймворки).
  2. Вибір підходу — iOS/Android/кроссплатформа, вибір фреймворку та моделі.
  3. Інтеграція детектора — підключення VNDetectFaceLandmarksRequest, ML Kit або MediaPipe.
  4. Калібрування класифікатора — налаштування порогів та часового вікна.
  5. Розробка анімації — зв'язок емоцій з діями персонажа.
  6. Тестування на пристроях — мінімум 5 моделей, оцінка точності та latency.
  7. Запуск аналітики — агрегація emotion scores, дашборд залученості.

Що дає аналітика залученості?

Для A/B-тестування контенту агрегуємо emotion scores по сесії. Дані — тільки числові вектори, не фото. Згода користувача — через явний opt-in (емоції відносяться до чутливих даних). Відправляємо в будь-яку аналітичну систему (Firebase, Amplitude, Яндекс.Метрика) через batch-запити раз на 10 секунд, щоб не витрачати трафік. Вартість впровадження аналітики залежить від складності інтеграції.

Технічні деталі фільтрації артефактівДля покращення якості в реальних умовах ми застосовуємо каскад фільтрів: відкидаємо кадри з confidence < 0.5, видаляємо дублікати за часовою міткою, згладжуємо emotion scores ковзним середнім (вікно 5 кадрів). Це підвищує точність агрегованих метрик на 15–20%.

Що входить в роботу

  • Аналіз стеку та консультація щодо оптимального підходу — безкоштовно.
  • Інтеграція детектора обличчя та класифікатора емоцій під ключ.
  • Кастомізація моделі на вашому датасеті (якщо потрібна висока точність під конкретний сценарій).
  • Розробка анімації реакції (маскот, інтерфейсні ефекти).
  • Налаштування аналітики залученості з дашбордом.
  • Тестування на реальних пристроях — мінімум 5 моделей для кожного форм-фактора.
  • Документація та доступ до вихідного коду, моделі та конфігурацій.

Терміни та вартість

Базова інтеграція (детектор + класифікатор + анімація) — 1–2 тижні. Якщо потрібна аналітична панель — ще 1 тиждень. Вартість розраховується індивідуально, залежно від стеку та вимог. Отримайте консультацію щодо впровадження розпізнавання емоцій у ваш мобільний додаток — зв'яжіться з нами. Замовте впровадження вже сьогодні, щоб підвищити залученість користувачів.