Привет! Как вы знаете, мы являемся провайдером видеонаблюдения на различных значимых событиях, в том числе и ЕГЭ. 

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

Обычно за ходом экзамена следят специальные люди — наблюдатели. Они отмечают на портале видеонаблюдения smotriege.ru подозрительное поведение участников ЕГЭ и передают обнаруженные нарушения на модерацию в Рособрнадзор. Если модераторы считают, что нарушение действительно было, то его передают дальше на отработку в пункт проведения экзаменов (ППЭ). Сотрудники ППЭ проверяют каждое такое обращение и решают, как поступить с нарушителем. Например, удалить с экзамена, если он использовал телефон или шпаргалку. 

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

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

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

Как работает алгоритм

Технология находит возможное нарушение, фиксирует его в своей памяти и передает сигнал на портал видеонаблюдения. Наблюдатели просматривают уведомление в разделе «Потенциальное нарушение». Уведомление представляет собой отрывок видеозаписи, в котором отражается информация о том, в каком ППЭ зафиксирована активность, его аудитория. А красным квадратом выделяется та часть экрана, на которую нужно обратить внимание. Просмотрев отрывок, наблюдатель решает, принять или отклонить нарушение. 

Обучение и сложности

Чтобы алгоритм точно распознавал поведение участников ЕГЭ и корректно фиксировала нарушения, его нужно было обучить на большом массиве данных. Что мы и сделали, собрав видеозаписи с уже зарегистрированными нарушениями на экзаменах за 2018-2019 годы. 

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

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

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

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

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

Результаты и планы

Первая версия алгоритма была построена на использовании RandomForest — классификатора, обученного на результатах работы OpenPose. Но у нее был существенный недостаток: большая часть потенциально полезных данных просто выбрасывалась. Например, по ключевым точкам можно определить некоторые жесты и движения, но невозможно увидеть, что у человека в руке — ручка или шпаргалка. 

Сейчас проводятся исследования по улучшению качества работы алгоритма с использованием нейросетевых технологий Human Activity Recognition, архитектур SlowFast, I3D и C3D. Кроме того, мы работаем над увеличением точности алгоритма, его производительности и удобства эксплуатации. Мы уже расширили датасет и добавили данные за 2020 год — это поможет нам существенно увеличить точность алгоритма. 

Расширение датасета и добавление данных за 2020 год существенно увеличат точность алгоритма

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