В статье автор описывает этапы подготовки данных и приводит результаты, достигнутые в рамках проводимого им исследования метода выявления аномалий в видеопотоке на основе анализа контекста сцены с использованием нейронных сетей.
Ключевые слова: аномалия, поиск аномалий, аномалии видеоряда, рекуррентная нейронная сеть, последовательность кадров, сверточная нейронная сеть, подготовка данных.
Каждый человек в современных реалиях вынужден работать с большим объемом всевозможных данных. Большая их часть привычна и стандартизирована, а процесс её обработки и анализа не вызывает затруднений. Однако, нередки случаи возникновения непривычного результата, экземпляра, который сильно отличается от общего набора данных. Такие нестандартные результаты могут представлять особый интерес в зависимости от областей и условий, в которых они были получены, и требовать быстрого реагирования.
Поиск аномалии чрезвычайно трудоёмкий процесс, а в сочетании со стремительный ростом объемов информации, а также всевозможных способов её представления невозможен без применения программных решений. Такие программы обязаны быть гибкими, способными легко подстроиться под изменяющиеся данные и растущие требования, обладать высокой производительностью и точностью. Оптимальным инструментом для решения поставленных задач являются нейронные сети, они гибкие: изменение обучающей выборки приводит к получению новых результатов (сам алгоритм при этом может оставаться прежним) и способны к дообучению с целью повышения точности или интерпретации готового решения под необходимые задачи [1].
Метод, описываемый в данной работе, является вариантом использования нейронных сетей для выявления аномалий в видеопотоке. Спецификой выявления аномалии в видеоряде, будет служить связность каждого кадра с предыдущими и последующими, то есть контекст видео [2]. Связность кадров будет обеспечиваться принципом скользящего окна: выбираются первые n кадров (это первый набор фреймов), затем производится сдвиг на 1 кадр к концу видеоряда, тогда во втором наборе фреймов окажутся кадры со второго по n+1, операция повторяется до тех пор, пока не будет достигнут конца видеоряда. Выявлять таким образом предстоит коллективные аномалии, определяемые количеством: необходимо появление целой последовательности связных экземпляров, непохожих на стандартные данные и неким условием: отличность таких кадров от стандартных, при соблюдении двух этих условий, кадры видео будут являться аномальными [3]. Похожим набором характеристик могут обладать кадры, представляющие смену ракурса или сцены, чтобы избежать ошибочного отнесения таких объектов к аномальным, необходимо обучить нейронную сеть относить наборы кадров к трем классам: «норма» — все кадры стандартны, объекты, распознанные во фрейме, мало отличаются друг от друга, «аномалия» — фреймы, содержащие подряд идущие кадры (коллективная аномалия), обрамленные нормальными кадрами (объекты, распознанные на подряд идущих кадрах сильно отличаются от объектов на обрамляющих) и «смена сцены» — фрейм содержит 2 набора нормальных кадров (s1 и s2) с четкой границей между ними, распознанные объекты s1 и s2 сильно отличаются друг от друга.
Метод выявления аномалий путем классификации фреймов можно разбить на следующие этапы:
- Подготовка набора видео для обучения, (видео должны быть подобраны таким образом, чтобы их можно было разделить на 2 класса: видеоряд без смены ракурса — нормальное видео, видеоряд со сменой ракурсов/планов);
- Кадрирование набора видео;
- Искусственное создание третьего класса — видео с аномалией, путем замены (или добавления) кадров исходного видео кадрами из другого видеоряда;
- Получение описания (какие объекты и в каком количестве удалось распознать на каждом из фреймов) кадрированного видео при помощи предобученной сверточной нейронной сети YOLOv5;
- Составление словаря всех распознанных объектов, путем присвоения номера каждому объекту, в зависимости от частоты встречаемости в видеоряде (чем чаще объект встречается, тем меньше номер);
- Кодирование каждого кадра при помощи данного словаря (добившись единообразия: указав максимальное число объектов, распознавание которых на кадре вызывает интерес, если обнаруженных объектов окажется больше, они будут проигнорированы, а если меньше, то их позиции заполнятся нулями);
- Разбивка закодированных кадров на фреймы (группы длиной n по принципу “скользящего окна”);
- Создание рекуррентной нейронной сети (Keras), принимающей на вход группы из фреймов;
- Получить результат для каждой такой группы (вероятность принадлежности к одному из 3 классов: «норма», «аномалия», «смена сцены»).
Результаты некоторых этапов работы приведены ниже:
Этап 4: в качестве одного из результатов работы нейронной сети было получено изображение, на котором содержались именованные рамки, ограничивающие каждый распознанный объект, согласно набору возможных для распознавания объектов (такой набор, множество классов, определяется выборкой, используемой для предобучения сети), пример работы YOLOv5 с подготовленными данными представлен на рисунках 1, 2.
Рис. 1. Пример детектирования объектов на одном кадре
Рис. 2. Пример детектирования объектов в видеоряде
Этап 5: получив описание каждого кадра и множество обнаруженных классов в видеоряде, составляется «словарь» на основе взаимно-однозначного соответствия между классом и числом с учетом частоты встречаемости класса (присваивание наименьшего номера наиболее часто встречающемуся на видео классу), пример сгенерированного словаря представлен в таблице 1.
Таблица 1
Словарь
Объект |
Номер |
cow |
1 |
dog |
2 |
elephant |
3 |
zebra |
4 |
horse |
5 |
Этап 6: зададим m — максимальное число объектов, распознавание которых на кадре вызывает интерес. Для примера, отображенного в таблице 2, m = 10, позиции недостающих объектов на кадре, если распознано меньше, чем m, заполнены нулями.
Таблица 2
Описание кадров
Описание кадра |
Численная интерпретация |
сow, сow, сow, сow |
[0 0 0 0 0 0 1 1 1 1] |
dog, cow, dog |
[0 0 0 0 0 0 0 2 1 2] |
elephant |
[0 0 0 0 0 0 0 0 0 3] |
zebra, сow, сow, сow, сow, dog, horse, cow, cow, elephant |
[4 1 1 1 1 2 5 1 1 3] |
Этап 8: cформированные последовательности кадров (фреймы) служат входными данными для последовательной модели рекуррентной нейронной сети Keras. В подготовленной выборке содержатся 200 фреймов, принадлежащих классу «аномалия», 198 фреймов, принадлежащих классу «норма», 216 фрейма класса «смена сцены»; из них 80 % образуют обучающую и 20 % валидационную выборки. В качестве тензора выходных значений используется двумерный массив k × 3, где k — число полученных методом скольжения окон, где каждый массив длиной 3 состоит из одной единицы и двух нулей. Единица на каждой конкретной позиции означает принадлежность данного среза кадров к одному конкретному классу.
Этап 9: графики функций потерь:
где — фактическое и прогнозируемое распределение вероятностей для всех классов в задаче,
и точности работы:
где — число правильных и общее число прогнозов, построенной модели приведены на рис. 3, 4.
Рис. 3. Графики функций потерь
Рис. 4. Графики функций точности
Детальные результаты предсказаний отражены в таблице 3, из которой легко можно найти значения , используемые для расчета функции точности
Таблица 3
Матрица ошибок
«норма» |
«смена сцены» |
«аномалия» |
|
«норма» |
49 |
13 |
3 |
«смена сцены» |
2 |
30 |
0 |
«аномалия» |
3 |
1 |
39 |
Выводы: в ходе выполнения работы удалось достичь точности классификации срезов кадров выше 80 %, при этом точность определения аномального фрейма достигает 90 %, что доказывает эффективность разработанного метода выявления аномалий в видеопотоке на основе анализа контекста сцены.
Литература:
- Nasr, A. A. A Learnable Anomaly Detection System using Attributional Rules /, A. A. Nasr, M. Z. Abdulmaged // International Journal of Computer Network and Information Security. — 2016. — Vol. 8(11).
- Nayak, R. A comprehensive review on deep learning-based methods for video anomaly detection [Текст] / R. Nayak, Pati C, S. Das. // Image and Vision Computing. — 2021. — Vol.106(6). — P. 104078.
- V. Chandola, Anomaly detection: A survey [Текст] / A. Banerjee, V. Kumar // ACM Computing Surveys. — 2009. — Vol. 41(3). — P. 1–58.