Самый простой пример трекинга который работает

Разные алгоритмы трекинга мы делаем последние лет 12. Зачастую это очень простые алгоритмы трекинга. Иногда очень сложные и накрученные, как в Cherry.
Если честно, то очень часто мы собирали их с нуля руками. Что такое фильтр Калмана понимаем, как сделать выбор лучшего соответствия в целом тоже.

Но, если честно, недавно бомбануло. Я увидел, как в двух разных фирмах для трекинга используют это – https://www.pyimagesearch.com/2018/10/29/multi-object-tracking-with-dlib/ (или аналоги с того же сайта).
Для тех кто не хочет читать вкратце: детекция за счёт MobileNet-ssd, а связывание объектов за счёт трекера Dlib (или вариантов cv2).
В одной из таких фирм это даже заработало каким-то чудом.

Но… Не надо так. Не надо использовать бажный оптический трекер. Править все его ошибки это гигантская работа, на которую нет OpenSource исходников.
Я решил рассказать как сделать проще и стабильнее в несколько кликов.

Для того чтобы всё это завернуть нам понадобиться… Вот этот вот трекер – https://github.com/abewley/sort
Только вот примеров с ним в интернете сильно меньше.

По сути это фильтр Калмана + венгерские потери на выходе. Работающий их коробки. Видел его использование минимум в 3-4 проектах. В отличие от dlib:)

Работает как-то так (YoloV4 как бэкбон):

Вот тут вот выложил небольшой пример использования – https://github.com/ZlodeiBaal/SimpleTrackSample

Для запуска не забудьте взять веса отсюда – https://pjreddie.com/darknet/yolo/
должно работать с любой версией YOLO. Но v4 пока в базовой версии OpenCV не подерживается

По коду – 80% подготовки и разбора результатов сети. Где-то 15% отрисовка. Весь трекинг делается через:

from sort import *
mot_tracker = Sort() 

# update SORT and get result
track_bbs_ids = mot_tracker.update(detections)

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

З.Ю.

В последнее время свои статьи я публикую на очень разных платформах.
И, так получилось, что единое место куда я их свожу тут – https://vk.com/cvml_team
Тот проект в рамках которого всё это сбадяжил – буду на Хабре публиковать скорее всего. Так что ссылка тоже только там будет.

Так что советую подписаться!

1 thought on “Самый простой пример трекинга который работает”

  1. Сегодня роботы уже пишут не только простые новости, но большие статьи. Говоря про роботов, представляется человекоподобный андроид. Однако эти «роботы» представляют из себя программы, которые используют искусственный интеллект для изучения big data, выявления трендов и подготовки различных текстов.

Comments are closed.