Этот репо содержит коллекции подключаемых современных многообъективных трекеров для моделей сегментации, обнаружения объектов и позы. Для методов, использующих описание внешнего вида, для автоматической загрузки доступны как тяжелые (clipreid), так и легкие современные модели REID (LightMBN, OSNET и другие). Мы приводим примеры того, как использовать этот пакет вместе с популярными моделями обнаружения объектов, такими как: Yolov8, Yolov9 и Yolov10
Трекер | Статус | Hota ↑ | Мота ↑ | IDF1 ↑ |
---|---|---|---|---|
Ботсорт | ✅ | 68.504 | 77.165 | 80.986 |
Стронг -сорт | ✅ | 68.329 | 76.348 | 81.206 |
Bytetrack | ✅ | 66.536 | 76.909 | 77.855 |
ОКСОРТ | ✅ | 65.187 | 74,819 | 75,957 |
Impmassoc | ✅ | 64.096 | 76.511 | 71.875 |
Deapocsort | ✅ | 62,913 | 74,483 | 73,459 |
Hybridsort |
Примечания: Оценка была проведена во второй половине учебного набора MOT17, так как набор проверки не доступен общедоступным. Предварительно сгенерированные обнаружения и используемые вторжения были получены отсюда. Каждый трекер был настроен с исходными параметрами, представленными в их официальных репозиториях.
Сегодняшние параметры отслеживания с несколькими объектами сильно зависят от возможностей вычислений подложенного оборудования. Boxmot предоставляет большое разнообразие методов отслеживания, которые соответствуют различным ограничениям оборудования, от процессора только до более крупных графических процессоров. MOROVER, мы предоставляем сценарии для ультра быстрых экспериментов, сохранив обнаружения и встраивания, которые затем загружаются в любой алгоритм отслеживания. Избегая накладных расходов, неоднократно генерируя эти данные.
Начните с Python> = 3,9 среда.
Если вы хотите запустить примеры Yolov8, Yolov9 или Yolov10:
git clone https://github.com/mikel-brostrom/boxmot.git
cd boxmot
pip install poetry
poetry install --with yolo # installed boxmot + yolo dependencies
poetry shell # activates the newly created environment with the installed dependencies
Но если вы хотите только импортировать модули отслеживания, вы можете просто:
pip install boxmot
$ python tracking/track.py --yolo-model yolov10n # bboxes only
python tracking/track.py --yolo-model yolov9s # bboxes only
python tracking/track.py --yolo-model yolov8n # bboxes only
yolov8n-seg # bboxes + segmentation masks
yolov8n-pose # bboxes + pose estimation
$ python tracking/track.py --tracking-method deepocsort
strongsort
ocsort
bytetrack
botsort
imprassoc
Отслеживание можно запустить в большинстве видео форматов
$ python tracking/track.py --source 0 # webcam
img.jpg # image
vid.mp4 # video
path/ # directory
path/ * .jpg # glob
' https://youtu.be/Zgi9g1ksQHc ' # YouTube
' rtsp://example.com/media.mp4 ' # RTSP, RTMP, HTTP stream
Некоторые методы отслеживания объединяют описание внешнего вида и движение в процессе отслеживания. Для тех, кто использует внешний вид, вы можете выбрать модель REID на основе ваших потребностей из этого зоопарка REID. Эта модель может быть дополнительно оптимизирована для ваших нужд с помощью сценария reid_export.py
$ python tracking/track.py --source 0 --reid-model lmbn_n_cuhk03_d.pt # lightweight
osnet_x0_25_market1501.pt
mobilenetv2_x1_4_msmt17.engine
resnet50_msmt17.onnx
osnet_x1_0_msmt17.pt
clip_market1501.pt # heavy
clip_vehicleid.pt
...
По умолчанию трекер отслеживает все классы MS Coco.
Если вы хотите отслеживать подмножество классов, которые вы предсказываете модели, добавьте соответствующий индекс после флага классов,
python tracking/track.py --source 0 --yolo-model yolov8s.pt --classes 16 17 # COCO yolov8 model. Track cats and dogs, only
Вот список всех возможных объектов, которые может обнаружить модель Yolov8, обученная MS Coco. Обратите внимание, что индексация для классов в этом репо начинается в нуле
Оценить комбинацию детектора, метода отслеживания и модели REID в стандартном наборе данных MOT или на пользовательском
$ python3 tracking/val.py --benchmark MOT17-mini --yolo-model yolov8n.pt --reid-model osnet_x0_25_msmt17.pt --tracking-method deepocsort --verbose --source ./assets/MOT17-mini/train
$ python3 tracking/val.py --benchmark MOT17 --yolo-model yolov8n.pt --reid-model osnet_x0_25_msmt17.pt --tracking-method ocsort --verbose --source ./tracking/val_utils/MOT17/train
Обнаружения и встроения хранятся для выбранной модели YOLO и REID соответственно, которая затем загружается в любой алгоритм отслеживания. Избегая накладных расходов, неоднократно генерируя эти данные.
Мы используем быстрый и элитный многообъективный генетический алгоритм для настройки гиперпараметрических трекеров. По умолчанию цели: HOTA, MOTA, IDF1. Запустить его
# saves dets and embs under ./runs/dets_n_embs separately for each selected yolo and reid model
$ python tracking/generate_dets_n_embs.py --source ./assets/MOT17-mini/train --yolo-model yolov8n.pt yolov8s.pt --reid-model weights/osnet_x0_25_msmt17.pt
# evolve parameters for specified tracking method using the selected detections and embeddings generated in the previous step
$ python tracking/evolve.py --benchmark MOT17-mini --dets yolov8n --embs osnet_x0_25_msmt17 --n-trials 9 --tracking-method botsort
Набор гиперпараметров, ведущих к лучшему результату HOTA, записано в файл конфигурации трекера.
Мы поддерживаем экспорт модели REID в ONNX, OpenVino, TorchScript и Tensorrt
# export to ONNX
$ python3 boxmot/appearance/reid_export.py --include onnx --device cpu
# export to OpenVINO
$ python3 boxmot/appearance/reid_export.py --include openvino --device cpu
# export to TensorRT with dynamic input
$ python3 boxmot/appearance/reid_export.py --include engine --device 0 --dynamic
Набор гиперпараметров, ведущих к лучшему результату HOTA, записано в файл конфигурации трекера.
Пример описания | Блокнот |
---|---|
Touchvision ограничивающая коробка отслеживание с Boxmot | |
Отслеживание позы TOCHVISION с BoxMot | |
Отслеживание сегментации с турковой сегментацией с Boxmot |
Для ошибок отслеживания YOLO и запросов функций, пожалуйста, посетите проблемы GitHub. Для запросов на деловые запросы или запросы на профессиональную поддержку, пожалуйста, отправьте электронное письмо по адресу: [email protected]