Научный журнал
Современные наукоемкие технологии
ISSN 1812-7320
"Перечень" ВАК
ИФ РИНЦ = 0,940

СИСТЕМА ИНТЕЛЛЕКТУАЛЬНОГО РАСПОЗНАВАНИЯ ЭМОЦИЙ НА ОСНОВЕ ТЕХНОЛОГИИ СВЁРТОЧНЫХ НЕЙРОННЫХ СЕТЕЙ

Бурякова О.С. 1 Решетникова И.В. 1 Черкесова Л.В. 1
1 ФГБОУ ВО «Донской государственный технический университет»
Любая информационная система, взаимодействующая с пользователем напрямую, нуждается не только в анализе смысла команд или действий человека, но также и в понимании его эмоций – невербального общения. Для разработки программного средства автоматического распознавания эмоций выбрана технология сверточной нейронной сети. Её предназначением является эффективное распознавание образов (изображений) – выходы скрытых промежуточных слоёв образуют матрицу (изображение) или набор матриц – несколько слоёв изображения. На вход сверточной нейронной сети подаётся три слоя изображения, которые обрабатываются отдельно и сравниваются с изображениями из базы данных. Авторами изучены современные программы – анализаторы эмоций, как отечественные, так и зарубежные, и существующие наборы данных (датасеты) для обучения свёрточных нейронных сетей, выполнен синтез и обучение модели. Для программной реализации решено использовать язык программирования Python версии 3 с дистрибутивом Anaconda, а также интегрированную среду разработки Jupiter Notebook, модули OpenCV и TensorFlow. Проведено тестирование, где была продемонстрирована работоспособность программного средства. При обсуждении результатов работы было отмечено, что именно эмоции движут поведением человека, в том числе деструктивными поступками, что важно для органов правопорядка. Программное средство находит применение во многих сферах: с его помощью можно определить воздействие рекламы на покупателя, узнать реакцию аудитории на фильмы, спектакли, шоу и др.; в сфере образования можно изучать настроение и внимание учеников во время занятий; в работе с персоналом можно определить эмоциональное состояние сотрудника, своевременно заметить его усталость, недовольство, готовность на конфликт и эффективнее перераспределить задачи; его можно использовать в медицине при реабилитации пациентов; оно может применяться в робототехнике, направленной на сферу услуг и работу с клиентами, и др.
искусственный интеллект
искусственные нейронные сети
технология свёрточных нейронных сетей
нейросетевая система распознавания эмоций
датасет
изображения
эмоции
1. Kovtun Yu.A., Cherckesova L.V., Safaryan O.A. etc. Methodology for Neural Networks Training at Analyzing the Context of Event at Emotions Recognizing. 2022 Robotics, Machinery and Engineering Technology for Precision Agriculture. Smart Innovation, Systems and Technologies. 2022. Vol. 247. P. 65-71. Springer, Singapore. DOI: 10.1007/978-981-16-3844-2_8/.
2. Dhall A., Goecke R., Ghosh S., etc. From Individual to Group–Level Emotion Recognition: EmotiW 5.0. Proceedings of the 19th ACM International Conference on Multimodal Interaction. Glasgow, United Kingdom. 2017. P. 524-528. DOI: 10.1145/3136755.3143004.
3. Rassadin A., Gruzdev A., Savchenko A. Group–Level Emotion Recognition Using Transfer Learning from Face Identification. Proceedings of the 19th ACM International Conference on Multimodal Interaction. Glasgow, United Kingdom. 2017. P. 544-548. DOI: 0.1145/3136755.3143007.
4. Goodfellow J., Erhan D., Carrier P.L. etc. Challenges in Representation Learning: Report on Three Machine–Learning Contests. 2013. P. 59-63. DOI: 10.1016/j.neunet.2014.09.005.
5. Tan L., Zhang K., Wang K., etc. Group Emotion Recognition with Individual Facial Emotion Convolutional Neural Networks and Global Image Based Convolutional Neural Networks. Proceedings of the 19th ACM International Conference on Multimodal Interaction. Glasgow, United Kingdom. 2017. P. 549-552. DOI: 10.1145/3136755.3143008.
6. Xie Y., Dai W., Hu Z., etc. A Novel Convolutional Neural Network Architecture for SAR Target Recognition. Journal of Sensors. 2019. Art. 1246548. DOI: 10.1155/2019/1246548.
7. Hu P., Ramanan D. Finding Tiny Faces. 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Honolulu, USA. 2017. P. 1522-1530. DOI: 10.1109/CVPR.2017.166.
8. Leinhart R., Maydt J. Extended Set of Haar–Like Features for Rapid Object Detection // Proceedings. International Conference on Image Processing. Rochester, New York, USA. 2002. Vol. 1. DOI: 10.1109/ ICIP.2002.1038171.
9. Zhai J., Dong G., Chen F. etc. Deep Learning Fusion Recognition Method Based On SAR Image Data. Procedia Computer Science. 2019. Vol. 147. P. 533-541. DOI:10.1016/j.procs.2019. 01.229.
10. Pujol F., Mar J.-M., Pujol A.J., etc. Face Detection Based on Skin Color Segmentation Using Fuzzy Entropy. Entropy. 2017. Vol. 19. P. 1-22. DOI: 10.3390/e19010026.
11. Купряшкин И.Ф. Влияние разрешающей способности радиолокационных изображений военной техники на точность их классификации глубокой сверточной нейронной сетью // Известия высших учебных заведений России. Радиоэлектроника. 2022. Т. 25. № 1. С. 36-46. DOI: 10.32603/1993-8985-2022-25-1-36-46.

