Что такое трекинг объектов (object tracking)?
Трекинг объектов — задача компьютерного зрения на видео, при которой модель не просто находит объект в каждом отдельном кадре, а отслеживает его как один и тот же экземпляр на протяжении всего ролика, присваивая ему уникальный идентификатор. Даже если объект временно закрыт другим предметом или на секунду выходит из кадра, трекер стремится сохранить и восстановить его ID при повторном появлении.
Результат трекинга — не набор независимых рамок по кадрам, а траектория: последовательность положений объекта во времени, связанных общим идентификатором. Эта траектория даёт модели дополнительную информацию, недоступную при покадровой детекции, — направление и скорость движения, длительность нахождения объекта в кадре, повторные появления после исчезновения из поля зрения камеры.
Трекинг объектов применяют в видеоаналитике покупателей в торговом зале, для навигации беспилотного транспорта и роботов, в системах видеонаблюдения для сопровождения человека между камерами, а также в спортивной аналитике для построения траекторий игроков и мяча на поле.
Чем трекинг отличается от детекции объектов на видео?
Детекция на видео находит объекты в каждом кадре независимо, не связывая их между собой: один и тот же человек в соседних кадрах для детектора — это просто два разных предсказания без общей истории. Трекинг добавляет к детекции слой связывания, который сопоставляет объекты между кадрами и сохраняет за ними единый идентификатор на протяжении всего ролика.
Практически трекинг почти всегда строится поверх детекции: сначала быстрый детектор находит рамки объектов в каждом кадре, а затем отдельный алгоритм трекинга сопоставляет эти рамки между соседними кадрами по положению, скорости движения и, в более точных методах, по визуальным признакам объекта. Подробнее об архитектурах и метриках самой детекции — в отдельном материале.
Какие алгоритмы используют для трекинга: SORT, DeepSORT, ByteTrack?
SORT (Simple Online and Realtime Tracking) сопоставляет рамки между кадрами только по их положению и скорости движения — это очень быстрый метод, но он теряет ID объекта при перекрытиях. DeepSORT добавляет к этому визуальные признаки внешнего вида объекта, что удерживает идентификатор устойчивее. ByteTrack идёт дальше и использует даже слабо уверенные детекции, которые другие методы отбрасывают.
Выбор алгоритма трекинга обычно зависит от сложности сцены и доступных вычислительных ресурсов: SORT достаточен для разреженных сцен с редкими пересечениями траекторий, DeepSORT оправдан там, где объекты часто перекрывают друг друга, а ByteTrack на практике показывает хороший баланс точности и скорости на плотных сценах с большим количеством объектов в кадре, включая переполненные людьми пространства.
Отдельно алгоритмы делят на онлайн-трекеры, которые обрабатывают видео кадр за кадром без доступа к будущим кадрам и подходят для реального времени, и офлайн-трекеры, которые анализируют весь ролик целиком и могут исправлять уже построенные треки задним числом. Офлайн-подход обычно точнее на сложных пересечениях траекторий, но не годится для потоковой обработки живого видео.
Как оценивают качество трекинга: что такое MOTA и IDF1?
MOTA (Multiple Object Tracking Accuracy) — сводная метрика качества трекинга, которая одновременно штрафует пропущенные объекты, ложные срабатывания и переключения идентификатора между разными объектами. IDF1 отдельно измеряет, насколько стабильно трекер удерживает правильный ID конкретного объекта на протяжении всего трека, а не только точность обнаружения в изолированном кадре.
Обе метрики нужны вместе, потому что отражают разные типы ошибок: модель может стабильно находить объекты (высокий MOTA за счёт хорошей детекции), но часто путать их идентификаторы при пересечении траекторий — и тогда именно IDF1 покажет слабое место, незаметное по одной только MOTA. Полный глоссарий метрик качества моделей — в отдельной статье.
Какие данные нужны для обучения и разметки трекинга объектов?
Для трекинга нужно видео, размеченное покадрово рамками вокруг каждого объекта, где дополнительно за объектом закреплён устойчивый уникальный идентификатор на всём протяжении ролика — в отличие от разметки для детекции, где кадры можно размечать независимо друг от друга. Именно сохранение правильного ID при перекрытиях и кратковременном исчезновении объекта — самая трудоёмкая часть такой разметки.
Гайдлайн для разметки трекинга отдельно описывает правила для сложных случаев: что делать, если объект полностью выходит из кадра и возвращается, как обрабатывать частичное перекрытие несколькими объектами, когда заводить новый ID вместо продолжения старого. Для сцен с несколькими камерами добавляется отдельная задача — реидентификация (Re-ID), сопоставление одного и того же объекта на разных, не пересекающихся по кадру камерах по визуальным признакам, а не только по траектории движения.
Разметку видео с покадровой детекцией и трекингом объектов под задачу выполняет команда DataMarkup с бесплатным пилотом на тестовом ролике.