BoT-SORT: การติดตามคนเดินเท้าแบบหลายกลุ่มที่แข็งแกร่งของสมาคม
เนียร์ อาฮารอน, รอย ออร์เฟก, เบน-ไซออน โบบรอฟสกี้
https://arxiv.org/abs/2206.14651
เป้าหมายของการติดตามหลายวัตถุ (MOT) คือการตรวจจับและติดตามวัตถุทั้งหมดในฉาก ขณะเดียวกันก็รักษาตัวระบุที่ไม่ซ้ำกันสำหรับวัตถุแต่ละรายการ ในบทความนี้ เรานำเสนอเครื่องมือติดตามที่ล้ำสมัยใหม่ที่มีประสิทธิภาพ ซึ่งสามารถรวมข้อดีของข้อมูลการเคลื่อนไหวและรูปลักษณ์ พร้อมด้วยการชดเชยการเคลื่อนไหวของกล้อง และเวกเตอร์สถานะตัวกรองคาลมานที่แม่นยำยิ่งขึ้น เครื่องมือติดตามใหม่ของเรา BoT-SORT และ BoT-SORT-ReID อยู่ในอันดับแรกในชุดข้อมูลของ MOTChallenge [29, 11] ในชุดทดสอบทั้ง MOT17 และ MOT20 ในแง่ของตัวชี้วัด MOT หลักทั้งหมด: MOTA, IDF1 และ HOTA สำหรับ MOT17: บรรลุ 80.5 MOTA, 80.2 IDF1 และ 65.0 HOTA
ตัวติดตาม | โมต้า | IDF1 | โฮตะ |
---|---|---|---|
ธปท | 80.6 | 79.5 | 64.6 |
ธปท.-เรียงลำดับ-ReID | 80.5 | 80.2 | 65.0 |
ตัวติดตาม | โมต้า | IDF1 | โฮตะ |
---|---|---|---|
ธปท | 77.7 | 76.3 | 62.6 |
ธปท.-เรียงลำดับ-ReID | 77.8 | 77.5 | 63.3 |
รหัสได้รับการทดสอบบน Ubuntu 20.04
รหัส BoT-SORT ขึ้นอยู่กับ ByteTrack และ FastReID
ไปที่คู่มือการติดตั้งเพื่อดูตัวเลือกการตั้งค่าเพิ่มเติม
ขั้นตอนที่ 1 สร้างสภาพแวดล้อม Conda และติดตั้ง pytorch
conda create -n botsort_env python=3.7
conda activate botsort_env
ขั้นตอนที่ 2 ติดตั้ง torch และ torchvision ที่ตรงกันจาก pytorch.org
รหัสได้รับการทดสอบโดยใช้ torch 1.11.0+cu113 และ torchvision==0.12.0
ขั้นตอนที่ 3 ติดตั้ง BoT-SORT
git clone https://github.com/NirAharon/BoT-SORT.git
cd BoT-SORT
pip3 install -r requirements.txt
python3 setup.py develop
ขั้นตอนที่ 4 ติดตั้ง pycocotools
pip3 install cython ; pip3 install ' git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI '
ขั้นตอนที่ 5. อื่นๆ
# Cython-bbox
pip3 install cython_bbox
# faiss cpu / gpu
pip3 install faiss-cpu
pip3 install faiss-gpu
ดาวน์โหลด MOT17 และ MOT20 จากเว็บไซต์อย่างเป็นทางการ และวางไว้ในโครงสร้างดังต่อไปนี้:
<dataets_dir>
│
├── MOT17
│ ├── train
│ └── test
│
└── MOT20
├── train
└── test
สำหรับการฝึก ReID จะต้องสร้างแพตช์การตรวจจับดังต่อไปนี้:
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
เชื่อมโยงชุดข้อมูลกับ export FASTREID_DATASETS=<BoT-SORT_dir>/fast_reid/datasets
หากไม่ได้ตั้งค่า ค่าเริ่มต้นคือ fast_reid/datasets
ดาวน์โหลดและจัดเก็บโมเดลที่ได้รับการฝึกไว้ในโฟลเดอร์ 'pretrained' ดังนี้:
<BoT-SORT_dir>/pretrained
เราใช้สวนสัตว์จำลอง ByteTrack ที่เผยแพร่ต่อสาธารณะซึ่งได้รับการฝึกอบรมเกี่ยวกับ MOT17, MOT20 และการศึกษาการระเหยสำหรับการตรวจจับวัตถุ YOLX
สามารถดาวน์โหลดโมเดล ReID ที่ผ่านการฝึกอบรมของเราได้จาก MOT17-SBS-S50, MOT20-SBS-S50
สำหรับ MOT แบบหลายคลาส ให้ใช้ YOLX หรือ YOLOv7 ที่ฝึกฝนกับ COCO (หรือตุ้มน้ำหนักแบบกำหนดเองใดๆ)
หลังจากสร้างชุดข้อมูล MOT ReID ตามที่อธิบายไว้ในส่วน 'การเตรียมข้อมูล'
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 "
อ้างถึงที่เก็บ FastReID สำหรับคำอธิบายและตัวเลือกเพิ่มเติม
โดยการส่งไฟล์ txt ที่สร้างขึ้นในส่วนนี้ไปยังเว็บไซต์ MOTChallenge แล้วคุณจะได้ผลลัพธ์เช่นเดียวกับในรายงาน
การปรับพารามิเตอร์การติดตามอย่างระมัดระวังอาจนำไปสู่ประสิทธิภาพที่สูงขึ้น ในบทความนี้ เราใช้การปรับเทียบของ 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
สามารถใช้พารามิเตอร์อื่นได้ โดยไม่ต้อง ผ่านการตั้งค่าสถานะ --default-parameters
สำหรับการประเมินรถไฟและชุดการตรวจสอบ เราขอแนะนำให้ใช้รหัสประเมิน MOTChallenge อย่างเป็นทางการจาก TrackEval
# For all the available tracking parameters, see:
python3 tools/track.py -h
สามารถใช้พารามิเตอร์อื่นได้ โดยไม่ต้อง ผ่านการตั้งค่าสถานะ --default-parameters
สำหรับการประเมินรถไฟและชุดการตรวจสอบ เราขอแนะนำให้ใช้รหัสประเมิน MOTChallenge อย่างเป็นทางการจาก TrackEval
# For all the available tracking parameters, see:
python3 tools/track_yolov7.py -h
การสาธิตด้วย YOLX ที่ใช้ BoT-SORT(-ReID) และหลายคลาส
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
การสาธิตด้วย YOLOv7 ที่ใช้ BoT-SORT(-ReID) และหลายคลาส
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)
โมดูลการชดเชยการเคลื่อนไหวของกล้องของเราใช้ VideoStab Global Motion Estimation เวอร์ชัน OpenCV ที่สนับสนุน C++ ซึ่งปัจจุบันไม่มีเวอร์ชัน Python
สามารถสร้างไฟล์ภาพเคลื่อนไหวได้โดยใช้โปรเจ็กต์ C ++ ชื่อ 'VideoCameraCorrection' ในโฟลเดอร์ GMC
ไฟล์ที่สร้างขึ้นสามารถใช้งานได้จากตัวติดตาม
นอกจากนี้ยังมีเทคนิคการประมาณค่าการเคลื่อนที่แบบไพธอนและสามารถเลือกได้โดยการส่งผ่าน
'--cmc-method' <ไฟล์ | ลูกโลก | ecc> เป็น demo.py หรือ 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}
}
รหัส แนวคิด และผลลัพธ์ส่วนใหญ่ยืมมาจาก ByteTrack, StrongSORT, FastReID, YOLX และ YOLOv7 ขอบคุณสำหรับการทำงานที่ยอดเยี่ยมของพวกเขา!