Выражение лица — одна из самых эффективных форм невербального общения. Выражение лица в основном говорит о душевном состоянии человека. Модель распознавания выражений лица (FER) может использоваться различными компаниями для отслеживания психического здоровья своих сотрудников. Модель FER может использоваться учителями в среде онлайн-обучения, чтобы учителя могли узнать, проявляют ли их ученики интерес к лекции или нет. Поскольку технологии развиваются очень быстро, мы знаем, что в будущем будет все больше и больше человеко-машинного взаимодействия (ЧМИ). Мы также знаем, что выражения лица дают значительный объем информации, которая может быть полезна в среде ЧМИ.

Набор данных

Набор данных, который мы используем для этой задачи, называется набором данных FER 2013. Он создан Пьером Люком Кэрриером и Аароном Курвилем с использованием API поиска картинок Google с некоторыми ключевыми словами, такими как блаженный, гнев и т. д., а также с вариациями слов, связанных с полом, возрастом и этнической принадлежностью. Мы получили набор данных от Kaggle.

Набор данных содержит три столбца, а именно «пиксели», «эмоции» и «использование». Приведенные данные помечены, столбец «пиксели» содержит изображения лиц в градациях серого размером 48x48 пикселей. Каждая запись в столбце эмоций представляет собой метку с числом (от 0 до 6), который представляет эмоцию соответствующего лица на изображении (0=Злость, 1=Отвращение, 2=Страх, 3=Радость, 4= Печальный, 5=Удивительный, 6=Нейтральный). Столбец «пиксели» содержит строку, заключенную в кавычки для каждого изображения. Содержимое этой строки представляет собой разделенные пробелом значения пикселей в порядке строк. Набор данных содержит 35887 изображений, из них 4953 изображения «Гнев», 547 изображений «Отвращение», 5121 изображение «Страх», 8989 изображений «Счастье», 6077 изображений «Печаль», 4002 изображения «Удивление» и 6198 «Нейтральных». изображений. Этот набор данных не содержит шума меток как такового, а точность этого набора данных для человека составляет 68±5%.

Предварительная обработка

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

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

Поскольку все значения пикселей находятся в диапазоне от 0 до 255 (оба включительно), мы выполнили нормализацию пикселей, разделив значение каждого пикселя на 255 (используя нормализацию минимум-максимум, поскольку минимальное значение пикселя равно 0, а максимальное — 255). . Теперь значение каждого пикселя находится в диапазоне от 0 до 1 включительно.

Производительность базовой модели

Архитектура модели вдохновлена ​​LeNet5.

Точность базовой модели составляет 48 %. Мы запускаем 50 эпох на этой модели с помощью оптимизатора Adam и размера мини-пакета 128, используя 80 % доступных данных в качестве обучающих данных и остальное в качестве тестовых данных. Вот график точности, полученный путем обучения данных.

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

CNN с регуляризацией DropOut

Чтобы уменьшить переоснащение, мы использовали регуляризацию DropOut, 4 слоя DropOut добавляются после каждого слоя MaxPooling. Выпадающий слой работает путем случайного обновления краев скрытых слоев до 0 при каждом обновлении фазы обучения. Архитектура модели показана ниже:

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

Здесь за каждым слоем свертки следуют слой максимального объединения и слой отсева. Поскольку выпадающий слой отключает некоторые узлы сверточных слоев в течение каждой эпохи обучения, результат нашей модели не может сильно зависеть от одного набора фиксированных узлов, что значительно снижает переоснащение. Мы можем видеть, что модель не переоснащается по следующим графикам. Мы проверили, как модель работает с тестовым набором, было замечено, что точность теста составляет 64,4%, что очень близко к человеческой точности для этого набора данных. Поскольку точность не является хорошей мерой, когда речь идет о понимании того, насколько хорошо модель работает над проблемой классификации 7 классов, поэтому мы рассчитали Precision, Recall и F1score с их средними микро- и макросредами для всех классов. Ниже представлен отчет о классификации и показатели путаницы:

