В статье представлены основные этапы разработки системы автоматического распознавания лицевых эмоций на основе нейронных сетей. Описываемая система способна распознать шесть базовых типов эмоций (удивление, страх, отвращение, злость, радость, грусть) на статическом изображении.
Ключевые слова: распознавание эмоций, нейронные сети.
Задача автоматического распознавания лицевых эмоций является актуальной в наши дни, имеет большое количество применений в различных сферах человеческой деятельности и привлекает внимание исследователей со всего мира. Так, распознавание эмоциональных реакций может использоваться в маркетинге, для повышения общественной безопасности, для улучшения степени эффективности взаимодействия человека и компьютера. Ежегодно в рамках международной конференции ACM проводится соревнование “Emotions recognition in the wild”, в рамках которого участникам необходимо разрабатывать решения задач связанных с автоматическим распознаванием эмоций.
Обзор существующих подходов
Алгоритм работы большинства методов, используемых в рамках решения задачи распознавания лицевых эмоций, состоит из следующих этапов: сбор и предобработка данных, извлечение и выбор признаков, классификация и принятие решения.
При использовании некоторых современных методов машинного обучения, таких как глубокое обучение, на вход алгоритму подается само изображение, а не набор признаков: выбор признаков и дальнейшее определение преобладающей на снимке эмоции происходит непосредственно внутри нейронной сети. В других подходах извлечение признаков и последующая классификация являются отдельными, не связанными между собой задачами, каждая из которых может быть решена одним из возможных способов. Так, для извлечения признаков в подобных подходах могут использоваться такие методы как: Active Shape Model, Local Binary Pattern, вейвлеты Габора. Решение задачи классификации же может быть осуществлено с помощью метода опорных векторов, случайного леса и других.
В рассматриваемой системе решение задачи автоматического распознавания эмоций осуществляется сверточной нейронной сетью.
Обучающая выборка
При обучении нейронной сети применялись снимки из следующих датасетов: Fer2013 [1], CK+ [2], JAFFE [3].
Перед передачей данных нейронной сети для обучения, необходимо осуществить их предобработку. На первом этапе на снимках обучающей выборки с помощью метода Виолы-Джонса осуществляется детектирование лиц: изображения, на которых не найдено лицо, удаляются из набора данных, а оставшиеся обрезаются по области лица. Кроме того, из выборки удаляются искаженные и размытые изображения, а также снимки, на которых часть лица закрыта очками или руками. На следующем этапе выполняется масштабирование изображений и приведение их к единому размеру 64х64. Такой размер с одной стороны — не искажает изображения, а с другой — позволяет сети достаточно быстро обучаться. На последнем этапе ко всем снимкам применяется метод глобальной нормализации контраста, который преобразует изображение таким образом, чтобы значение контраста на нем было постоянным.
Нейронная сеть
Для решения задачи автоматического распознавания эмоций в рассматриваемой системе используется сверточная нейронная сеть. Это особая архитектура нейронных сетей, основным предназначением которой является эффективное распознавание образов.
В процессе разработки системы была выбрана следующая архитектура сети: нейронная сеть состоит из 6 сверточных слоев. После второго, четвертого и шестого сверточных слоев находятся слои пулинга с фильтром размера 2х2, обеспечивающие уплотнение карт признаков. Перед полносвязным расположен слой выравнивания, являющийся соединительным узлом между слоями. Для борьбы с переобучением при обучении нейронной сети применялись следующие методы: Dropout [4], L2-регуляризация. Кроме того, для ускорения обучения применялся метод батч-нормализации [5].
Последний слой имеет функцию активации softmax:
, где
Z — исходный вектор,
K — размерность исходного вектора.
Благодаря данной функции сеть возвращает распределение вероятностей по классам.
В качестве функции потерь использовалась перекрестная энтропия:. Функция определяет расстояние между распределениями вероятности на выходе нейронной сети и фактическим распределением меток.
Точность работы нейронной сети на тестовом наборе данных составила 82 %. Наилучшие результаты сеть демонстрирует при распознавании таких классов эмоций, как радость, удивление и злость: 98, 93, 85 процентов соответственно. Несколько хуже результаты при распознавании снимков с метками грусть, отвращение, страх: 77, 71, 65 процентов соответственно.
Литература:
- База фотографий fer2013 [Электронный ресурс]: URL: https://www.kaggle.com/c/challenges-in-representation-learning-facial-expressionrecognition-challenge/data (дата обращения 27.01.2019).
- Lucey, P., Cohn, J. F., Kanade, T., Saragih, J., Ambadar, Z., & Matthews, I. The Extended Cohn-Kanade Dataset (CK+): A complete expression dataset for action unit and emotion-specified expression. Proceedings of the Third International Workshop on CVPR for Human Communicative Behavior Analysis (CVPR4HB 2010), San Francisco, USA, 2010, P. 94–101
- M. J. Lyons, S. Akemastu, M. Kamachi, J. Gyoba. Coding Facial Expressions with Gabor Wavelets, 3rd IEEE International Conference on Automatic Face and Gesture Recognition, 1998, P. 200–205
- N. Srivastava, G. Hinton, A. Krizhevsky, I. Sutskever and R. Salakhutdinov. Dropout: A Simple Way to Prevent Neural Networks from Overfitting. Journal of Machine Learning Research, 2014.
- S. Ioffe, C. Szegedy. Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift. In International Conference on Machine Learning, pages, 2015.P. 448–456