تخطي إلى المحتوى

TrackZone باستخدام Ultralytics YOLO11

افتح TrackZone في Colab

ما هو TrackZone؟

تتخصص TrackZone في مراقبة الأجسام داخل مناطق معينة من الإطار بدلاً من الإطار بأكمله. استنادًا إلى Ultralytics YOLO11، فإنه يدمج اكتشاف الأجسام وتتبعها تحديدًا داخل مناطق لمقاطع الفيديو وموجزات الكاميرا الحية. تجعل خوارزميات YOLO11 المتقدمة وتقنيات التعلم العميق خيارًا مثاليًا لحالات الاستخدام في الوقت الفعلي، مما يوفر تتبعًا دقيقًا وفعالًا للأجسام في تطبيقات مثل مراقبة الحشود والمراقبة.



شاهد: كيفية تتبع الكائنات في منطقة باستخدام Ultralytics YOLO11 | TrackZone 🚀

ما هي مزايا تتبع الكائنات في المناطق (TrackZone)؟

  • تحليل مُستهدف: يتيح تتبع الكائنات داخل مناطق معينة الحصول على رؤى أكثر تركيزًا، مما يُمكّن من المراقبة والتحليل الدقيقين للمناطق ذات الأهمية، مثل نقاط الدخول أو المناطق المحظورة.
  • كفاءة محسنة: من خلال تضييق نطاق التتبع إلى مناطق محددة، يقلل TrackZone من النفقات الحسابية، مما يضمن معالجة أسرع وأداءً مثاليًا.
  • أمان مُحسَّن: يعمل التتبع المناطقي على تحسين المراقبة من خلال مراقبة المناطق الحيوية، مما يساعد في الكشف المبكر عن الأنشطة غير العادية أو الخروقات الأمنية.
  • حلول قابلة للتطوير: إن القدرة على التركيز على مناطق معينة تجعل TrackZone قابلة للتكيف مع السيناريوهات المختلفة، من مساحات البيع بالتجزئة إلى البيئات الصناعية، مما يضمن التكامل السلس وقابلية التوسع.

تطبيقات العالم الحقيقي

الزراعة المواصلات
تتبع النباتات في الحقل باستخدام Ultralytics YOLO11 تتبع المركبات على الطريق باستخدام Ultralytics YOLO11
تتبع النباتات في الحقل باستخدام Ultralytics YOLO11 تتبع المركبات على الطريق باستخدام Ultralytics YOLO11

TrackZone باستخدام Ultralytics YOLO

# Run a trackzone example
yolo solutions trackzone show=True

# Pass a source video
yolo solutions trackzone show=True source="path/to/video.mp4"

# Pass region coordinates
yolo solutions trackzone show=True region="[(150, 150), (1130, 150), (1130, 570), (150, 570)]"
import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# Define region points
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]

# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("trackzone_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Init trackzone (object tracking in zones, not complete frame)
trackzone = solutions.TrackZone(
    show=True,  # display the output
    region=region_points,  # pass region points
    model="yolo11n.pt",  # use any model that Ultralytics support, i.e. YOLOv9, YOLOv10
    # line_width=2,  # adjust the line width for bounding boxes and text display
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or processing is complete.")
        break

    results = trackzone(im0)

    # print(results)  # access the output

    video_writer.write(results.plot_im)  # write the video file

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

TrackZone الوسائط

إليك جدول مع TrackZone arguments:

الوسيطة النوع افتراضي الوصف
model str None مسار إلى ملف نموذج Ultralytics YOLO.
region list '[(20, 400), (1260, 400)]' قائمة النقاط التي تحدد منطقة العد.

يتضمن حل TrackZone دعمًا لـ track المعلمات:

الوسيطة النوع افتراضي الوصف
tracker str 'botsort.yaml' يحدد خوارزمية التتبع المراد استخدامها، على سبيل المثال، bytetrack.yaml أو botsort.yaml.
conf float 0.3 يحدد عتبة الثقة للكشف؛ القيم الأقل تسمح بتتبع المزيد من الكائنات ولكن قد تتضمن نتائج إيجابية كاذبة.
iou float 0.5 يحدد عتبة التقاطع على الاتحاد (IoU) لتصفية الاكتشافات المتداخلة.
classes list None يقوم بتصفية النتائج حسب فهرس الفئة. على سبيل المثال، classes=[0, 2, 3] يتتبع الفئات المحددة فقط.
verbose bool True يتحكم في عرض نتائج التتبع، مما يوفر مخرجًا مرئيًا للكائنات التي يتم تتبعها.
device str None يحدد الجهاز الخاص بالاستدلال (على سبيل المثال، cpu, cuda:0 أو 0). يسمح للمستخدمين بالاختيار بين CPU أو GPU معين أو أجهزة حساب أخرى لتنفيذ النموذج.

علاوة على ذلك، تتوفر خيارات التصور التالية:

الوسيطة النوع افتراضي الوصف
show bool False إذا True، يعرض الصور أو مقاطع الفيديو المشروحة في نافذة. مفيد للحصول على تعليقات مرئية فورية أثناء التطوير أو الاختبار.
line_width None or int None يحدد عرض خطوط مربعات الإحاطة. إذا None، يتم تعديل عرض الخط تلقائيًا بناءً على حجم الصورة. يوفر تخصيصًا مرئيًا للوضوح.
show_conf bool True يعرض قيمة الثقة لكل كائن يتم الكشف عنه بجانب التسمية. يعطي نظرة ثاقبة حول يقين النموذج لكل كائن تم الكشف عنه.
show_labels bool True يعرض تسميات لكل كائن يتم الكشف عنه في الناتج المرئي. يوفر فهمًا فوريًا للكائنات التي تم الكشف عنها.

الأسئلة الشائعة

كيف يمكنني تتبع الكائنات في منطقة معينة أو نطاق معين من إطار الفيديو باستخدام Ultralytics YOLO11؟

يعد تتبع الأجسام في منطقة أو حيز محدد من إطار الفيديو أمرًا بسيطًا باستخدام Ultralytics YOLO11. ما عليك سوى استخدام الأمر الموضح أدناه لبدء التتبع. يضمن هذا النهج تحليلًا فعالًا ونتائج دقيقة، مما يجعله مثاليًا لتطبيقات مثل المراقبة أو إدارة الحشود أو أي سيناريو يتطلب تتبعًا مناطقيًا.

yolo solutions trackzone source="path/to/video.mp4" show=True

كيف يمكنني استخدام TrackZone في Python مع Ultralytics YOLO11؟

باستخدام بضعة أسطر فقط من التعليمات البرمجية، يمكنك إعداد تتبع الكائنات في مناطق معينة، مما يسهل دمجها في مشاريعك.

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

# Define region points
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]

# Video writer
video_writer = cv2.VideoWriter("object_counting_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Init trackzone (object tracking in zones, not complete frame)
trackzone = solutions.TrackZone(
    show=True,  # display the output
    region=region_points,  # pass region points
    model="yolo11n.pt",
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break
    results = trackzone(im0)
    video_writer.write(results.plot_im)

cap.release()
video_writer.release()
cv2.destroyAllWindows()

كيف يمكنني تكوين نقاط المنطقة لمعالجة الفيديو باستخدام Ultralytics TrackZone؟

يعد تكوين نقاط المنطقة لمعالجة الفيديو باستخدام Ultralytics TrackZone أمرًا بسيطًا وقابلاً للتخصيص. يمكنك تحديد المناطق وتعديلها مباشرةً من خلال برنامج python نصي، مما يسمح بتحكم دقيق في المناطق التي تريد مراقبتها.

# Define region points
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]

# Initialize trackzone
trackzone = solutions.TrackZone(
    show=True,  # display the output
    region=region_points,  # pass region points
)


📅 تم الإنشاء قبل 7 أشهر ✏️ تم التحديث قبل شهرين

تعليقات