← Назад

УДК 004.93'12

ВИДЕОРЕГИСТРАЦИЯ ПРИСУТСТВИЯ СТУДЕНТОВ В АУДИТОРИИ С ПОМОЩЬЮ НЕЙРОСЕТЕВОГО РАСПОЗНАВАНИЯ ЛИЦ

Видеорегистрация присутствия студентов в аудитории с помощью нейросетевого распознавания лиц / О.И. Федяев // СОВРЕМЕННОЕ СОСТОЯНИЕ И ПУТИ СОВЕРШЕНСТВОВАНИЯ ОБРАЗОВАТЕЛЬНОГО ПРОЦЕССА : Материалы IX Республиканской научно-методической конференции, Донецк, 2 февраля 2023 года. – Донецк: Донецкий национальный технический университет, 2023. – С. 361–370. – EDN QKWBOT.

ГОУВПО «Донецкий национальный технический университет»

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

Введение

Наиболее актуальной и сложной в области компьютерного зрения (Computer Vision – CV) является задача распознавания человека по его лицу. Необходимость в её решении возникает при создании систем контроля за людьми, систем безопасности и многих других компьютеризированных систем. Несмотря на достигнутые в последние годы успехи в реализации компьютерного зрения, по-прежнему есть ряд нерешённых проблем в этой области. Основные трудности компьютерного распознавания лиц, которые необходимо преодолеть, состоят в том, чтобы распознавать человека по изображению лица независимо от изменения ракурса и условий освещённости при съёмке, а также при различных изменениях, связанных с возрастом, причёской и т. д. [1]. Кроме того, с каждым годом технологии CV стали находить всё больше применений в различных отраслях индустрии и повседневной жизни.

В настоящее время большие перспективы в решении данных проблем связывают с применением глубоких нейронных сетей. К этому классу относится многослойная свёрточная нейронная сеть (Convolutional Neural Network) [1], [2], которая является развитием идей таких архитектур нейронных сетей, как многослойные сети типа когнитрон и неокогнитрон [3]. В отличие от известных типов классических нейронных сетей архитектура свёрточной нейронной сети построена и функционирует на принципах зрительной системы человека. Такая архитектура позволяет ей выявлять все характерные особенности двумерной топологии изображения.

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

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

Процесс распознавания лиц на кадрах из видеопотока

Процессу непосредственного распознавания лиц предшествует важный этап автоматической локализации лица на снимке, методы реализации которого сейчас активно развиваются [7]. Задача обнаружения лица на изображении является «первым шагом», т.е. предобработкой в процессе решения задачи «более высокого уровня» (например, узнавание лица или распознавание выражения лица). Однако и сама информация о присутствии и, возможно, количестве лиц на изображении или в видеопотоке может быть полезна для таких приложений, как охранные системы и содержательная индексация базы данных изображений или видеофрагментов.

Основные процессы компьютерного распознавания лиц человека
Рисунок 1 – Основные процессы компьютерного распознавания лиц человека

Блок обнаружения лиц принимает изображения с веб-камеры в режиме реального времени, выделяет и локализует на них лица (рисунок 1). Эту функцию выполняет алгоритм детектирования лиц на текущем кадре видеопотока. В результате формируется последовательность изображений лиц, захватываемых видеокамерой, для последующего их распознавания.

Каждое выделенное изображение лица передаётся в блок формирования вектора признаков, который реализует распознавательную функцию f : X → Y , где X – множество входных изображений лиц; Y – множество векторов признаков для лиц из X. Таким образом, нейросетевая функция f каждому выделенному лицу x∈X ставит в соответствие вектор признаков y∈Y (y=f(x)), которыми характеризуется данное лицо.

Для выработки признаков лица применялась свёрточная нейронная сеть, которая предварительно была обучена её создателями на примерах фотографий 2622-х человек (по 1000 фотографий на человека) [2], [4]. Сеть настроена наклассификацию распознаваемого лица, используя в качестве классов лица из обучающего множества. Поэтому результатом работы сети является 2622- мерный вектор, каждый элемент которого представляет собой вероятность сходства лица с одним из обучающего множества. Считается, что два изображения лица относятся к одному человеку, если они в одинаковой мере похожи на каждое лицо из обучающего множества. Для этого вектора признаков этих изображений в пространстве лиц из обучающего множества должны образовывать между собой достаточно острый угол.

При настройке системы необходимо предварительно сформировать базу данных лиц для всех распознаваемых людей, представленных конечным множеством соответствующих фамилий L. С этой целью для ∀x с помощью нейросетевой распознавательной функции f определяется множество правильных пар

Формула 1
(1)

где 𝑋̅ - множество подготовленных фотографий распознаваемых лиц, т.е. эталоны изображений распознаваемых лиц; y – вектор признаков изображения лица 𝑥 ∈ 𝑋; l - фамилия человека, фотография которого изображена на снимке x. Всё множество пар (𝑦, 𝑙) заносится в базу данных векторов признаков лиц.

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

Формула 2
(2)

где Y и 𝑌̅ – вектора признаков соответственно распознаваемого лица и лица-эталона из базы данных; n = 2622.

Распознаваемое лицо считается соответствующим эталону, если полученный коэффициент сходства выше определённого значения (в работе использовалось значение 0,7).

Алгоритм локализации изображения лица

Ввод видеопотока в систему распознавания осуществлялся с помощью программных средств библиотеки OpenCV [5], [6]. Для решения задачи автоматической локализации лиц на кадрах видеопотока применялся метод Виола-Джонса [7]. К достоинствам данного метода можно отнести высокую степень правильной локализации лица, малое число ложных срабатываний, высокую скорость работы. Метод Виола-Джонса в меньшей степени чувствителен к освещённости. Точность выделения лиц на снимке по алгоритму Виола-Джонса в идеальных условиях достигает 90-95%, что вполне приемлемо для решения практических задач.

Регистрация лица с видеокамеры
Рисунок 2 – Регистрация лица с видеокамеры

Кадры из видеопотока обрабатываются каскадным классификатором Хаара. В результате метод Виола-Джонса определяет местоположение выделенного лица на снимке набором параметров, включающим координаты и размеры прямоугольной рамки, которой ограничивается изображение лица человека. На рисунке 2 показана регистрация лица, прямо смотрящего в камеру. С помощью меню этого окна можно формировать базу данных с информацией о фамилиях студентов l∈L и фотографиях x∈X. Все изображения выделенных лиц нормируются к стандартному размеру 224х224 пикселей, каждый из которых представлен в виде трёх составляющих в формате RGB.

Тестирование системы проводилось с использованием веб-камеры ASUS. Камера выдаёт изображение в формате VGA (640x480, 18-битный RGB) с частотой 5 кадров в секунду. Угол обзора ориентировочно равен 30°. Нейросетевые алгоритмы исполнялись на процессоре Intel Core i7-5500U (2 физических ядра тактовой частотой 3,0 ГГц). Локализация лиц на изображении происходит за 15-45 мс, создание вектора признаков одного лица свёрточной нейросетью – за 550-590 мс. Реальная производительность обработки видеокадров на данной конфигурации составляет приблизительно 1,7 кадров в секунду.

Были проведены исследования качества распознавания и производительности системы на описанной аппаратной конфигурации. Для условий дневного света в помещении университета определены такие граничные значения способности распознавания, как углы поворота головы, уровень освещённости и расстояние до камеры. Распознавание с помощью указанной видеокамеры было устойчивым на расстоянии до 6 м от камеры. Эксперименты показали, что нейросеть распознавала изображения лиц даже размером 22х22 пикселя.

Архитектура сверточной нейронной сети

Свёрточная нейронная сеть была предложена Яном Лекуном для эффективного распознавания различных объектов на изображении [6]. Её многослойная архитектура состоит из свёрточных слоёв (convolution layers) и субдискретизирующих слоёв (subsampling layers или pooling layers, слоёв подвыборки), которые чередуются друг с другом.

