Несколько возражают отслеживанию

Tracking является процессом определения местоположения движущегося объекта или нескольких объектов в зависимости от времени в видеопотоке. Отслеживание объекта не является тем же самым как обнаружением объектов. Обнаружение объектов является процессом определения местоположения предмета интереса в одной системе координат. Отслеживание обнаружений партнеров объекта через несколько систем координат.

Отслеживание нескольких объектов требует обнаружения, предсказания и ассоциации данных.

  • Обнаружение: Обнаружьте предметы интереса в видеокадре.

  • Предсказание: Предскажите объектные местоположения в следующей системе координат.

  • Ассоциация данных: Используйте предсказанные местоположения, чтобы сопоставить обнаружения через системы координат, чтобы сформировать дорожки.

Обнаружение

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

Обнаружьте объекты Используя стационарную камеру

Чтобы обнаружить объекты в движении со стационарной камерой, можно выполнить фоновое вычитание с помощью vision.ForegroundDetector Системный объект. Фоновый подход вычитания работает эффективно, но требует, чтобы камера была стационарной.

Обнаружьте объекты Используя движущуюся камеру

Чтобы обнаружить объекты в движении с движущейся камерой, можно использовать подход обнаружения раздвижного окна. Этот подход обычно работает более медленно, чем фоновый подход вычитания. Чтобы обнаружить и отследить определенную категорию объекта, используйте Системные объекты или функции, описанные в таблице.

Выберите алгоритм обнаружения

Тип объекта отследитьКамераФункциональность
Что-либо, что перемещаетсяСтационарный

vision.ForegroundDetector Система object™

Поверхности, глаза, нос, рот, верхняя часть телаСтационарный, перемещаясь

vision.CascadeObjectDetector Системный объект

ПешеходыСтационарный, перемещаясь

vision.PeopleDetector Системный объект

Категория пользовательского объектаСтационарный, перемещаясь

trainCascadeObjectDetector функция
или
пользовательский детектор раздвижного окна с помощью extractHOGFeatures и selectStrongestBbox

Предсказание

Отслеживать объект в зависимости от времени означает, что необходимо предсказать его местоположение в следующей системе координат. Самый простой метод предсказания должен принять, что объект будет около его последнего известного местоположения. Другими словами, предыдущее обнаружение служит следующим предсказанием. Этот метод является особенно эффективным для высокой частоты кадров. Однако использование этого метода предсказания может перестать работать, когда объекты перемещаются на различных скоростях, или когда частота кадров является низкой относительно скорости объекта в движении.

Более сложный метод предсказания должен использовать ранее наблюдаемое движение объекта. Фильтр Калмана (vision.KalmanFilter) предсказывает следующее местоположение объекта, принимая, что оно перемещается согласно модели движения, такой как постоянная скорость или постоянное ускорение. Фильтр Калмана также учитывает шум процесса и шум измерения. Process noise является отклонением фактического движения объекта из модели движения. Measurement noise является ошибкой обнаружения.

Чтобы сделать конфигурирование Фильтра Калмана легче, используйте configureKalmanFilter. Эта функция настраивает фильтр для отслеживания физического объекта, перемещающегося с постоянной скоростью или постоянным ускорением в Декартовой системе координат. Статистические данные являются тем же самым по всем измерениям. Если необходимо сконфигурировать Фильтр Калмана с различными предположениями, необходимо создать vision.KalmanFilter возразите непосредственно.

Ассоциация данных

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

Обнаружение, чтобы отследить функции стоимости

Чтобы совпадать с обнаружением к дорожке, необходимо установить критерии оценки соответствий. Как правило, вы устанавливаете это критерии путем определения функции стоимости. Чем выше стоимость соответствия с обнаружением к дорожке, тем менее вероятно, что обнаружение принадлежит дорожке. Простая функция стоимости может быть задана как степень перекрытия между ограничительными рамками предсказанных и обнаруженных объектов. Пешеходы Отслеживания из Движущегося Автомобильного примера реализуют эту функцию стоимости с помощью bboxOverlapRatio функция. Можно реализовать более сложную функцию стоимости, та, которая составляет неопределенность в предсказании, с помощью distance функция vision.KalmanFilter объект. Можно также реализовать пользовательскую функцию стоимости, чем может включить информацию о размере объекта и внешнем виде.

Устранение маловероятных соответствий

Gating является методом устранения очень маловероятных соответствий из фактора, такой как путем наложения порога на функцию стоимости. Наблюдение не может быть соответствующим к дорожке, если стоимость превышает значение определенного порога. Используя этот пороговый метод эффективно приводит к круговой области пропускания вокруг каждого предсказания, где соответствующее обнаружение может быть найдено. Альтернативный метод пропускания должен сделать область пропускания достаточно большой, чтобы включать k - самые близкие соседи предсказания.

Присвойте обнаружения, чтобы отследить

Ассоциация данных уменьшает до минимального веса двустороннюю проблему соответствия, которая является хорошо изученной областью теории графов. Биграф представляет дорожки и обнаружения как вершины. Это также представляет стоимость соответствия с обнаружением и дорожкой как взвешенное ребро между соответствующими вершинами.

assignDetectionsToTracks функционируйте реализует вариант Манкреса венгерского двустороннего алгоритма соответствия. Ее вход является матрицей стоимости, где строки соответствуют дорожкам, и столбцы соответствуют обнаружениям. Каждая запись содержит стоимость присвоения конкретного обнаружения к конкретной дорожке. Можно реализовать пропускание путем установки стоимости невозможных соответствий к бесконечности.

Отследите управление

Ассоциация данных должна учесть то, что новые объекты могут появиться в поле зрения, или что прослеживаемый объект может покинуть поле представления. Другими словами, в любой данной системе координат, некоторое количество новых треков может должно быть быть создано, и некоторое количество существующих дорожек может должно быть быть отброшено. assignDetectionsToTracks функция возвращает индексы неприсвоенных дорожек и неприсвоенных обнаружений в дополнение к совпадающим парам.

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

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

Смотрите также

| | | | | | | | | |

Связанные примеры

Больше о

Внешние веб-сайты