February 15

Фиксируем эмоциональный отклик бесплатно без регистрации и sms

Статья для моего telegram канала proUXR

Сначала небольшой дисклеймер: прошу не относиться к статье очень серьезно, для меня это пока не прикладная история, а скорее любопытный кейс.

Итак, о чем пойдет речь? После прочтения я предлагаю вам поиграть в нейромаркетолога и проанализировать выражение лица на видеозаписи. Все, что вам для этого потребуется, – ChatGPT и немножко Python-кода (не переживайте, с его написанием легко справятся ChatGPT или DeepSeek, вам придется только разобраться, как запустить код).

В достижении цели нам поможет фреймворк DeepFace

Библиотека DeepFace – это легковесное решение для распознавания лиц и анализа их атрибутов с использованием передовых моделей глубокого обучения. Она поддерживает множество популярных моделей и методов, включая VGG-Face, FaceNet, OpenFace, DeepID, ArcFace, Dlib, SFace и GhostFaceNet.

DeepFace работает локально, без необходимости в облачных сервисах. Он использует предобученные модели, которые можно запускать на локальном компьютере с CPU или GPU.

📌 Что нужно для работы?

  1. Python (рекомендуется 3.7+).
  2. Установка через pip: pip install deepface
  3. Дополнительные библиотеки (устанавливаются автоматически):
    • tensorflow
    • keras
    • opencv-python
    • numpy
    • pandas
    • matplotlib
    • dlib (опционально для некоторых моделей)

🔥 Ускорение на GPU

Если у вас есть видеокарта NVIDIA (например, RTX 3070 как в моем случае), то DeepFace может работать быстрее с использованием CUDA. Для этого нужно установить:

pip install tensorflow-gpu

🚀 Локальный запуск

После установки библиотека готова к использованию.

🔹 Основные возможности:

  1. Распознавание лиц – идентификация лиц с использованием различных предобученных моделей.
  2. Верификация лиц – определение, принадлежат ли два изображения одному человеку.
  3. Построение эмбеддингов – представление лиц в виде многомерных векторов.
  4. Анализ атрибутов лица:
    • возраст (±4.65 года точность MAE)
    • пол (97.44% точность)
    • эмоции (грусть, радость, гнев, страх и др.)
    • раса (азиат, белый, латиноамериканец и др.)
  5. Детекция и выравнивание лиц – улучшение точности за счёт нормализации изображений.
  6. Антиспуфинг – определение, является ли изображение реальным.
  7. Работа с видео – потоковый анализ лиц в реальном времени.
  8. API и интеграция – возможность работы через REST API и Docker-контейнеры.

Нас интересует четвертый пункт, атрибуты эмоций

DeepFace распознаёт следующие эмоции:

  1. angry (злость)
  2. disgust (отвращение)
  3. fear (страх)
  4. happy (радость)
  5. sad (грусть)
  6. surprise (удивление)
  7. neutral (нейтральное выражение лица)

Предположим, что на входе у нас есть видео с изображением лица. Лично я просто сделал селфи видео и покривлялся на камеру. Дальше нам нужно установить все что нужно, я предпочитаю работать в Jupyter Notebook, в папке нашего проекта будет видеозапись и скрипт.

Результатом нашей работы будет Python-скрипт, который извлекает кадры из видео, определяет выраженность каждой из эмоций на лице в кадре и строит график с динамикой значений эмоций.

Вот что получилось у меня:

Очевидно, весь процесс можно было описать и подробнее, но у меня не было цели сделать инструкцию. Я предлагаю взять эту идею за основу и самостоятельно поэкспериментировать с ChatGPT. Если вдруг у кого-то возникнет желание собрать больше данных и вместе попилотировать этот инструмент, напишите мне, пожалуйста, в телегу, это будет интересный опыт!

Другие статьи в моем канале: https://t.me/proUXR