Тестим API от Microsoft — распознавание эмоций

emotion-detector-demo-logo

Найти лицо на фотке может сейчас почти любая «мыльница», а вот понять, что выражает это лицо — это уже шаг вперед. Microsoft в рамках проекта Oxford предлагает демонстрацию своего алгоритма распознавания эмоций на фотографиях.

Любой желающий может закачать фотку и получить результат работы API Emotion Recognition (распознавание эмоций).

Не знаю сколько будет висеть демка для тестирования, вот ссылка — www.projectoxford.ai/demo/Emotion.

На каждой фотографии производится поиск лиц (максимум до 64), которые потом помечаются на изображении рамочкой. Т.е. в обработку можно запихнуть весьма серьезные коллективные фотки. Есть ограничения по разрешению картинки — до 4х мегапикселей. При использовании современных мыльниц, фотку скорее всего придется уменьшать или обрезать.

Эмоция в терминах API — это некий 8-мерный вектор. Для каждого найденного лица на фотке мы получаем 8 базовых составляющих эмоции:

  • Anger (Гнев),
  • Contempt (Презрение),
  • Disgust (Отвращение),
  • Fear (Страх),
  • Happiness (Счастье),
  • Neutral (Обычный) — эдакий покер-фейс,
  • Sadness (Печаль),
  • Surprise (Удивление)

Нормировка произведена так, чтобы в сумме компоненты давали единицу.

Простые тесты распознавания эмоций

Для начала посмотрим как алгоритм распознаёт и оценивает самые очевидные варианты. Благо, под рукой всегда кто то вертится для экспериментов. :)

happiness

Практически вся 1 — это счастье. Согласен, Лиза очень довольная тут.

anger

Тут я попросил свою ассистентку изобразить гнев. Но ей было почему то очень весело, что и увидел умный алгоритм, распределив эмоции между гневом (0.46) и счастьем (0.53).

sadness

С печалью вышло получше, т.к. перед нами опытная хныкалка. Алгоритм почти поверил Рите и дал оценку в 0.69 балла. Тоже согласен.

poker-face

А тут редкая фотка, где Леха примеривает покер-файс. Алгоритм выставляет почти единицу. Согласен. Знаю, что Леха почитывает мой блог, ему будет приятно увидеть здесь себя. :)

Усложняем тесты

almost-happy

Я загрузил вместо фото — рисунок. Видим, что был найден только один персонаж. Мне кажется, счастье этого малыша переоценено программой (0.76). На мой взгляд, это больше Нейтральное выражение лица.

gitler-anger

Черно-белое фотографическое изображение Гитлера. Что это? Он щурится от солнца или действительно так зол? Программа тоже сомневается : ярость (0.55) + отвращение (0.27). Пожалуй, я соглашусь с вердиктом.

will-smit-surprised

Уил Смит удивлен (0.99) способностям алгоритма. Думаю, как актер он способен на любое выражение лица.

Алгоритму не важна ни раса, ни возраст персонажа (я вообще то, ещё и Эйнштейна прогонял с его высунутым языком).

Групповой снимок

group

Алгоритм нашел девушку как бы она не закатывала глаза и поджимала губы.

1 и 5 почти имеют почти одинаковое нейтрально-доброжелательное выражение, что и отметил алгоритм (примерно — 70 нейтральная компонента, 30 — счастье).

2 и 4 были распознаны отлично — соответственно получили по единице удивление и счастье.

3я пикча алгоритмом интерпретирована не верно (нейтраль — 0.87). Оставшаяся доля распределена между яростью, отвращением и презрением, т.е. в принципе в том спектре эмоций, которые и ожидаются. Но доля их очень мала. Возможно, это связано с не очень высокой детализацией изображения, иначе алгоритм принял бы верное решение.

6я — картинка алгоритмом была не понята (0.96 — нейтраль). Я тоже не понял это выражение лица, но оно точно не нейтральное. Возможно, не хватает нужной эмоциональной компоненты — что то вроде раздражения или озабоченности. При этом — «губки бантиком» — баловство.

7я картинка — это должно быть сомнение или что то ещё из того спектра эмоций, которыми не владеет алгоритм (покерфэйс — 0.52, счастье — 0.37 и презрение — 0.09).

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

9 — после серии неудача, алгоритм берет реванш на последней картинке. Программа посчитала, что это ярость (0.52) + печаль (0.21). Соглашаюсь.

Итоги

Ну что ж… молодцы! Но, надо ещё много работать.

Алгоритм, скорее всего, пользуется какими то «геометрическими» построениями, основываясь на характерной мимике. Обнаружение лиц и их эмоций получается только в ан-фас (в профиль не находит даже лица).

8 эмоций, как мы увидели — маловато для полноценного спектра. Но это только начало. Вполне возможно, что экспериментаторы пробовали и больший спектр эмоций, но алгоритм начинал давать слишком размытые результаты.

Никто не мешает и вам попробовать поиграть с распознавателем. ;)

Мало букафф? Читайте есчо !

Создание ветки на основе существующей в GIT

Июль 30, 2018 г.

Создание новой ветки - это рутинная операция в GIT. Как указать на основе какой существующей ветки нужно создать новую? По умолчанию, за основу будет взята текущая ветка, в которой вы находитесь. Например: [crayon-6a762245b8612812120277/] Сначала ...

Читать

В очередной раз стал папой

Сентябрь 29, 2010 г.

Как говаривал В.И.Ленин - "свегшилось!". В этот раз роды были стремительными, чуть в "скорой" не родили. Оно и не удивительно - рожаем уже в третий раз. А как показывает мировая практика : каждые следующие роды проходят быстрее. Нужно отметить, ...

Читать

Выбираем грушу, крепим к потолку в квартире

Январь 28, 2013 г.
Анкер болт с кольцом

Задача простая, но жизненная. А мне уже удалось накопить удачный опыт (лет за 10), так что делюсь. Груши у меня тоже когда то были (речь идеи о боксерском ...

Читать

Валидатор ip адреса на PHP

Ноябрь 13, 2015 г.

Пример хелпера-валидатора на PHP для проверки формата ip адреса. [crayon-6a762245b886b608329976/] Функция проверяет является ли формально строка ip-адресом по протоколам ipv4 или ipv6. Возвращает булево значение. Возможно применение этого кода ...

Читать
 

Комментарии к «Тестим API от Microsoft — распознавание эмоций»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: