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

حساب المسافة باستخدام 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 عرض نتائج تعقب الكائن


Created 2024-01-05, Updated 2024-06-10
Authors: glenn-jocher (6), IvorZhu331 (1), RizwanMunawar (5), AyushExel (1)

التعليقات