← Назад к списку статей

Детектор эмоций (распознавание эмоций)

Распознавание эмоций с помощью искусственного интеллекта способно читать выражение лица за доли секунд

Человек использует множество способов для выражения своих эмоций: жесты, язык тела, интонации и т.д. Но наиболее экспрессивным средством служит, конечно же, выражение лица: посмотрев на сморщенный носик, нахмуренные брови или широкую улыбку, мы можем многое сказать о собеседнике и его состоянии, ведь всё это – один из нерушимых столпов всей невербальной коммуникации. Все мы учимся узнавать и интерпретировать такие выражения с момента появления на свет и со временем делаем это, совершенно не задумываясь.
Теперь же, когда стало ясно, что искусственный интеллект (особенно нейронные сети) тоже способен учиться, возникает логичный вопрос: «Можно ли научить его разбираться в человеческих эмоциях?» Более того, сможет ли он обучаться этому быстрее нас? Ответ, несомненно, да, но стоит помнить, что, как уже упоминалось ранее, мимика не единственный способ выражения эмоций, поэтому, анализируя лишь лицо, не удастся добиться стопроцентных результатов.

Начиная с версии 18.11.21, в Xeoma входит модуль Детектор лиц (Эмоции), работающий в сочетании с Детектором объектов. Он ищет в кадре лица и оценивает состояние каждого из них по 7 шкалам:

  • счастье
  • удивление
  • раздражение
  • отвращение
  • испуг
  • печаль
  • нейтральность

Все они отражаются на лице в разной степени, на основании которой распознавание эмоций присваивает им процент (от 0 до 100). Тот из семёрки, кто набрал самый высокий процент, и принимается за общее состояние – Настроение. На экране, впрочем, присутствуют все подсчёты, поэтому видны и те состояния, чей процент ниже. Рассмотрим несколько примеров:

Распознавание эмоций в программе для видеонаблюдения Xeoma: нейтральное выражение лица

Настроение определено как Нейтральность, хотя и лёгкий намёк на печаль от детектора не ускользнул (23%).

В программе для видеонаблюдения Xeoma есть распознавание эмоций, определяющее 7 основных эмоций

Здесь распознавание эмоций с помощью искусственного интеллекта определяет настроение как Удивление. Обратите внимание, что вторая по показателям шкала это Испуг (23%) – это вполне типичный случай, т.к. выражения лиц для обеих этих эмоций имеют много общего. Детектор разницу видит.

Мощный и быстрый детектор эмоций впервые в России

Вы уже могли заметить, что среди параметров, перечисляемых под каждым лицом, детектор указывает Имя – это порядковый номер, присваиваемый каждому лицу в кадре (начинается с 0). Здесь всего 2 лица, поэтому и пронумерованы они 0 и 1. Стоит заметить, что для правильного определения эмоций не всегда нужно лицо в анфас. Здесь в качестве настроения, конечно же, определилось Счастье, всё достаточно очевидно.
Возьмём немного более сложный пример:

Распознавание эмоций работает, даже когда лицо видно не полностью

В данном случае волосы частично скрывают овал лица, присутствует растительность на лице, в кадре рядом с лицом находятся объекты того же цвета, что и лицо, но не являющиеся его частью (рука) – всё это усложняет распознавание. Тем не менее, детектор выносит чёткий вердикт – Удивление.

Теперь рассмотрим настройки этого модуля подробнее:

Правильные настройки обеспечат лучший уровень распознавания эмоций

Использовать поток из архива (высокого разрешения) для детекции – позволяет детектору анализировать поток из архива вместо потока на просмотр (почему эти потоки должны различаться).
Пост-запись – указывает, как долго архив должен продолжать записывать видео после того, как детектор прекратил реагировать.
Дальность обнаружения лиц – задаёт примерную дистанцию между самой камерой и лицом; чем меньше лицо в кадре – тем выше бегунок.

Главный же функционал модуля задаётся галочками Реагировать … . Для каждой эмоции есть своя галочка, но высчитываются они вместе. Если вам знакома компьютерная логика, то вы можете считать, что все эти галочки объединены логическим И (или конъюнкцией). Если же не знакома, то вот как это работает:

  • Если выбрана только одна эмоция – детектор реагирует только на эту одну эмоцию, игнорируя все остальные;
  • Если выбраны 2 эмоции – детектор реагирует только на те лица, которые выражают ОБЕ эти эмоции;
  • Если выбраны 2 эмоции – детектор не реагирует на лица, выражающие только одну из этих эмоций.