В каждом слое имеется набор из нескольких плоскостей признаков. Причём нейроны одной плоскости имеют одинаковые веса, ведущие к соответствующим локальным участкам предыдущего слоя. Изображение предыдущего слоя как бы сканируется небольшим окном, т.е. пропускается сквозь набор весов (ядро свёртки), и результат сканирования отображается на соответствующем нейроне текущего слоя. Ядро свёртки интерпретируют как графическое кодирование какого-либо признака, например, наличие горизонтальной или вертикальной линии. Таким образом, набор плоскостей представляет собой карты признаков (feature map), что позволяет каждой плоскости находит «свои» участки изображения в любом месте предыдущего слоя.

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

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

В системе видеоконтроля студентов в качестве модели свёрточной нейронной сети использовалась нейросеть VGGFace (рисунок 3) [4], [9]. Сеть VGGFace принимает на входе RGB изображение лица размером 224х224 (фрагмент изображения, вырезанный по координатам, полученным методом Виолы-Джонса, расширяется или сжимается до этого размера). Далее изображения проходят через стек сверточных слоев, в которых используются фильтры с очень маленьким рецептивным полем размера 3х3.

Пространственный пулинг осуществляется при помощи пяти max-pooling слоев, которые следуют за последним в группе свёрточным слоем. Операция max-pooling выполняется на окне размера 2х2 пикселей с шагом 2. Все нейроны скрытых слоёв имеют функцию активации ReLU. После стека свёрточных слоёв идут три полносвязных слоя: первые два имеют по 4096 каналов, третий – 2622 каналов (по числу распознаваемых классов). Последним в архитектуре расположен soft-max слой.

Сеть предварительно обучена на множестве из 2,6 миллионов фотографий (2622 человека, 1000 фотографий каждого). Координаты каждого измерения вектора представляют собой вероятность того, что исходное лицо принадлежит одному из людей из обучающего множества. Несмотря на то, что сеть не обучается на базе данных, с которой она используется, столь большое количество признаков позволяет каждому лицу создать уникальный отпечаток.

Архитектура модели многослойной сверточной нейронной сети VGGFace
Рисунок 3 – Архитектура модели многослойной сверточной нейронной сети VGGFace

При этом предполагалось, что лица, в равной мере схожие с соответствующими лицами из обучающего множества, также схожи между собой, потому о схожести двух образов лиц можно судить путём сравнения их векторов признаков. Этот принцип называется «Transfer learning». На выходе сеть формирует 2622-мерный вектор признаков лица.

Видеоконтроль присутствия студентов в аудитории

Программная реализация системы присутствия студентов в учебном классе выполнена с помощью ряда технологий программной инженерии. При создании системы были использованы язык программирования Python, фреймворк Qt5, СУБД SQLite, библиотеки NumPy, OpenCV, Keras, Hickle.

Задача автоматического учёта присутствия студентов на учебных занятиях включает следующие подзадачи:

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

На рисунке 4 представлена форма подсистемы управления студентами, с помощью которых возможно:

Окна управления сведениями о студентах
Рисунок 4 – Окна управления сведениями о студентах

Преподаватель может визуально наблюдать и управлять информацией о студентах с помощью главного окна системы видеорегистрации (рисунок 5). В левой части окна высвечивается таблица со списком студентов группы, в которой преподаватель проводит занятие. В таблице во время входа студентов в аудиторию фиксируется время прибытия и его состояние (не отмечен, прибыл, опоздал, отсутствует). Для удобства видеоконтроля цвет строки студента меняется в зависимости от его состояния. На данном рисунке показан факт регистрации студента в таблице текущего занятия.

Главное окно системы регистрации студентов
Рисунок 5 – Главное окно системы регистрации студентов

