BoT-SORT: Pelacakan Multi-Pejalan Kaki Asosiasi yang Kuat
Nir Aharon, Roy Orfaig, Ben-Zion Bobrovsky
https://arxiv.org/abs/2206.14651
Tujuan dari pelacakan multi-objek (MOT) adalah mendeteksi dan melacak semua objek dalam sebuah adegan, sekaligus menjaga pengenal unik untuk setiap objek. Dalam makalah ini, kami menyajikan pelacak canggih baru yang tangguh, yang dapat menggabungkan keunggulan informasi gerakan dan tampilan, bersama dengan kompensasi gerakan kamera, dan vektor status filter Kalman yang lebih akurat. Pelacak baru kami BoT-SORT, dan BoT-SORT-ReID menempati peringkat pertama dalam kumpulan data MOTChallenge [29, 11] pada set pengujian MOT17 dan MOT20, dalam hal semua metrik MOT utama: MOTA, IDF1, dan HOTA. Untuk MOT17: 80,5 MOTA, 80,2 IDF1, dan 65,0 HOTA tercapai.
Pelacak | MOTA | IDF1 | PANAS |
---|---|---|---|
BoT-SORT | 80.6 | 79.5 | 64.6 |
BoT-SORT-ReID | 80,5 | 80.2 | 65.0 |
Pelacak | MOTA | IDF1 | PANAS |
---|---|---|---|
BoT-SORT | 77.7 | 76.3 | 62.6 |
BoT-SORT-ReID | 77.8 | 77.5 | 63.3 |
Kode telah diuji pada Ubuntu 20.04
Kode BoT-SORT didasarkan pada ByteTrack dan FastReID.
Kunjungi panduan instalasi mereka untuk opsi pengaturan lebih lanjut.
Langkah 1. Buat lingkungan Conda dan instal pytorch.
conda create -n botsort_env python=3.7
conda activate botsort_env
Langkah 2. Instal torch dan torchvision yang cocok dari pytorch.org.
Kode diuji menggunakan torch 1.11.0+cu113 dan torchvision==0.12.0
Langkah 3. Instal BoT-SORT.
git clone https://github.com/NirAharon/BoT-SORT.git
cd BoT-SORT
pip3 install -r requirements.txt
python3 setup.py develop
Langkah 4. Instal pycocotools.
pip3 install cython ; pip3 install ' git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI '
Langkah 5. Lainnya
# Cython-bbox
pip3 install cython_bbox
# faiss cpu / gpu
pip3 install faiss-cpu
pip3 install faiss-gpu
Unduh MOT17 dan MOT20 dari situs resminya. Dan letakkan mereka dalam struktur berikut:
<dataets_dir>
│
├── MOT17
│ ├── train
│ └── test
│
└── MOT20
├── train
└── test
Untuk melatih ReID, patch deteksi harus dibuat sebagai berikut:
cd < BoT-SORT_dir >
# For MOT17
python3 fast_reid/datasets/generate_mot_patches.py --data_path < dataets_dir > --mot 17
# For MOT20
python3 fast_reid/datasets/generate_mot_patches.py --data_path < dataets_dir > --mot 20
Tautkan kumpulan data ke export FASTREID_DATASETS=<BoT-SORT_dir>/fast_reid/datasets
. Jika tidak disetel, defaultnya adalah fast_reid/datasets
Unduh dan simpan model terlatih di folder 'terlatih' sebagai berikut:
<BoT-SORT_dir>/pretrained
Kami menggunakan kebun binatang model ByteTrack yang tersedia untuk umum yang dilatih tentang MOT17, MOT20 dan studi ablasi untuk deteksi objek YOLOX.
Model ReID terlatih kami dapat diunduh dari MOT17-SBS-S50, MOT20-SBS-S50.
Untuk MOT kelas jamak, gunakan YOLOX atau YOLOv7 yang dilatih tentang COCO (atau beban khusus apa pun).
Setelah membuat dataset MOT ReID seperti yang dijelaskan di bagian 'Persiapan Data'.
cd < BoT-SORT_dir >
# For training MOT17
python3 fast_reid/tools/train_net.py --config-file ./fast_reid/configs/MOT17/sbs_S50.yml MODEL.DEVICE " cuda:0 "
# For training MOT20
python3 fast_reid/tools/train_net.py --config-file ./fast_reid/configs/MOT20/sbs_S50.yml MODEL.DEVICE " cuda:0 "
Lihat repositori FastReID untuk penjelasan dan opsi tambahan.
Dengan mengirimkan file txt yang dihasilkan di bagian ini ke situs web MOTChallenge dan Anda bisa mendapatkan hasil yang sama seperti di makalah.
Menyesuaikan parameter pelacakan dengan hati-hati dapat menghasilkan kinerja yang lebih tinggi. Di makalah ini kami menerapkan kalibrasi ByteTrack.
cd < BoT-SORT_dir >
python3 tools/track.py < dataets_dir/MOT 17> --default-parameters --with-reid --benchmark " MOT17 " --eval " test " --fp16 --fuse
python3 tools/interpolation.py --txt_path < path_to_track_result >
cd < BoT-SORT_dir >
python3 tools/track.py < dataets_dir/MOT 20> --default-parameters --with-reid --benchmark " MOT20 " --eval " test " --fp16 --fuse
python3 tools/interpolation.py --txt_path < path_to_track_result >
cd < BoT-SORT_dir >
# BoT-SORT
python3 tools/track.py < dataets_dir/MOT 17> --default-parameters --benchmark " MOT17 " --eval " val " --fp16 --fuse
# BoT-SORT-ReID
python3 tools/track.py < dataets_dir/MOT 17> --default-parameters --with-reid --benchmark " MOT17 " --eval " val " --fp16 --fuse
Parameter lain dapat digunakan tanpa meneruskan tanda --default-parameters.
Untuk mengevaluasi rangkaian kereta dan validasi, kami merekomendasikan penggunaan kode evaluasi MOTChallenge resmi dari TrackEval.
# For all the available tracking parameters, see:
python3 tools/track.py -h
Parameter lain dapat digunakan tanpa meneruskan tanda --default-parameters.
Untuk mengevaluasi rangkaian kereta dan validasi, kami merekomendasikan penggunaan kode evaluasi MOTChallenge resmi dari TrackEval.
# For all the available tracking parameters, see:
python3 tools/track_yolov7.py -h
Demo dengan YOLOX berbasis BoT-SORT(-ReID) dan multikelas.
cd < BoT-SORT_dir >
# Original example
python3 tools/demo.py video --path < path_to_video > -f yolox/exps/example/mot/yolox_x_mix_det.py -c pretrained/bytetrack_x_mot17.pth.tar --with-reid --fuse-score --fp16 --fuse --save_result
# Multi-class example
python3 tools/mc_demo.py video --path < path_to_video > -f yolox/exps/example/mot/yolox_x_mix_det.py -c pretrained/bytetrack_x_mot17.pth.tar --with-reid --fuse-score --fp16 --fuse --save_result
Demo dengan YOLOv7 berbasis BoT-SORT(-ReID) dan multi-kelas.
cd < BoT-SORT_dir >
python3 tools/mc_demo_yolov7.py --weights pretrained/yolov7-d6.pt --source < path_to_video/images > --fuse-score --agnostic-nms (--with-reid)
Modul kompensasi gerakan kamera kami didasarkan pada OpenCV contrib C++ versi VideoStab Global Motion Estimation, yang saat ini tidak memiliki versi Python.
File gerak dapat dibuat menggunakan proyek C++ yang disebut 'VideoCameraCorrection' di folder GMC.
File yang dihasilkan dapat digunakan dari pelacak.
Selain itu, tersedia teknik estimasi gerak berbasis python dan dapat dipilih secara langsung
'--cmc-metode' <file | bola | ecc> ke demo.py atau track.py.
@article{aharon2022bot,
title={BoT-SORT: Robust Associations Multi-Pedestrian Tracking},
author={Aharon, Nir and Orfaig, Roy and Bobrovsky, Ben-Zion},
journal={arXiv preprint arXiv:2206.14651},
year={2022}
}
Sebagian besar kode, ide, dan hasil dipinjam dari ByteTrack, StrongSORT, FastReID, YOLOX, dan YOLOv7. Terima kasih atas kerja luar biasa mereka!