В настоящее время построение комплексных систем безопасности невозможно представить без систем видеонаблюдения. Снижение цен на видеоаппаратуру, развитие и удешевление средств для вычислительных преобразований, развитие алгоритмов интеллектуальной обработки информации – все это привело к широкому распространению видеонаблюдения как для охраны частной собственности, так и для организации безопасности в местах массового пребывания людей. [1]
Наиболее важной задачей обработки видеопотока, является распознавание объектов в наблюдаемой сцене, а также интеллектуальный анализ происходящего для своевременной реакции на возникающие чрезвычайные ситуации. Автоматизация всех этапов видеонаблюдения способна облегчить работу операторов таких систем, а также повысить оперативность принятия мер по обеспечению безопасности.
Важным этапом автоматизации процессов видеоаналитики, является точное и безошибочная сегментация изображения, с последующей классификацией объектов, попадающих в сегменты. Сегментация изображения — это процесс присвоения специальных меток каждому пикселю изображения, таким образом, чтобы пиксели с одинаковыми метками имели схожие визуальные признаки. С подобными задачами идеально справляются искусственные нейронные сети, класс программ, предназначенный для интеллектуального анализа любых входных данных. В работе рассматривается построение программного комплекса для сегментации и классификации изображений с применением сверточной нейронной сети.
Существует большое количество формализованных методов сегментации изображений. Большинство из них применимы при построении нейросетевых программ для задач распознавания образов. По принципу работы все эти алгоритмы условно делятся на две группы: [2]
- Методы, выделяющие границы сегментов, благодаря перепадам определённых признаков изображения.
- Методы, выделяющие границы сегментов, благодаря однородности признаков области.
Главной проблемой методов, относящихся к первой группе, является несвязность полученных при вычислении границ объектов. А решения этой проблемы можно добиться путем установки более высоко производительного вычислительного оборудования, что не всегда является приемлемым выходом для конечного пользователя.
Этого недостатка лишены методы второй категории, ведь их изначально создавали для создания точных контуров сегментации, которые удовлетворяют некоему заданному критерию однородности.
Одним из таких методов является метод выращивания областей. [3] Простейшая реализация такого метода состоит из следующих этапов:
- На заданном изображении выбираются точки – центры сегментации. Например, точки с максимальной яркостью различных цветов.
- Далее идет оценка соседних пикселей изображения. Если они (пиксели) удовлетворяют заданному критерию близости, например, цветовому тону и насыщенности, то они суммируются с центром сегментации, образуя более широкий диапазон.
- Критерием остановки роста области и анализа соседних пикселей так же служит заданное правило, например, слишком большое отклонение пикселя в цвете.
Для тестирования данного алгоритма была применена Mask R-CNN (MRCNN). Это конструктор нейронной сети, созданный командой Facebook Research и находящийся в открытом доступе для учебных целей. Для задачи сегментации изображения создадим модель трехслойного персептрона. Так как в работе алгоритма происходит сравнение двух соседних пикселей, во входном слое разместим 6 нейронов, по два нейрона на каждый цвет аддитивной модели RGB. Выходной слой будет представлен двумя нейронами, так как принимается решение о схожести или различии двух соседних пикселей.
Пусть на вход персептрона поступит изображение размером писклей. В рамках цветовой моде ли RGB зададим три матрицы , каждая из которых отвечает за интенсивность оттенка для пикселя. Пиксели обозначим как , где координаты пикселя в изображении. Цветовую информацию пикселя обозначим как . Центральные пиксели, от которых начнется анализ сегментов обозначим
Пусть на вход нейронной сети подано изображение. Последовательность действий программы должно быть следующее:
- Выбираем самые яркие точки изображения, обязательно различных цветов. Координаты выбранных пикселей принимаем за и считаем центром образования сегмента где количество сегментов на изображении.
- Пусть на некотором этапе в сегмент включено пикселей
- Последовательно перебираем все соседние пиксели от центра сегмента, не входящие в него.
- Для каждой пары соседних писклей, один из которых принадлежит сегменту, а другой нет создаем входной вектор нейронной сети
- Далее необходимо вычислить выходной вектор нейронной сети. Если пиксель принадлежит сегменту, то присваивается значение . Если пиксель не принадлежит сегменту, то переходим к следующему пикселю, не включённому в сегмент.
- Сегмент считается распознанным и завершенным, если все его соседние пиксели относятся к другим сегментам.
- Алгоритм заканчивает свою работу, когда каждый пиксель изображения будет иметь какую-либо метку сегмента.
Эксперимент проводился на тестовых изображениях воздушных шариков, разрешением 256 пикселей. До начала тестирования, потребовалась 52 итерации обучения, для достижения приемлемого уровня распознавания объектов-шариков на изображениях. На выходе нейронная сеть должна закрасить однотонным цветом сегмент изображения, где будет присутствовать целевой для распознавания объект, в нашем случае шарик.
Пример работы программы представлен на рисунке 1. Справа мы видим оригинальные изображения, слева результат распознавания и сегментирования шарика.
Рисунок 1 – Результат работы сегментации нейронной сети
Предложенный алгоритм комбинирования интеллектуального видеонаблюдения с алгоритмами ИНС для сегментации изображения показывает хорошие результаты при сегментации изображений, а работа над каждым изображением составила всего 10 секунд. Учитывая эти результаты можно сделать вывод, что при небольшом улучшении вычислительной мощности такой системы алгоритм вполне может справляться с мониторингом ситуаций через камеры видеонаблюдения в реальном времени.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
- Анштедт Т. Видеоаналитика: Мифы и реальность / Т. Анштедт, И. Келлер, Х. Лутц. – М.: Секьюрити Фокус, 2012. – 176 c.
- Белим С.В., Ларионов С.Б. Алгоритм сегментации изображений, основанный на поиске сообществ на графах // Компьютерная оптика. 2016. Т. 40. № С. 910
- Белим С.В., Кутлунин П.Е. Выделение контуров на изображениях с помощью алгоритма кластеризации // Компьютерная оптика. 2015. Т. 39. №. 1. С. 124.