С развитием искусственного интеллекта и в особенности нейросетевых технологий стало возможным автоматизировать процессы, не поддающиеся обычной алгоритмизации, например определение тональности текста и распознавание речи. В то же время умение эффективно общаться с людьми является неотъемлемой частью успешности многих видов профессиональной или бытовой деятельности. Поэтому задача автоматизации процесса распознавания эмоций актуальна для многих областей, в которых взаимодействие с людьми и понимание испытываемых ими чувств является необходимым фактором [1].

В начале XX в. была разработана фундаментальная теория о том, что универсальных эмоций не существует. Теория опиралась на зависимость носителя эмоций от типа культуры, которую он представляет. Но исследования П. Экмана и У. Фризена доказали, что существует семь универсальных эмоций, не зависящих от культурной и национальной принадлежности человека. Это удовольствие, страдание, страх, гнев, радость, удивление и отвращение [2].

На сегодня существуют различные программы – анализаторы эмоций. Часть из них позволяет определить только базовые семь эмоций по изображениям, другие же способны определять эмоции в реальном времени, с помощью анализа видеопотока с видеокамер. Существуют и программные средства, способные определять эмоции по движению мышц на лице, что даёт достаточно высокую точность. Некоторые программы могут определять комбинации эмоций, например грустный – злой, радостный – удивленный и т.д., а иные программные средства даже могут выйти за рамки базовых семи эмоций [3].

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

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

Распознавание эмоций важно в сфере образования, так как с его помощью можно изучать настроение учеников на занятиях. В школах Петербурга уже внедрили подобную технологию.

Интеллектуальные программы распознавания эмоций полезны и в работе с персоналом. Они помогают определить эмоциональное состояние сотрудника, своевременно заметить его усталость, недовольство или творческое выгорание и эффективнее перераспределить задачи, заранее устраняя внутренние конфликты и предупреждая деструктивные действия [4].

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

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

Еще один альтернативный вариант использования интеллектуальных программ распознавания эмоций – применение их в робототехнике. Установка анализаторов эмоций в программное обеспечение роботов даст им возможность лучше анализировать человеческие чувства, что позволит повысить эмпатию, как осознанное сопереживание текущему эмоциональному состоянию человека, между роботами и людьми [5].

