В этом блоге объясняется, как отслеживать такие объекты, как человек и любой объект.
Для отслеживания объекта в основном используются две важные вещи. Я перечислил ниже.
Обнаружение объекта
Отслеживание объекта
Устройства для контроля на расстоянии здесь
Потому что, если нам нужно отслеживать какой-либо объект, сначала определите этот объект в кадре видео и отслеживайте его.
Обнаружение объекта:
Обнаружение объектов - это компьютерная технология, связанная с компьютерным зрением и обработкой изображений, которая занимается обнаружением экземпляров семантических объектов определенного класса (таких как люди, здания или автомобили) в цифровых изображениях и видео.
Обнаружение объекта - это процесс классификации и определения положения объекта на изображении. Этот шаг необходимо выполнить перед отслеживанием объекта, потому что нам нужно найти, где конкретный объект присутствует в каждом кадре.
Обнаружение объекта вернет координаты ограничивающего прямоугольника вместе с классом объектов, к которому он принадлежит.
Методы обнаружения объектов обычно относятся либо к подходам на основе машинного обучения, либо к подходам на основе глубокого обучения . Для подходов к машинному обучению становится необходимым сначала определить функции с помощью одного из приведенных ниже методов, а затем с помощью такой техники, как машина опорных векторов (SVM), для выполнения классификации. С другой стороны, методы глубокого обучения, которые могут выполнять сквозное обнаружение объектов без специального определения функций и обычно основаны на сверточных нейронных сетях (CNN).
Подходы к машинному обучению:
Среда обнаружения объектов Виолы-Джонса на основе функций Хаара
Масштабно-инвариантное преобразование признаков (SIFT)
Особенности гистограммы ориентированных градиентов (HOG)
Подходы к глубокому обучению (архитектура):
Предложения по регионам (R-CNN, Fast R-CNN, Faster R-CNN)
Детектор Single Shot MultiBox (SSD)
Ты смотришь только один раз (YOLO)
Выбранный алгоритм для обнаружения:
существуют различные фреймворки для реализации обнаружения объектов, такие как Tensorflow, Keras, YOLO, PyTorch и т. Д., Но я использовал фреймворк YOLO и их собственную модель для обнаружения объектов, также называемую YOLO (You Look Only Once).
Я использовал YOLOv3 вместо YOLOv2, поскольку авторы статьи утверждали, что архитектура YOLOv3 дает более точные результаты. Несмотря на то, что YOLOv3 имеет большее количество слоев, чем YOLOv2, он не теряет количество кадров в секунду (FPS).
Основная концепция YOLOv3 состоит в том, что он разбивает изображение на сетку NxN, в каждой ячейке сетки прогнозируются три прямоугольника, и каждый прямоугольник прогнозирует всего 4 + 1 + (количество классов). 4 точки - это координаты ограничивающего прямоугольника, то есть x, y, w, h, где x и y - координаты центра прямоугольника, w - ширина, а h - высота. 1 представляет собой оценку объектности, то есть вероятность того, что коробка содержит объект (это значение находится между 0 и 1).
В архитектуре используется множество остаточных уровней, что позволяет избежать какого-либо снижения производительности при увеличении количества слоев.
Используя это, я обнаруживаю и объект и использую алгоритм отслеживания (обсуждается ниже) для отслеживания интересующих объектов.
Блоги по обнаружению объектов с помощью yolov2 и v3:
1. Как обучить YOLOv2 обнаруживать пользовательские объекты
2. Как обучить несколько объектов в YOLOv2, используя собственный набор данных
3. Как обучить YOLOv3 обнаруживать пользовательские объекты
Отслеживание объектов:
Отслеживание объекта можно определить как процесс привязки к движущемуся объекту и возможности определить, является ли объект тем же, что и в предыдущем кадре.
Оно включает:
Обнаружение движения : часто со статической камеры. Часто встречается в системах наблюдения. Часто выполняется только на уровне пикселей (из-за ограничений скорости).
Локализация объекта : фокусирует внимание на интересующей области изображения. Сжатие данных. Часто обнаруживаются только точки интереса, которые позже используются для решения проблемы соответствия.
Сегментация движения: изображения сегментируются на области, соответствующие различным движущимся объектам.
Трехмерная форма из движения: также называется структурой из движения. Проблемы те же, что и при стереозрении.
Отслеживание объекта: часто отслеживается разреженный набор функций, например угловые точки.
Чтобы было понятнее, давайте возьмем пример 3 движущихся автомобилей. Теперь нам нужно найти автомобиль, который первым достигнет финишной черты.
Для этого нам нужно сделать несколько вещей:
1. Однозначно идентифицировать машину по некоторому номеру или алфавиту.
2. Сохранять этот номер или алфавит для каждой машины на протяжении всей гонки, отслеживая их во время движения.
3. Автомобиль, который подъедет первым, можно узнать по номеру.
Вышеупомянутые шаги включают использование отслеживания объектов.
Обязательным условием будет наличие детектора объекта для обнаружения интересующего объекта.
Это можно сделать с помощью различных методов, таких как:
1. Использование предыдущего кадра
2. Использование n-предыдущих кадров
Мы можем сохранить прошлые позиции каждого объекта в структурированном формате и использовать его в качестве ссылки для определения уникального ID связан с каким объектом. Решение будет работать, но не будет масштабируемым, поскольку нам требуется много памяти для хранения данных предыдущего кадра, и нам нужно обработать более n кадров данных для определения идентификатора.
3. Предложенный
мной алгоритм. В моем алгоритме я использую только данные непосредственно из предыдущих кадров, IOU (пересечение по объединению) и линейное присвоение суммы.
Алгоритм включает поиск IOU между всеми комбинациями объектов текущего и предыдущего кадров и использование линейного назначения суммы для присвоения уникального идентификатора на основе наименьшего IOU.
Алгоритмы отслеживания объектов:
Отслеживание объектов - ссылка на предыдущий кадр с использованием евклидова расстояния ( ссылка )
Отслеживание объектов - ссылка на предыдущие n-кадры с использованием евклидова расстояния ( ссылка )
Отслеживание объектов - со средней долговой распиской и линейной суммой (ссылка скоро появится)