Skip to content

Tracking

Moscowsky Anton edited this page Nov 20, 2021 · 5 revisions

Отслеживание (Tracking)

1. Обзор

Отслеживание в данном пакете является надстройкой над трекингом OpenCV Tracking API. Отличие заключается в том, что OpenCV трекинг включается в работу, только когда основной детектор объекта не справился с задачей. В остальное время задача отслеживания занимается соотношением объектов на последующих кадрах.

Данная часть пакета работает только с версией OpenCV 4!

1.1. Процесс

1.1.1 Для объекто в жестком режиме

  1. Детектор объекта возвращает новый набор распознанных экземпляров объектов. Если данный объект распознан впервые то все экземпляры образуют новые треки.
  2. Если в системе уже имеются треки, то сопоставитель (matcher) на основе критерия максимального пересечения над объединением (intersection over union) соотносит экземпляры объектов с треками. Такие треки получают статус DETECTED.
  3. Для тех экземпляров объектов, что не получили пару из треков образуют новые треки, тоже получая статус DETECTED.
  4. Для тех треков, что не получили пару среди объектов, инициируется трекинг силами OpenCV, который пытается обнаружить объект по последним данным о нем. Трек получает статус TRACKED. При этом каждый шаг работы в этом режиме уменьшает коэффициент уверенности по формуле score[t+1] = score[t](1 - decay). Если данный коэффициент достигает порога Probability объекта, то трек получает статус LOST и удаляется на следующей итерации.
  5. Далее для треков в статусе TRACKED происходит применение признаков с типом проверки(Check) и извлечение (Extract).

tracking process

1.1.2. Для объектов мягком режиме

Отличие от жесткого режима состоит в том, что для слежения могут использоваться распозанные объекты с более низким коэффициентом уверенности, однако они не могут порождать новые треки. TODO расписать подробнее с примером

1.2. Статус трека

Как было сказано, трек может иметь три статуса DETECTED, TRACKCED и LOST.

  • DETECTED означает, что данный объект распознан непосредственно своим детектором.
  • TRACKED означает, что данный объект распознан при помощи трекинга OpenCV.
  • LOST Означает, что и детектор объекта и трекинг OpenCV не смогли найти объект. Объект, визуализирующийся или публикующийся с данным статусом содержит информацию по последним данным.

Эти статусы включены в ROS сообщения пакета.

2. XML-описание

2.1. Параметры

  • Метод трекинга описывается внутри тега . Ниже представлена таблица методов трекинга.
  • IOU (double, default: 0.5) Порог пересечения над объединением (intersection over union). Объект и трек могут быть сопоставлены друг другу только если имеют IOU больше данного порога.
  • decay (double, default: 0.1) Скорость распада, т.е. как быстро будет уменьшаться коэффициент уверенности в случае работы трекинга OpenCV. Распад равный 0 означает, что трекинг будет происходить пока не потеряет объект. Распад равный 1 будет означать, что трек будет удаляться сразу после отказа детектора. Однако тот же эффект можно достигнуть, указав None в методе трекинга.
  • soft_prob (double, default: 0.5) Используется если распознавание объектов происходит в мягком режиме. Объекты с таким уровнем уверенности могут "присоединяться" у уже готовым трекам, но не образовывать новые.

2.2. Пример

<Tracker IOU="0.5" decay="0.1">KCF</Tracker>

Трекер должен быть объявлен в описании объекта

<SimpleObject Name="PersonCNNtracked" ID="1">    
   <Tracker IOU="0.5" decay="0.1">KCF</Tracker>
   <Attribute Type="Detect">Person</Attribute>            
</SimpleObject> 

2.3. Таблица методов трекинга

Метод Комментарий
None OpenCV трекинг отключен, работает только IOU сопоставитель
KCF
BOOSTING
MIL
TLD
MEDIANFLOW
GOTURN Для использования требуется дополнительные действия TODO
MOSSE
CSRT

2.4. Видео-примеры

OpenCV tracking algorithms comparison in motion

Soft Tracking Example

Clone this wiki locally