انتقل إلى المحتوى

حساب المسافة باستخدام Ultralytics YOLOv8

ما هو حساب المسافة؟

يعرف قياس الفجوة بين كائنين بحساب المسافة داخل مساحة محددة. في حالة Ultralytics YOLOv8، يتم استخدام سنترويد المربع المحيط لحساب المسافة للمربعات المحيطة التي يبرزها المستخدم.



شاهد: حساب المسافة باستخدام Ultralytics YOLOv8

صور

حساب المسافة باستخدام Ultralytics YOLOv8
Ultralytics YOLOv8 حساب المسافة

مزايا حساب المسافة؟

  • دقة التعريب: يعزز تحديد المواقع المكانية بدقة في مهام رؤية الكمبيوتر.
  • تقدير الحجم: يسمح بتقدير الأحجام المادية لفهم السياق بشكل أفضل.
  • فهم المشهد: يساهم في فهم 3D للبيئة لتحسين عملية صنع القرار.
حساب المسافة
  • انقر فوق أي مربعين محيطين مع النقر بالماوس الأيسر لحساب المسافة

حساب المسافة باستخدام YOLOv8 مثل

import cv2

from ultralytics import YOLO, solutions

model = YOLO("yolov8n.pt")
names = model.model.names

cap = cv2.VideoCapture("path/to/video/file.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))

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

# Init distance-calculation obj
dist_obj = solutions.DistanceCalculation(names=names, view_img=True)

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

    tracks = model.track(im0, persist=True, show=False)
    im0 = dist_obj.start_process(im0, tracks)
    video_writer.write(im0)

cap.release()
video_writer.release()
cv2.destroyAllWindows()
ملاحظه
  • سيؤدي النقر بزر الماوس الأيمن إلى حذف جميع النقاط المرسومة
  • يمكن استخدام النقر بزر الماوس الأيسر لرسم النقاط

الحجج DistanceCalculation()

Name Type Default وصف
names dict None قاموس أسماء الفئات.
pixels_per_meter int 10 عامل التحويل من بكسل إلى متر.
view_img bool False علامة للإشارة إلى ما إذا كان ينبغي عرض دفق الفيديو.
line_thickness int 2 سماكة الخطوط المرسومة على الصورة.
line_color tuple (255, 255, 0) لون الخطوط المرسومة على الصورة (تنسيق BGR).
centroid_color tuple (255, 0, 255) لون الوسطيات المرسومة (تنسيق BGR).

الحجج model.track

اسم نوع افتراضي وصف
source im0 None الدليل المصدر للصور أو مقاطع الفيديو
persist bool False المسارات المستمرة بين الإطارات
tracker str botsort.yaml طريقة التتبع "bytetrack" أو "botsort"
conf float 0.3 عتبة الثقة
iou float 0.5 عتبة IOU
classes list None تصفية النتائج حسب الفئة ، أي الفئات = 0 ، أو الفئات = [0،2،3]
verbose bool True عرض نتائج تعقب الكائن

الأسئلة المتداولة

كيف يمكنني حساب المسافات بين الأجسام باستخدام Ultralytics YOLOv8 ؟

لحساب المسافات بين الأجسام باستخدام Ultralytics YOLOv8فإنك تحتاج إلى تحديد مركزيات المربع المحدود للأجسام المكتشفة. تتضمن هذه العملية تهيئة DistanceCalculation فئة من Ultralytics' solutions واستخدام مخرجات تتبع النموذج لحساب المسافات. يمكنك الرجوع إلى التنفيذ في مثال لحساب المسافة.

ما هي مزايا استخدام حساب المسافة مع Ultralytics YOLOv8 ؟

يوفر استخدام حساب المسافة مع Ultralytics YOLOv8 العديد من المزايا:

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

هل يمكنني إجراء حساب المسافة في تدفقات الفيديو في الوقت الفعلي باستخدام Ultralytics YOLOv8 ؟

نعم، يمكنك إجراء حساب المسافة في تدفقات الفيديو في الوقت الفعلي باستخدام Ultralytics YOLOv8 . وتتضمن العملية التقاط إطارات الفيديو باستخدام OpenCV، وتشغيل YOLOv8 الكشف عن الكائنات، واستخدام DistanceCalculation لحساب المسافات بين الأجسام في الإطارات المتتالية. للحصول على تطبيق مفصّل، راجع مثال على دفق الفيديو.

كيف يمكنني حذف النقاط المرسومة أثناء حساب المسافة باستخدام Ultralytics YOLOv8 ؟

لحذف النقاط المرسومة أثناء حساب المسافة باستخدام Ultralytics YOLOv8 ، يمكنك استخدام النقر بزر الفأرة الأيمن. سيؤدي هذا الإجراء إلى مسح جميع النقاط التي رسمتها. لمزيد من التفاصيل، راجع قسم الملاحظات تحت مثال حساب المسافة.

ما هي الوسيطات الرئيسية لتهيئة فئة DistanceCalculation في Ultralytics YOLOv8 ؟

الوسيطات الرئيسية لتهيئة DistanceCalculation فئة في Ultralytics YOLOv8 ما يلي:

  • names: قاموس تعيين مؤشرات الفئات إلى أسماء الفئات.
  • pixels_per_meter: عامل التحويل من بكسل إلى متر.
  • view_img: علامة للإشارة إلى ما إذا كان ينبغي عرض دفق الفيديو.
  • line_thickness: سماكة الخطوط المرسومة على الصورة.
  • line_color: لون الخطوط المرسومة على الصورة (تنسيق BGR).
  • centroid_color: لون الوسطيات (تنسيق BGR).

للاطلاع على قائمة شاملة والقيم الافتراضية، راجع وسيطات DistanceCalculation.



تم الإنشاء 2024-01-05، تم التحديث 2024-07-14
المؤلفون: RizwanMunawar (5)، Glenn-jocher (7)، IvorZhu331 (1)، AyushExel (1)

التعليقات