ноябрь 2020

volo_logo

 Задача 

Разработать алгоритм контроля внимания по изображению лица для видеоконференций и онлайн обучения

Определение положения головы в пространстве

Анализ базовой мимики лица, движения губ

Распознавание направления взгляда, открытости глаз, моргания

 Результат 

 Процесс 

Используем нейросетевые модели обнаружения лица для локализации ключевых точек лица

Исследуем детекторы SFD, BlazeFace и Dlib и выделение ключевых точек FAN2D, FAN3D и Dlib, выбираем оптимальные варианты для разных требований по производительности.

68

ключевых точек

Используем 68 соответствующих точек на трёхмерной модели лица MultiPIE для определения положения головы в пространстве. Решаем линейное уравнение с 6 степенями свободы для определения положения головы в пространстве.

res-multi

Выравниванием и сегментируем лицо

18

типов масок

Зная положение головы в пространстве, приводим лицо к максимально фронтальному виду не допуская перспективных искажений

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

лицо, шея, уши, глаза, брови, нос, губы, зубы, украшения, волосы, одежда

aligned-1parsing-1
aligned-2parsing-2
aligned-3parsing-3

Определяем направление взгляда

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

0005__draw

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

Смотрит ли человек в экран

Делает ли человек какие-либо записи (или пользуется какими-либо материалами)

Разговаривает ли человек с кем-либо за кадром

Разговаривает ли человек с кем-либо за кадром