Целью исследования является разработка программного средства распознавания эмоций человека по изображению, с помощью обучения свёрточной нейронной сети (СНС). Объектом исследования выступает информационная система распознавания эмоций по изображениям. Предметом исследований являются информационные процессы, протекающие в системе распознавания эмоций по изображениям. Для достижения поставленной цели нужно выполнить анализ предметной области; изучить существующие программы – анализаторы эмоций и наборы данных (датасеты) для обучения СНС; выполнить синтез и обучение модели СНС; разработать программное средство, использующее обученную модель СНС на языке программирования Python версии 3, а также провести тестирование работы разработанного программного средства.

Материалы и методы исследования

Используются сверточные нейронные сети (англ. Convolutional Neuron Network) – специальная архитектура нейронных сетей, предложенная Я. Лекуном, предназначенная для эффективного распознавания изображений [6].

Свёртка – это действие над двумя матрицами A (размера nx × ny) и B (размера mx × my). Результатом является матрица С = А*B размера (nx–mx+1) × (ny–my+1). Каждый элемент результата вычисляется как скалярное произведение матрицы B и некоторой подматрицы A того же размера. На рис. 1 показано графическое представление операции свёртки.

missing image file

Рис. 1. Операция свёртки как действия над матрицами

Логический смысл операции свёртки – чем больше величина элемента свёртки, тем больше эта часть матрицы A похожа (в смысле скалярного произведения) на матрицу B.

По этим причинам матрица A – это изображение, а матрица B – фильтр или образец. Свёрточный слой нейронной сети является применением операции свёртки к выходам с предыдущего слоя, где веса ядра свёртки являются обучаемыми параметрами. Ещё один обучаемый вес используется в качестве константного сдвига. В одном свёрточном слое может быть несколько сверток. В этом случае для каждой свертки на выходе получится своё изображение. Например, если вход имел размерность w × h, а в слое было n сверток с ядром размерности kx × ky, то выход будет иметь размерность n × (w−kx+1) × (h−ky+1) [7].

Ядра свертки могут быть трёхмерными. Свертка трёхмерного входа с трёхмерным ядром происходит аналогично, при этом скалярное произведение считается по всем слоям изображения. Например, для усреднения информации о цветах исходного изображения, на первом слое можно использовать свертку размерности 3×w×h. На выходе такого слоя будет уже одно изображение (вместо трёх). В СНС выходы промежуточных слоёв образуют матрицу или набор матриц – несколько слоёв изображения. На входы СНС подаются три слоя изображения (R-, G-, B-каналы), которые обрабатываются отдельно и сравниваются с данными, хранящимися в базах.

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

Для определения лиц на изображении используются каскады Хаара [8], использующие известный метод Виолы – Джонса, применяющий технологию скользящего окна: рамка, меньшего размера, чем исходное изображение, движется с определённым шагом по картинке и с помощью каскадов слабых классификаторов определяет, есть ли в этом окне лицо человека. Метод эффективно применяется в задачах компьютерного зрения и распознавания образов.

Метод Виолы – Джонса состоит из двух алгоритмов: обучения и распознавания. На практике скорость работы алгоритма обучения не так важна, как скорость работы алгоритма распознавания. Метод является статистическим, структурным и нейронным. На рис. 2 показана схема работы алгоритма распознавания лица человека методом Виолы – Джонса в обобщённом виде.

Перед началом распознавания алгоритм обучения на основе тестовых изображений обрабатывает базу данных, состоящую из признаков, их границы и паритета. Далее алгоритм распознавания использует созданную базу данных для поиска объектов с различными масштабами изображения. На выходе алгоритм Виолы – Джонса возвращает всё множество найденных необъединенных объектов в разных масштабах. Следующая задача – принять решение о том, какие из найденных объектов присутствуют в кадре, а какие – являются дублями.

missing image file

Рис. 2. Обобщённая схема распознавания в алгоритме Виолы – Джонса

missing image file

Рис. 3. Ячейки кода для обучения свёрточной нейронной сети

