Проект UTMIST Ноа Кристино, Брэдли Мати, Дэниела Чжу и Мишаала Кандапата.

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

Мотивация и цель

Целью этого проекта было использование модели машинного обучения для обнаружения улыбок на фотографиях и видеоматериалах. В частности, мы хотели создать более оптимизированную модель, способную работать быстрее, чем предыдущие модели. Конкурирующие модели используют ввод изображения и пытаются найти улыбку на полном изображении, а это означает, что для вычислений требуется гораздо больше времени. Наша цель с этой моделью состояла в том, чтобы использовать гибридный подход, который сначала использует библиотеку DLib для преобразования изображения в векторные точки. Затем модель ML напрямую анализирует эти векторные точки, что означает, что для обработки требуется гораздо меньше данных. Мы надеялись, что это приведет к таким же точным результатам и гораздо более быстрому времени обработки.

Набор данных

Мы использовали набор данных GENKI-4000, скомпилированный MPLab в Калифорнийском университете в Сан-Диего, для обучения нашей модели. Этот набор данных состоит из 4000 изображений, каждое из которых содержит лица, которые либо улыбаются, либо не улыбаются. Этот набор данных помечен 1 = улыбается, 0 = не улыбается.

Обработка данных

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

Структура сети

Модель DLib Facial Detect использует функцию гистограммы ориентированных градиентов (HOG) в сочетании с линейным классификатором, пирамидой изображения и схемой обнаружения скользящего окна, описанной в этой статье. Эта модель предварительно обучена и предоставляется в библиотеке Python DLib. Наша модель SVC была обучена с использованием списков векторов в качестве входных данных, которые сопоставлялись со списком логических значений, указывающих на улыбку или отсутствие улыбки.

Дополнительные функции

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

Будущие приложения

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

Заключение

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