يحتوي هذا الريبو على مجموعات من أجهزة التتبع القابلة للتجول في أحدث الكائنات للتجزئة ، وكشف الكائنات ونماذج التقدير. بالنسبة للطرق التي تستخدم وصف المظهر ، تتوفر كل من نماذج Reid الثقيلة (ClipReid) ونماذج Reid الخفيفة الوزن (LightMbn و Osnet والمزيد) للتنزيل التلقائي. نحن نقدم أمثلة حول كيفية استخدام هذه الحزمة مع نماذج اكتشاف الكائنات الشائعة مثل: YOLOV8 و YOLOV9 و YOLOV10
تعقب | حالة | هوتا ↑ | موتا ↑ | IDF1 ↑ |
---|---|---|---|---|
البوتسل | ✅ | 68.504 | 77.165 | 80.986 |
قوي | ✅ | 68.329 | 76.348 | 81.206 |
bytetrack | ✅ | 66.536 | 76.909 | 77.855 |
Ocsort | ✅ | 65.187 | 74.819 | 75.957 |
سويسوك | ✅ | 64.096 | 76.511 | 71.875 |
Deepocsort | ✅ | 62.913 | 74.483 | 73.459 |
الهجينة |
ملاحظات: تم إجراء التقييم في النصف الثاني من مجموعة التدريب 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
...
بشكل افتراضي ، يتعقب Tracker جميع فئات 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 إلى ملف تكوين Tracker.
نحن ندعم تصدير طراز 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 إلى ملف تكوين Tracker.
مثال الوصف | دفتر |
---|---|
Torchvision ملعب التتبع مربع مع boxmot | |
Torchvision تتبع مع boxmot | |
تتبع تجزئة Torchvision مع boxmot |
ل yolo تتبع الأخطاء وطلبات الميزات ، يرجى زيارة قضايا github. للاستفسارات التجارية أو طلبات الدعم المهني ، يرجى إرسال بريد إلكتروني إلى: [email protected]