نظرة عامة على مجموعات بيانات تتبع الأجسام المتعددة#
يُعد تتبّع الكائنات المتعددة جزءًا أساسيًا من تحليل الفيديو؛ إذ يحدد الكائنات ويحافظ على معرّف فريد لكل كائن مكتشف عبر إطارات الفيديو. ويمكن لـ 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 وثائق شاملة ومنتدى مجتمعيًا نشطًا لاستكشاف المشكلات وحلها وتحسين نماذج التتبع.
نعم. درّب نموذجًا للكشف أو التجزئة أو تقدير الوضعية أو 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")