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

TrackZone باستخدام Ultralytics YOLO11

افتح TrackZone في كولاب

ما هو TrackZone؟

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



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

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

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

التطبيقات الواقعية

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

تراك زون باستخدام 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 الحجج

الجدال النوع افتراضي الوصف
model str None المسار إلى ملف نموذج Ultralytics YOLO Model File.
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، يتم ضبط عرض الخط تلقائيًا بناءً على حجم الصورة. يوفر تخصيصاً مرئياً للوضوح.

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

كيف يمكنني تتبع الأجسام في منطقة أو منطقة معينة من إطار فيديو باستخدام 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
)
📅 تم إنشاؤها قبل 3 أشهر ✏️ تم التحديث منذ 5 أيام

التعليقات