Для программной реализации поставленной задачи использован язык программирования Python с дистрибутивом Anaconda, а также интегрированная среда разработки Jupiter Notebook, модули OpenCV и TensorFlow, как основополагающие средства разработчика.

На рис. 3 показано начало кода для обучения модели нейронной сети – здесь подключаются модули в первой ячейке. Во второй ячейке задаётся путь к файлам, на которых будет проводиться обучение, а в третьей – массив классов. В данном случае классы – это названия папок, в которых находятся изображения. Для удобства программирования папки названы семью номерами: 0 – злость (Angry), 1 – отвращение (Disgust), 2 – страх (Fear), 3 – счастье (Happy), 4 – спокойствие (Neutral), 5 – грусть (Sad), 6 – удивление (Surprise), по основным видам эмоций [9].

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

На рис. 4 представлен программный код алгоритма, описанного выше.

missing image file

Рис. 4. Создание массива изображений

missing image file

Рис. 5. Действия над массивами

missing image file

Рис. 6. Слои MobileNetV2

В следующей ячейке происходит разделение данных на X и Y. Получается два массива: один содержит изображения, а другой – классы. Массив X конвертируется в массив Numpy, переводя его из массива объектов в массив с одним числовым типом данных. С помощью разделения на 255 каждого пиксела изображения в массиве X происходит нормализация изображений. Уменьшается диапазон чисел: ранее он был от 0 до 255, а будет от 0 до 1. Массив Y тоже переводится в массив Numpy, так как, из-за присутствия в предыдущем массиве, он получает тип объекта. На рис. 5 показано, как происходит деление на массив изображений X и массив классов Y и как происходит нормализация и приведение массива Y к массиву Numpy.

Следующим важным этапом является создание модели для обучения. Для этого за основу взята модель MobileNetV2, которая существенно уменьшит нагрузку на систему при её использовании. Задаются переменные входа и выхода с именами base_input и base_output. Они будут использоваться для доступа к модели. Далее начинается обучение модели. Для входа берется первый слой из MobileNetV2, вызываясь через model.layers[0].input, ведь нулевой слой является первым. Для выхода берется model.layers[–2].output. Обозначение –2 в этом случае значит, что берётся второй элемент от конца списка [10].

На рис. 6 представлен слой global_average_pooling2d_1. Он выбран, чтобы вычленить последний слой, в котором на выход поступает 1000 значений.

Результаты исследования и их обсуждение

После обучения модели было реализовано программное средство, с помощью которого проверялась работоспособность обученной модели свёрточной нейронной сети. Интерфейс программы минималистичен и содержит две кнопки:

– кнопка Image вызывает функцию ImgRecog, открывающую диалоговое окно выбора файла с типами: jpeg, jpg, png. После этого определяются лица и выявляются эмоции на изображении;

– кнопка WebCam запускает функцию CamRecog, которая открывает новое окно и определяет эмоции, вычленяя кадры из видеопотока видеокамеры. Принцип работы CamRecog такой же, как и у ImgRecog. Единственная разница между этими двумя функциями – наличие цикла While у CamRecog, выполняющего программу до тех пор, пока не будет нажата клавиша «q». На рис. 7, а и б, представлены блок-схемы алгоритмов их работы [11].

missing image file

(а) (б)

Рис. 7. Блок-схема алгоритма определения эмоций по изображениям (а) и определения эмоций в реальном времени (б)

Для определения эмоций необходимо найти лица людей. С этой задачей в программе справляется метод Haar Cascade, использующий алгоритм Виолы – Джонса. После нахождения на картинке лиц их изображения обрезаются, а их координаты сохраняются. На обрезанных изображениях выявляются эмоции с помощью обученной модели свёрточной нейронной сети. Затем, на сохранённые координаты накладывается рамка, обрамляющая лицо. На изображении, немного выше (на 10 пикселов), выводится текстовое сообщение о распознанной эмоции.

