Способ распознавания объектов в системе видеонаблюдения
OBJECT RECOGNITION METHOD IN VIDEO SURVEILLANCE SYSTEM

Изобретение относится к способу распознавания объектов, в частности, к алгоритму отслеживания объектов с использованием нейросетей для обработки фото и видеопотоков. Может быть применимо для распознавания заданных объектов, определения их местоположения и слежения за дальнейшим передвижением, например, в системах безопасности для выявления оружия в зоне слежения. Помимо оружия способ может быть направлен на распознавание лиц людей, транспортных средств, на распознавание огня и дыма, тех или иных продуктов, животных и других объектов.
Использование нейронных сетей в системах видеонаблюдения на сегодняшний день является недостаточно эффективным. Это объясняется тем, что большинство современных нейронных сетей настраивают на общедоступных базах изображений (например, базах ImageNet, CIFAR, PASCAL и др.), а в них мало представлены изображения с разрешениями, которые используются в системах видеонаблюдения. Кроме того, сверточные нейросети предпочитают работать с квадратными изображениями, которые не соответствуют характеристикам видеопотока получаемого с камер видеонаблюдения. Кроме того, нейросети, обладающие высокой достоверностью по определению объектов или событий, являются многоуровневыми, состоят из большого числа нейронов, и из-за высоких требований к вычислительным устройствам в системах видеонаблюдения не используют большое количество видеокамер по экономическим причинам. Это снижает вероятность определения объекта при видеонаблюдении, не позволяет отследить перемещения объекта для осуществления оперативных действий. Кроме того, использование сверточной нейронной сети без использования быстрых методов обработки изображений не обеспечивает необходимую скорость распознавания объектов в системах слежения.
Известна система и способ для искусственной нейронной сети, инвариантной к сдвигу по патенту РФ на изобретение №2656990, G06N 9/00, 2018. Способ содержит этапы, на которых подают входные данные на текущий слой обученной нейронной сети, обрабатывают поданные входные данные для получения выходных данных, и если номер текущего слоя нейронной сети меньше N, переходят на следующий слой нейронной сети, если равен N, выводят полученные выходные данные. Способ дополнительно содержит предварительные этапы, на которых получают примерный размеченный набор данных для обучения, обучают нейронную сеть на основе полученного примерного размеченного набора данных путем определения соответствующих весовых коэффициентов. Сигналом, подлежащим обработке, может являться изображение, а заданное направление может представлять собой направление в сторону одного из прилегающих соседних пикселей, при этом соседние пиксели определяются исключительно топологией данных (например, 1Д (звук), 2Д (изображение) и 3Д (видео), и т.д., и т.п.). Устройство обработки представляет собой центральный процессор (CPU) и/или графический процессор (GPU). Недостатком является невысокие скорость и эффективность распознавания объекта.
Известен способ распознавания объектов с помощью нейронных сетей по патенту РФ на изобретение №2697613, G06K 9/62, 2019. В способе используют встроенную в камеру нейронную сеть, работающую с помощью более мощной внешней нейронной сети. Получают изображение объекта с помощью камеры, содержащей модуль обработки кадров изображения с использованием одной или совокупности нескольких нейронных сетей F. Детектируют с помощью указанного модуля изображения и выделяют области изображений Oi с объектами интереса. Далее передают области изображений Oi с выделенными объектами интереса на вход одной или совокупности нескольких нейронных сетей F внутри камеры. Вычисляют по выделенным областям значимые признаки объектов f(Oi). Передают те же самые области изображений Oi с выделенными областями интереса стороннему более мощному серверу, на котором установлена одна или несколько более сложных нейронных сетей G. Вычисляют по выделенным областям значимые признаки объектов g(Oi) на внешней нейронной сети G, передают обратно в камеру признаки объектов g(Oi), производят переобучение нейронной сети в камере F с использованием накопленных в камере изображений Oi и значений векторов признаков g(i), вычисленных с помощью внешней нейронной сети G. Недостатком является сложность применения данной сети в системах видеонаблюдения, связанная с необходимостью фиксирования событий на изображениях с низким разрешением, что замедляет скорость обработки данных и ухудшает достоверность обнаружения объектов. Отсутствие возможности корректировки результатов обучения сети так же снижает эффективность распознавания объектов.
Известен способ распознавания объектов с помощью искусственных нейронных сетей по патенту на изобретение US 2020342324, G06K 9/00, 2020. Способ включает в себя захват множества эталонных изображений камерой, связанной с краевым узлом в сети связи. Эталонные изображения принимаются централизованным сервером в сети связи. Эталонные изображения анализируются с помощью родительской нейронной сети централизованного сервера для определения подмножества объектов, идентифицированных родительской нейронной сетью в эталонных изображениях. Один или несколько фильтров, которые реагируют на подмножество объектов, выбираются из родительской нейронной сети. Обрезанная нейронная сеть создается только из одного или нескольких фильтров. Урезанная нейронная сеть развертывается на граничном узле. Изображения в реальном времени захватываются камерой краевого узла, а объекты в изображениях в реальном времени идентифицируются с помощью сокращенной нейронной сети. Недостатком является ограниченная функциональность способа, связанная с сокращением нейронной сети для обработки изображений с граничных камер. Это не позволяет создать полную картину изображения на всей площади слежения, точно определить местоположение распознанного объекта и отследить его дальнейшее перемещение.
В качестве ближайшего аналога заявляемому техническому решению выбраны устройство и способ распознавания объектов по патенту на изобретение KR20200039043, G06K 9/20, 2020. Устройство содержит блок предварительной обработки, процессор которого включает в себя средство масштабирования, устройство кадрирования изображения и нормализатор. Предварительная обработка включает в себя изменение разрешения входного изображения для соответствия входному сигналу нейронной сети с помощью средства масштабирования, выбор и обрезку только определенной области с помощью устройства кадрирования изображения, вычитание среднего значения и корректировку масштаба в соответствии с каналом RGB изображения с помощью нормализатора. Для обнаружения объекта во входном изображении используют обученную сверточную нейронную сеть, в которой в блоке обучения определяют значение достоверности объекта. В блоке обнаружения преобразуют значение достоверности в значение вероятности, которое указывает на то, что объект соответствует заданному типу. Далее генерируют блок, соответствующий объекту, на основе результата сравнения между значением вероятности и предварительно сохраненным эталонным значением. Блок обучения включает в себя сеть, которая выводит значение достоверности наличия объекта на входном изображении. Объект представляет собой мультиобъект, включающий в себя множество объектов. Блок обучения выводит множество значений достоверности для всех мультиобъектов. Блок обнаружения объекта включает в себя процессор, который преобразует значение достоверности в значение вероятности, включает генератор прямоугольников, декодер ограничивающего прямоугольника, подавитель и блок управления. Процессор преобразует множество значений достоверности, получаемых из блока обучения, во множество значений вероятности. Значения вероятности указывают на то, что объект соответствует заданному типу. Процессор генерирует индекс для объекта только тогда, когда значение вероятности объекта, имеющего наибольшее значение вероятности среди множества значений вероятности, превышает порог достоверности, который является предварительно сохраненным эталонным значением. Это значение установлено заранее и сохранено в памяти. Генератор прямоугольников создает блок только для индексированного объекта. Декодер ограничивающего прямоугольника отражает выходной сигнал смещения из нейронной сети и выводит точную информацию о положении прямоугольника на основе информации от генератора прямоугольников. Подавитель удаляет перекрывающуюся информацию о местоположении из выходной информации, соответствующей каждому значению вероятности. Недостатками способа являются не высокий результат по достоверности определения объекта при использовании изображений с низким разрешением, сложность с определением точного местоположения объекта, недостаточная скорость распознавания объекта.
Техническим результатом заявляемого способа распознавания объектов с помощью системы видеонаблюдения является повышение степени достоверности и вероятности обнаружения объекта, повышение скорости распознавания объекта.
Технический результат достигается за счет того, что в способе распознавания объектов системой видеонаблюдения, включающем формирование обучающего набора данных, состоящего из изображений объекта, приведение изображений в формат для ввода в нейросеть, выделение на изображениях нужной области, введение полученного обучающего набора данных в сверточную нейронную сеть, проведение обучения сверточной нейронной сети, получение набора коэффициентов, введение исследуемых изображений в обученную сверточную нейронную сеть, распознавание объекта на исследуемых изображениях, согласно изобретению, в обучающий набор вводят изображения объектов с разных ракурсов, в обучающий набор дополнительно вводят коллажи с объединением изображений объекта, проводят разделение обучающего набора на тренировочную часть, в которую входит 90% изображений обучающего набора, и тестовую часть, в которую входит 10% изображений обучающего набора, обучение сверточной нейронной сети заканчивают, когда на тестовой части обучающего набора прекращается рост выбранных параметров характеризующих качество распознавания, а на тренировочной части этот рост продолжается, после обучения выявляют кадры с нераспознанными объектами и с ложными объектами, добавляют в графическом редакторе в эти кадры изображения объекта, устанавливают видеокамеры в зоне возможного обнаружения объекта, при этом хотя бы две камеры устанавливают с образованием стереопары, в которой обе камеры направлены на одну точку в пространстве, устанавливают высокоскоростную камеру с поворотным механизмом, устанавливают радар и средства аудиовизуальной сигнализации, все камеры, радар и средства аудиовизуальной сигнализации связывают с контроллером основного процессора, пропускают фото и видеопотоки, полученные с видеокамер через полученный набор коэффициентов сверточной нейронной сети, проводят пакетную обработку кадров, удаляют из обработки кадры с малым размером В-frame, получают вектор коэффициентов распознавания, по нему определяют наличие объекта, с помощью камер стереопары автоматически определяют расстояние до объекта, автоматически направляют высокоскоростную камеру на объект и автоматически настраивают её фокусное расстояние, получают увеличенное изображение зоны расположения объекта, автоматически направляют радар на объект и определяют направление и скорость движения объекта, с помощью радара и периферийных камер отслеживают дальнейшее движение объекта.
Кроме того, при пропускании фото и видеопотоков, полученных с видеокамер через набор коэффициентов сверточной нейронной сети, используют оборудование с поддержкой CUDA API.
Кроме того, при пропускании фото и видеопотоков, полученных с видеокамер через набор коэффициентов сверточной нейронной сети, используют оборудование с поддержкой Vulcan API, при этом разбивают обработку изображения на узлы.
Технический результат обеспечивается за счет введения дополнительных операций на этапе обучения сети, за счет оснащения системы видеонаблюдения дополнительным оборудованием и его компоновки определенным образом, за счет модификации нейронной сети для использования ее в системе видеонаблюдения. В обучающий набор изображений объекта дополнительно вводят коллажи, в которых соединяют несколько кадров, для получения уменьшенного изображения объекта, например, оружия. Это позволяет повысить достоверность распознавания объекта при любом соотношении его размеров с размерами кадра, т.е., и в случае, когда площадь изображения объекта занимает всю площадь кадра и в случае, когда она занимает 1/1000 по отношению к площади кадра. Введение в обучающий набор изображений объектов, выполненных с разных ракурсов, позволяет повысить вероятность их распознавания с помощью нейронной сети, т.к., обученная сеть является не инвариантной относительно пространственных положений объекта, и не использует информацию/предположения о симметричности объектов. Разделение обучающего набора на тренировочную и тестовую часть при соблюдении соотношения 90/10 позволяет выбрать оптимальное время обучения нейросети, что в целом способствует повышению скорости распознавания объекта. Выявление после обучения сети кадров с нераспознанными и ложными объектами позволяет провести анализ результатов обучения нейросети, откорректировать набор эталонных изображений, дополнив их изображениями объектов с недостающих ракурсов, или находящимися в неучтенных ранее положениях или состояниях. Это позволяет повысить достоверность и вероятность обнаружения объекта. Установка видеокамер в зоне возможного обнаружения объекта, таким образом, что хотя бы две камеры направлены в одну и ту же точку этой зоны, позволяет автоматически вычислить линейное расстояние до объекта с разных ракурсов. Это в свою очередь позволяет определить, линейные размеры объекта. И пометить слишком большие или слишком маленькие объекты как ложные срабатывания, т.к., они указывают на то, что в зоне слежения обнаружен не сам объект, а, например, его изображение. Данное изображение не обрабатывается далее нейронной сетью и не отмечается. Это повышает и скорость, и достоверность обнаружения объекта. Возможность автоматического вычисления линейного расстояния до объекта с разных ракурсов позволяет точно определить его местоположение и навести на него высокоскоростную камеру с поворотным механизмом. Это способствует повышению достоверности распознавания объекта, т.к., высокоскоростная камера, как правило, использует более узкое поле изображения и как следствие, сохраняет больше деталей изображения по сравнению с обычными камерами. Кроме того, данная камера не имеет искажений изображения при быстром движении, в отличии от обычной камера из-за особенностей работы её CMOS-матрицы с прогрессивным сканированием. Установка в зоне возможного обнаружения объекта средств аудиовизуальной сигнализации позволяет использовать аудиовизуальное подтверждение обнаружения объекта, сообщать таким образом оператору о событии, и тем самым уменьшать количество ложных срабатываний. Установка радара позволяет совместно с периферийными камерами отслеживать движение объекта после его распознания и определять его новые координаты, в том числе и во время выхода объекта из поля зрения камер. Это повышает достоверность распознавания объекта и качество работы системы видеонаблюдения в целом. Использование пакетной обработки кадров позволяет собирать кадры из нескольких источников в один большой кадр для сохранения скорости обработки, соответствующей видеопотоку. Удаляют из обработки B-frame'ы малого размера, т.е. удаляют кадры, которые используются как интерполяция между предыдущим и последующим кадрами как I так и Р типа и по которым, вследствие их малого размера понятно отсутствие изменений в изображении по сравнению с предыдущими кадрами. Такое удаление малозначимых слоёв в сверточной нейросети позволяет значительно повысить скорость обработки видеопотока с камер системы. При использовании для обработки видеопотока оборудования с поддержкой Vulcan API разбивают обработку изображения на узлы, что позволяет работать нейросети с большими изображениями, и включает возможность работы с далеко находящимися объектами, у которых теряются детали изображения в случае работы с изображениями меньшего размера. Это повышает достоверность распознавания объекта.
На фигуре представлена схема расположения оборудования системы видеонаблюдения.
Способ распознавания объектов системой видеонаблюдения осуществляют следующим образом.
В зоне слежения за объектом устанавливают видеокамеры 1, 2, 3, 4, в качестве которых используют широкоугольные панорамные камеры с углом обзора 140-160°. Камеры 1 и 3 направляют в одну точку, эти камеры образуют стереопару. Количество камер определяется площадью места наблюдения. Устанавливают высокоскоростную камеру 5 с поворотным механизмом, угол обзора которой составляет 80-120°. Устанавливают радар 6 в зоне обзора высокоскоростной камеры 5. Устанавливают сигнальную лампу 7 и динамик 8. Все камеры 1, 2, 3, 4, высокоскоростную камеру 5, сигнальную лампу 7 и динамик 8 связывают с видеоконтроллером 9 основного процессора, в котором установлена сверточная нейросеть. Видеоконтроллер 9 связывают с монитором 10 для трансляции изображений с камер 1, 2, 3, 4, и с монитором 11 для трансляции изображений с высокоскоростной камеры 5. Данная схема не является единственным вариантом размещения оборудования системы видеонаблюдения, количество единиц оборудования и схема его расположения зависят от конкретных объектов и целей их распознавания. Формируют обучающий набор данных для обучения сверточной нейросети. Для этого изображения объектов, например, сканированные изображения оружия, взятые из публичных источников, заводят в обучающую программу нейросети стандартной архитектуры. При этом используют один из стандартных пакетов для конфигурации и обучения, например PyTorth или DarkNet, который позволяет создать свою конфигурацию свёрточной нейросети. Описание областей изображений, в которых есть оружие помещают в отдельные текстовые файлы. Для выделения этих областей классифицируют объекты одним из нескольких способов с использованием дополнительных алгоритмов. По одному из способов для выделения областей потенциально интересных нейросети, заводят в нее изображение целиком, по другому способу с помощью фильтра сразу выявляют интересные области на изображении и заводят только их в универсальную нейросеть. В обучающий набор вводят изображения объектов, выполненные с разных ракурсов. Наряду с цельными изображениями объекта в обучающий набор вводят коллажи с объединением изображений объекта. В коллажах соединяют несколько кадров для получения уменьшенного изображения оружия, чтоб оно распознавалось при его разных размерах в кадре, например, в случае, когда оно занимает 1/10 площади кадра и в случае, когда оно занимает 1/1000 площади кадра. Проводят разделение всего набора кадров на тренировочный и тестовый наборы. Оптимальным является деление, при котором 90% изображений относятся к тренировочному набору, 10% изображений относятся к тестовому набору. Проводят обучение сверточной нейросети. При обучении каждое изображение, пропускаемое через сеть, содержит как координаты обрамляющей рамки вокруг объекта, так и класс, к которому объект относится.
Сеть учится распознавать не конкретный объект, представленный на изображении, а целый класс похожих объектов, и ряд других классов. Процесс обучения заканчивают, когда на тестовом наборе перестаёт расти или падает процент распознавания, а на тренировочном он, по-прежнему, улучшается. По результатам тестового режима определяют необходимость проведения дообучения сети. С помощью специальной программы на тестовых изображениях выделяют распознанное оружие в рамку. Проводят анализ результатов. По кадрам, где нет рамки, определяют, в каких положениях и какое оружие не распознаётся. Например, анализ может показать, что не распознаются двустволки с горизонтальным расположением стволов, когда они в переломленном состоянии и/или, когда камера смотрит прямо в их стволы. Анализируют количество таких кадров. Далее добавляют такие не выявленные объекты в тренировочный и тестовый наборы изображений. Кроме того, если при тестировании нейросети обнаруживают какие-то типичные кадры с ложными срабатываниями, то такие кадры тоже помечают как не содержащие распознаваемых объектов или с помощью графического редактора в эти кадры добавляют оружие. Проводят дообучение нейросети и на выходе получают набор коэффициентов.
Далее пропускают видеопотоки, полученные с видеокамер 1, 2, 3, 4 через обученную сверточную нейронную сеть. На данном этапе распознавания используют классификатор, применяемый для обучения сети. С выхода сверточной нейросети снимают вектор параметров, в котором есть список вероятностей принадлежности объекта к каждому классу. При обработке видеопотока с камер используют ряд приемов по оптимизации нейросети, в частности, используют удаление малозначимых слоёв - pruning, и поддержку пакетной обработки кадров - batching. Это позволяет на порядок ускорить обработку кадров видеопотока и использовать более бюджетное оборудование с меньшим количеством памяти и процессоров, позволяет поддерживать несколько режимов работы. Так на одном режиме, при котором важно количество поддерживаемых камер, и достаточно чтоб расстояние, на котором распознаётся оружие было ограничено 15 метрами возможно использование бюджетного оборудования, обслуживающего 16 камер. На другом режиме, когда важна максимальная дальность распознавания оружия, используют бюджетное оборудовании обслуживающее 4 камеры, но распознавание оружия при этом идет на 30-50 метрах. Оптимизация нейросети может заключаться в удалении из обработки кадров с малым размером В-frame. Если камера поддерживает дифференциальный протокол отправки кадров, то при малых изменениях в кадре типа B-frame, он обладает очень маленьким размером, это является основным сигналом к тому, что кадр не подлежит обработке. В случае если видеопоток сформирован с использованием кодека H.265, удаляют из обработки кадры с малым размером В-frame. Используют два варианта пакетной обработки кадров. При первом варианте несколько изображений уменьшают и совмещают в один кадр так, чтоб поместить его в размер изображения поддерживаемый нейросетью. Преимущество этого варианта в том, что за одну операцию сверточная нейросеть обрабатывает несколько кадров. При втором варианте оригинальные изображения склеивают в очень широкий суперкадр. Этот суперкадр за одну операцию передачи памяти помещают в графический процессор GPU. При этом отсутствуют промежуточные операции по загрузке/выгрузке кадра, и обработка такого суперкадра идёт за меньшее время по сравнению с обработкой отдельных изображений. Таким образом, при вводе кадров видеопотока в обученную сети, есть возможность собирать кадры из нескольких источников в один большой для сохранения скорости обработки, соответствующей видеопотоку. Например, при использовании четырех камер, дающих изображения 10х10 пикселов каждая 25 раз в секунду, в сеть вводят один сборный кадр 20х20 пикселов 25 раз в секунду. При обработке видеопотока могут использовать оборудование с поддержкой CUDA API или оборудование с поддержкой Vulcan API. При использовании GPU с поддержкой Vulcan API, обработка может идти на 30-50% медленнее. Для избежания этого разбивают обработку изображения на узлы при использовании кластера из маломощного оборудования. Подобную обработку изображений могут применять так же для CUDA и для обработки просто на CPU. Изображения имеет разрешение в пикселях, например 1920х1080. Камера имеет поле зрения, например, 90х90° или 80х120°. Поэтому, на объект, который находится вблизи камеры, приходится много пикселей, когда на тот же объект, расположенный далеко приходится значительно меньше пикселей, в результате чего теряются детали изображения. Один GPU обычно обладает размером памяти 8-12Гб, в нем трудно разместить нейросеть, работающую с очень большим изображением, например, больше 1024х1024 пикселей. Поэтому для распознавания объекта на больших расстояниях - больше 30-50м, обрабатывают изображение на не очень дорогих GPU, по частям с их перекрытием.
При распознавании объектов программа нейросети ориентируется на поля вектора коэффициентов, который появляется на выходных слоях при пропускании кадра через нейросеть. По содержимому определённых ячеек этого вектора определяют, есть или нет в кадре распознанное оружие. Фактически, вектор состоит из вероятности принадлежности части изображения определённому классу объектов и координат этой части изображения. Оператор, постоянно видит все видеопотоки, следя за мониторами 10 и 11, и ориентируется при обнаружении объекта на появление на мониторе кадра с рамкой, на мигание сигнальной лампы 7 и на сигналы динамика 8.
При обнаружении объекта с помощью камер стереопары 1 и 3 автоматически определяют расстояние до объекта. В результате определения расстояния до объекта удостоверяются в том, что объект примерно соответствует возможным параметрам реальных объектов данного класса объектов, в случае несоответствия не проводят дальнейшие действия, т.к. он является или двумерным изображением объекта на картинке или масштабной моделью. С помощью стереопары определяют и размеры объекта. Например, световая и аудио сигнализация не срабатывают, когда в качестве объекта появляется рисунок автомата, размером 2х2см. Таким образом, автоматическое вычисление расстояния до объекта позволяет избежать лишних операций и сократить время обработки видеопотока. Кроме того, расстояние до объекта определяют для вычисления фокусного расстояния высокоскоростной камеры 5для ее дальнейшего наведения на объект. По взаимному расположению камер стереопары 1 и 3 и расположению высокоскоростной камеры 5 определяют угол поворота высокоскоростной камеры 5. Автоматически направляют высокоскоростную камеру 5 на объект, получают увеличенное изображение зоны расположения объекта. При подтверждении обнаружения оружия на мониторе 11 с высокоскоростной камеры 5 автоматически направляют радар 6 на объект и определяют направление и скорость движения объекта, в частности, движущегося человека с оружием, для принятия дальнейших необходимых действий. В отличие от камеры радар способен отслеживать движение конкретного объекта. Использование системы видеонаблюдения вышеописанным способом позволяет распознать объект с высокой точностью и значительно повысить скорость обработки видеопотока. Так скорость обработки повышается от одного до двух порядков относительно существующих программ- аналогов.
Таким образом, заявляемое изобретение позволяет повысить достоверность и вероятность обнаружения объекта, повысить скорость распознавания объекта с помощью системы видеонаблюдения.