В окне справа находятся элемент выбора дисциплины, кнопки остановить/продолжить распознавание, перехода в режим опоздания, сброса занятия и его завершения. По умолчанию все студенты в списке имеют статус «Не отмечен» и при распознавании обозначаются как «Присутствует». При переходе в режим опоздания (кнопка «Опоздание») статус всех неотмеченных студентов изменяется на «Отсутствует», а те, кто будет распознан в этом режиме, помечаются статусом «Опоздание» (рисунок 6). В случае отката режима опоздания все отсутствующие студенты вновь становятся неотмеченными, а опоздавшие – присутствующими.

Кнопка «Завершить» прекращает визуальную регистрацию студентов и записывает данные из таблицы текущего занятия в общий журнал. Эта кнопка активна только в режиме опоздания (таким образом, в журнале не должно оставаться записей со статусом «Не отмечен»).

Режим опоздания
Рисунок 6 – Режим опоздания

Ячейки таблицы, отображающие отметки о присутствии, меняют свой цвет в зависимости от содержимого и поддерживают редактирование своего значения при помощи выпадающего списка.

Таким образом, цифровой журнал представляет собой реляционную таблицу, содержащую следующие данные: студент, дата проведения занятия, предмет, группа, отметка о присутствии. В системе предусмотрена визуализация журнала в двух формах: по определённому предмету в определённой группе, по конкретному студенту.

На рисунке 7 показано окно представления журнала по группе ПИм-17, дисциплине «Распознавание образов». После выбора группы и дисциплины таблица отображает сведения о посещаемости каждого студента (строки таблицы характеризуют студентов, столбцы – даты занятий). Значения статусов посещения могут быть изменены.

Просмотр посещаемости занятий студентами группы
Рисунок 7 – Просмотр посещаемости занятий студентами группы

ВЫВОДЫ

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

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

Предложенный подход исключит потерю времени на «перекличку» студентов во время проведения занятий и облегчит работу преподавателя.

Литература

1. Deep Learning – Wikipedia [Электронный ресурс] – Режим доступа: https://en.wikipedia.org/wiki/Deep_learning

2. Гудфеллоу Я., Бенджио И., Курвилль А. Глубокое обучение / пер. с анг. А.А.Слинкина. – 2-е изд., испр. – М.: ДМК Пресс, 2018. – 652 с.

3. Федяев О.И., Махно Ю.С. Система распознавания зашумлённых и искажённых графических образов на основе нейронной сети типа неокогнитрон // Одиннадцатая национальная конференция по искусственному интеллекту с международным участием КИИ2008: Труды конференции. Т. 3. – М.: ЛЕНАНД, 2008. – С. 75-83.

4. Антонио Джулли, Суджит Пал. Библиотека Keras – инструмент глубокого обучения. Реализация нейронных сетей с помощью библиотек Theano и TensorFlow / пер. с англ. Слинкин А.А. – М.: ДМК Пресс, 2018. – 294 c.

5. OpenCV – библиотека компьютерного зрения с открытым исходным кодом [Электронный ресурс]. – Режим доступа: http://software.intel.com/en-us/articles/

6. Reading and Writing Images and Video - OpenCV 2.4.13.7 documentation [Электронный ресурс] // opencv.org . – Режим доступа: https://docs.opencv.org/2.4/modules/highgui/doc/reading_and_writing_images_and_video.html

7. Paul Viola, Michael Jones. Rapid Object Detection using a Boosted Cascade of Simple Features, 2001. – P. 1-8.

8. Le Cunn Y, Bengio Y. Convolutional neural networks for Images, Speech and Time Series, AT&T Laboratories, 1995. – Р. 1 – 14.

9. VGG Face Descriptor [Электронный ресурс] // robots.ox.ac.uk . – Режим доступа: http://www.robots.ox.ac.uk/~vgg/software/vgg_face/

10. SQLite Home Page [Электронный ресурс] // sqlite.org . – Режим доступа: https://sqlite.org/index.html

Федяев Олег Иванович – доцент кафедры программной инженерии им. Л.П. Фельдмана ГОУВПО «Донецкий национальный технический университет», кандидат технических наук.