Skip to content

Multitarget tracker algorithm

Sergey Nuzhny edited this page Apr 16, 2020 · 8 revisions

Сопровождение объектов в Multitarget tracker

Алгоритм сопровождения объектов (multitarget tracking, multiple objects tracking) представляет собой комбинацию алгоритмов решающих задачу пространственно-временной ассоциации обнаруженных на видео объектов. Обнаружение объектов решается каким-либо детектором произвольной природы: детектор движения, HOG+SVM, HAAR+AdaBoost, глубокие нейронные сети (DNN) и другие. Результатом работы детектора является список объектов, найденных на текущем кадре. Каждый найденный объект (CRegion) характеризуется следующими параметрами:

  1. описывающий прямоугольник (cv::Rect m_brect или cv::RotatedRect m_rrect);
  2. тип объекта (std::string m_type);
  3. коэффициент доверия или вероятность правильного распознавания (float m_confidence).

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

  1. Для впервые задетектированных объектов создаются трэки (CTrack) — структуры, содержащие в себе модель движения объекта, его траекторию и другие характеристики.
  2. После детектирования объектов на каждом последующем кадре происходит решение задачи ассоциации — сопоставления ранее найденных трэков с задетектированными объектами. При создании матрицы расстояний между объектами и трэками используется не последнее положение трэка, а предсказанное с помощью фильтра Калмана.
  3. Если для трэка был найден соответствующий объект, то его состояние обновляется: фильтр Калмана корретирует модель движения, запоминаются новые размеры и, при необходимости, визуальные характеристики объекта.
  4. Если для трэка не нашлось подходящего объекта, то, в зависимости от настроек, он либо обновляет своё состояние с помощью предсказания фильтра Калмана, либо создаёт VOT – visual objects tracker на основе последнего найденного объекта и доискивает себя на кадре сам.
  5. Если трэк не ассоциировался с объектами заданный интервал времени или вышел за пределы кадра, то он удаляется.

Clone this wiki locally