نظرة عامة على مجموعات بيانات تتبع الأجسام المتعددة#
يُعد تتبع الأجسام المتعددة مكونًا أساسيًا في تحليلات الفيديو؛ إذ يحدد الأجسام ويحافظ على مُعرّفات فريدة لكل جسم مكتشف عبر إطارات الفيديو. توفر Ultralytics YOLO إمكانات قوية للتتبع يمكن تطبيقها في مجالات متنوعة، منها المراقبة وتحليلات الرياضة ورصد حركة المرور.
تنسيق مجموعة البيانات#
لا يدرّب وضع التتبع أداة تتبع، ولا يتطلب مجموعة بيانات مخصصة لأداة تتبع. درّب نموذجًا للكشف أو التجزئة أو تقدير الوضعية أو OBB باستخدام تنسيق مجموعة البيانات القياسي للمهمة، ثم استخدم الأوزان الناتجة مع model.track() أو yolo track. تربط أداة التتبع المحددة بين تنبؤات النموذج عبر الإطارات أثناء الاستدلال.
أدوات التتبع المتاحة#
تدعم Ultralytics YOLO خوارزميات التتبع التالية:
- BoT-SORT - استخدم
botsort.yamlلتمكين أداة التتبع هذه - ByteTrack - استخدم
bytetrack.yamlلتمكين أداة التتبع هذه - OC-SORT - استخدم
ocsort.yamlلتمكين أداة التتبع هذه - Deep OC-SORT - استخدم
deepocsort.yamlلتمكين أداة التتبع هذه - FastTracker - استخدم
fasttrack.yamlلتمكين أداة التتبع هذه - TrackTrack - استخدم
tracktrack.yamlلتمكين أداة التتبع هذه (افتراضيًا)
الاستخدام#
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model.track(source="https://youtu.be/LNwODJXcvt4", conf=0.1, iou=0.7, show=True)الاحتفاظ بالتتبعات بين الإطارات#
لمواصلة التتبع عبر إطارات الفيديو، يمكنك استخدام المعلمة persist=True:
import cv2
from ultralytics import YOLO
# تحميل نموذج YOLO
model = YOLO("yolo26n.pt")
# افتح ملف الفيديو
cap = cv2.VideoCapture("path/to/video.mp4")
while cap.isOpened():
success, frame = cap.read()
if success:
# تشغيل التتبع مع الاحتفاظ بالحالة بين الإطارات
results = model.track(frame, persist=True)
# تصوّر النتائج
annotated_frame = results[0].plot()
cv2.imshow("Tracking", annotated_frame)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
else:
break
cap.release()
cv2.destroyAllWindows()الأسئلة الشائعة#
لبدء استخدام تتبع الأجسام المتعددة مع Ultralytics YOLO، يمكنك الاستعانة بأمثلة Python أو CLI المقدمة. إليك طريقة البدء:
مثالfrom ultralytics import YOLO model = YOLO("yolo26n.pt") # تحميل نموذج YOLO26 results = model.track(source="https://youtu.be/LNwODJXcvt4", conf=0.1, iou=0.7, show=True)تحمّل هذه الأوامر نموذج YOLO26 وتستخدمه لتتبع الأجسام في مصدر الفيديو المحدد، مع تحديد عتبتَي الثقة (
conf) والتقاطع على الاتحاد (iou). لمزيد من التفاصيل، راجع وثائق وضع التتبع.يُعد Ultralytics YOLO نموذجًا متطورًا لـاكتشاف الأجسام، ويشتهر بأدائه الآني ودقته العالية. ويوفر استخدام YOLO لتتبع الأجسام المتعددة عدة مزايا:
- التتبع الآني: تحقيق تتبع فعّال وعالي السرعة، مثالي للبيئات الديناميكية.
- المرونة مع النماذج المدرّبة مسبقًا: لا حاجة إلى التدريب من البداية؛ ما عليك سوى استخدام نماذج الكشف أو التجزئة أو تقدير الوضعية أو OBB المدرّبة مسبقًا.
- سهولة الاستخدام: يسهّل تكامل API مع كل من Python وCLI إعداد مسارات عمل التتبع.
- وثائق شاملة ودعم مجتمعي: توفر Ultralytics وثائق شاملة ومنتدى مجتمعيًا نشطًا لاستكشاف المشكلات وحلها وتحسين نماذج التتبع.
لمزيد من التفاصيل حول إعداد YOLO واستخدامه للتتبع، تفضل بزيارة دليل استخدام التتبع.
نعم. درّب نموذجًا للكشف أو التجزئة أو تقدير الوضعية أو OBB على مجموعة البيانات المخصصة، ثم مرّر أوزانه إلى
model.track(). تعمل أداة التتبع نفسها أثناء الاستدلال، ولا تتطلب بيانات تدريب منفصلة.بعد تشغيل مهمة تتبع باستخدام Ultralytics YOLO، تتضمن النتائج نقاط بيانات متنوعة، مثل مُعرّفات الأجسام المتتبعة ومربعات الإحاطة الخاصة بها ودرجات الثقة. إليك لمحة موجزة عن كيفية تفسير هذه النتائج:
- مُعرّفات التتبع: يُمنح كل جسم مُعرّفًا فريدًا يساعد على تتبعه عبر الإطارات.
- مربعات الإحاطة: تحدد مواقع الأجسام المتتبعة داخل الإطار.
- درجات الثقة: تعبّر عن مدى ثقة النموذج في اكتشاف الجسم المتتبَع.
للحصول على إرشادات مفصلة حول تفسير هذه النتائج وعرضها بصريًا، راجع دليل التعامل مع النتائج.
يمكنك تخصيص أداة التتبع بإنشاء نسخة معدّلة من ملف إعداداتها. انسخ ملف إعدادات موجودًا لأداة تتبع من ultralytics/cfg/trackers، وعدّل المعلمات حسب الحاجة، ثم حدّد هذا الملف عند تشغيل أداة التتبع:
from ultralytics import YOLO model = YOLO("yolo26n.pt") results = model.track(source="video.mp4", tracker="custom_tracker.yaml")