График потери и точности того же показан:

Сравнение окончательной модели с базовой линией

В базовой архитектуре CNN мы наблюдали очень низкую точность проверки, составляющую 49%, и модель переоснащается набором обучающих данных. После применения отсева и увеличения данных к набору данных, чтобы сбалансировать набор данных, CNN с выпадающими слоями хорошо работает с набором данных, как показано на графиках выше (рис. 8 и рис. 9). Затем точность этой модели увеличивается до 64%, а также резко сокращается переоснащение на тренировочном наборе. Оценка F1 для того же составляет 0,67, что является хорошей оценкой для этого набора данных по сравнению с эталоном. Результаты лучшей модели показаны ниже:

Заключение

Выражение лица на входном изображении определяется и классифицируется по одному из 7 классов (0 = гнев, 1 = отвращение, 2 = страх, 3 = счастье, 4 = печаль, 5 = удивление, 6 = нейтральное). Замечено, что обычная модель CNN с некоторыми оптимизациями превосходит базовые модели и предварительно обученную ResNetModel с точностью 63% и оценкой F1 0,67, что достаточно хорошо для классификации выражений лица, поскольку точность определения выражения лица человеком составляет 68 ± 5. % Далее отмечается, что предварительно обученные модели не всегда дают наилучшие результаты, если только они не используются для той же цели, для которой они обучены, модель ResNet не дала хороших результатов, поскольку обнаружение лиц и распознавание выражений лица — это разные задачи, которые требуются позже выделить черты лица и, следовательно, является более сложной задачей.

Распределение работы

Сначала данные анализируются и предварительно обрабатываются Anurag, чтобы их можно было передать в модель ML/DL, затем обучается модель SVM. Затем Джайеш модифицировал и настроил его, чтобы повысить точность как обучающего, так и тестового набора. Модель глубокого обучения (CNN) была затем скомпилирована и обучена Рисабхом, чтобы сделать ее более надежной. Затем эта модель оценивается и тестируется Джайешем с использованием кривой точности. Затем анализируются недостатки модели CNN, и Рисабх предлагает будущие улучшения. Мы придумываем некоторые методы оптимизации, чтобы уменьшить переобучение, увеличение данных выполняется Анурагом, Джаеш и Ришаб используют различные методы оптимизации для получения окончательных результатов.

Рекомендации

[1] Назия Первин, Назир Ахмад, М. Абдул Кадус Билал Хан, Ризван Халид, Салман Кадри, «Распознавание выражения лица с помощью машинного обучения».

[2] Васант П.К.*, Натарадж К.Р., «Распознавание выражений лица с использованием классификатора SVM».

[3] Ян Дж. Гудфеллоу 1, Думитру Эрхан 2, Пьер-Люк Кэрриер, Аарон Курвиль, Мехди Мирза, БенХамнер, Уилл Цукьерски, Ичуан Тан, Дэвид Талер, Донг-Хюн Ли, Инбо Чжоу, ЧетанРамая, Фангсян Фэн, Руифан Ли, XiaojieWang, Dimitris Athanasakis, John Shawe-Taylor, Maxim Milakov, John Park, Radu Ionescu, Marius Popescu, Cristian Grozea, James Bergstra, JingjingXie, Lukasz Romaszko, Bing Xu, Zhang Chuang, and Yoshua Bengio, «Challenges in Representation Learning: A отчет о трех соревнованиях по машинному обучению»

[4] Y. Lecun, L. Bottou, Y. Bengio и P.Haffner, «Градиентное обучение, применяемое для распознавания документов», в Proceedings of the IEEE, vol. 86, нет. 11, стр. 2278–2324, ноябрь 1998 г., doi: 10.1109/5.726791.

[5] Шима Ализаде, Азар Фазель, «Сверточные нейронные сети для распознавания выражений лица».

[6] https://www.kaggle.com/c/challenges-in-representation-learning-facial-expression-recognition-challenge.

[7] https://arxiv.org/abs/1502.03167