Для обсуждения с коллегами результатов работы программного средства нужно провести его тестирование. Итоги проведения первого теста продемонстрированы на рис. 8. Этот тест проводился с использованием изображения одного человека, у которого явно выражена эмоция счастья.

missing image file

Рис. 8. Результаты теста одного лица с явно выраженной эмоцией

missing image file

Рис. 9. Результаты теста группы лиц с различными эмоциями

Далее было протестировано изображение группы людей, как на рис. 9. Программа смогла найти все лица людей и определить их эмоции. Она нашла еще одно лицо на заднем плане фотографии, но определить эмоцию не смогла, из-за малого размера и сильного поворота. Следующим этапом тестирования стало изображение темнокожего человека. У многих программ на этом этапе возникали проблемы. Результаты работы теста показаны на рис. 10.

Очевидно, что разработанная программа распознавания эмоций справилась с задачей. Так как алгоритм Виолы – Джонса обнаруживает лица, ориентируясь по глазам, рту, носу, расположению бровей, то отсутствие одного из этих факторов может повлиять на работу программы [10]. Это же касается и свёрточной нейронной сети, определяющей эмоции.

missing image file

Рис. 10. Результаты теста лица темнокожей девушки

Для СНС важно, в каком положении находятся лицевые признаки, а для темнокожих людей программа может не быть способной обнаружить нос, рот, лоб, брови или линию волос, не говоря уже об эмоциях, ввиду их плохой различимости на фоне остального лица. Поэтому далее необходимо проверить, как программа работает на лицах, которые частично закрыты очками, волосами или головным убором. Результаты теста показаны на рис. 11.

missing image file

Рис. 11. Результаты теста наполовину закрытого лица

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

Некоторые программы не могут определить лица у детей от 0 до 3 лет из-за слишком мягких переходов и неявно выраженных черт лица. Здесь может произойти та же ситуация, как и с темнокожими людьми. Нужно проверить программное средство на возможность определения эмоций у маленьких детей. Результаты теста показаны на рис. 12.

missing image file

Рис. 12. Результаты теста лица маленького ребёнка

Был проведен ряд тестов с лицами малышей, но обученная СНС не распознала ни одно и не смогла определить лицо ребенка младше 3 лет. Значит, распознать их эмоции она не может.

Следующим шагом была проверка работы алгоритма определения лиц в реальном времени с помощью видеокамеры. После её включения видеопоток поступает на вход программы, где из него вычленяются нужные кадры, которые анализируются, изменяются и выводятся в окно программы. Далее представлены четыре кадра, взятые в различные моменты времени, на которых представлены четыре эмоции. Результаты показаны на рис. 13.

missing image file

Рис. 13. Результаты теста видеозахвата лиц в видеопотоке

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

Заключение

Поставленная авторами цель исследования была достигнута: обученная свёрточная нейронная сеть и программное средство, использующее эту модель СНС, показали свою эффективность при решении большинства задач распознавания лиц и эмоций, отражённых на их лицах, что было подтверждено в результатах тестирования. К достоинствам разработанного программного средства распознавания эмоций можно отнести возможности определения эмоций у темнокожих людей и применение комбинированных навыков при определении нескольких эмоций на изображении, полученном с видеокамеры [11].

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


Библиографическая ссылка

Бурякова О.С., Решетникова И.В., Черкесова Л.В. СИСТЕМА ИНТЕЛЛЕКТУАЛЬНОГО РАСПОЗНАВАНИЯ ЭМОЦИЙ НА ОСНОВЕ ТЕХНОЛОГИИ СВЁРТОЧНЫХ НЕЙРОННЫХ СЕТЕЙ // Современные наукоемкие технологии. – 2022. – № 9. – С. 44-52;
URL: https://top-technologies.ru/ru/article/view?id=39307 (дата обращения: 26.04.2024).

Предлагаем вашему вниманию журналы, издающиеся в издательстве «Академия Естествознания»
(Высокий импакт-фактор РИНЦ, тематика журналов охватывает все научные направления)

«Фундаментальные исследования» список ВАК ИФ РИНЦ = 1,674