Под каждой галочкой (когда она выставлена) есть 2 бегунка, задающих минимальный и максимальный процент для реагирования. Рассмотрим на примерах:

Настройки детектора эмоций программы Xeoma

Здесь детектор эмоций ищет в кадре только нейтральность и печаль. Нейтральность у данного лица 57% (между 40% и 100%); печаль – 19% (между 15% и 100%) – поэтому детектор пропускает, оба условия соблюдены.

Распознавание эмоций Xeoma

Здесь искусственный интеллект ищет в кадре 3 эмоции: раздражение, отвращение и печаль. Раздражение – 61% (между 50% и 100%); отвращение – 4% (не между 15% и 100%); печаль – 23% (между 20% и 100%) – поэтому детектор не пропускает, ведь только 2 из 3 условий выполняются (раздражение и печаль).

Данная логика применима ко всем комбинациям эмоций. Однако существуют отдельные сценарии, которые не приведут к хорошим результатам:

  1. Одновременный поиск противоположных эмоций – счастье и раздражение, к примеру, почти никогда не встречаются на одном лице, так что, поставив обе эти галочки, вы не позволите модулю пропускать поток вообще.
  2. Одновременный поиск всех эмоций – сколь бы выразительным ни было лицо, всему есть пределы; оно не сможет выказывать все 7 эмоций одновременно, поэтому постановка всех галочек тоже не позволит модулю пропускать поток при любых условиях.

Реагировать только на указанное количество лиц в кадре – задаёт, сколько лиц (минимум и максимум) должно быть в кадре, чтобы детектор среагировал.
Реагировать только на указанное процентное соотношение выбранных эмоций от общего числа распознанных лиц – так модуль собирает статистику: детектор проверит все лица в кадре (до 200 штук) на предмет наличия нужных эмоций и вычислит долю тех, что удовлетворяют условиям; если полученный процент лиц входит в заданные бегунками рамки – детектор пропускает. Проще говоря, эта опция показывает, сколько из людей в кадре сейчас счастливы или грустны, и т.д.
Полный путь к внешней программе для обработки результатов распознавания – это поле предназначено для интеграции: можно создать собственный скрипт или базу данных, которая будет хранить и обрабатывать результаты работы детектора, и указать здесь путь до программы, которая открывает этот скрипт/базу данных (например, Python, PHP и т.д.).
Параметры запуска внешней программы – работает в сочетании с предыдущим полем; здесь можно указать путь до самого скрипта/базы данных (например, my_script.py, emotion_database.php и т.д.) и задать для Xeoma параметры, которые нужно передать, с помощью макросов. Полный список этих макросов можно посмотреть, зайдя в Информация о запуске внешней программы.
Запускать внешнюю программу не чаще, чем – задаёт частоту, с которой можно обращаться к скрипту/базе данных; поскольку одно и то же лицо может находиться в кадре некоторое время, обычно нет необходимости отправлять данные о нём постоянно, поэтому этот интервал можно увеличить.
Сохранять данные в CSV-отчёт – создаёт в указанной директории файл, содержащий лог всех сработок детектора, который в дальнейшем можно анализировать.

Существует множество сфер, в которых детектор эмоций найдёт себе применение: предотвращение массовых беспорядков, безопасность на дороге, статистика и, конечно же, розничный маркетинг. В том, что касается массовых беспорядков, большое количество лиц в кадре с высоким показателем раздражения или страха – явный признак суматохи или потасовки. В машине: искусственный интеллект, постоянно наблюдающий за эмоциональным состоянием водителя, может успокаивать его в случае сильного стресса, а также не давать ему уснуть за рулём. Статистика и маркетинг прекрасно работают вместе: зная, как часто посетители выражают положительные эмоции, глядя на тот или иной товар, маркетолог сможет легко определить, удачно ли выбрано место для товара (бросается в глаза), достаточно ли он релевантен для выбранной аудитории. Это особенно актуально для новых видов товара.

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

ДИСКЛЕЙМЕР: В процессе создания данной статьи не пострадали ничьи лица и эмоции. Все лица являются собственностью их владельцев.

24 декабря 2018

Читайте также:
Детектор лиц
Распознавание автономеров