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

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

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

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



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

المرئيات

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

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

  • دقة تحديد المواقع: يعزز دقة تحديد المواقع المكانية في مهام الرؤية الحاسوبية.
  • تقدير الحجم: يسمح بتقدير حجم الجسم لفهم سياقي أفضل.
  • فهم المشهد: يحسّن فهم المشهد ثلاثي الأبعاد لاتخاذ قرارات أفضل في تطبيقات مثل المركبات ذاتية القيادة وأنظمة المراقبة.
  • تفادي الاصطدام: تمكين الأنظمة من اكتشاف التصادمات المحتملة من خلال مراقبة المسافات بين الأجسام المتحركة.
  • التحليل المكاني: يسهل تحليل علاقات الكائنات والتفاعلات داخل البيئة المراقبة.
حساب المسافة
  • انقر فوق أي مربعين محددين بالنقر بالماوس الأيسر لحساب المسافة
  • سيؤدي النقر بالزر الأيمن بالماوس إلى حذف جميع النقاط المرسومة
  • يمكن استخدام النقر بالماوس الأيسر للماوس لرسم النقاط
المسافة تقديرية
Distance will be an estimate and may not be fully accurate, as it is calculated using 2-dimensional data,
which lacks information about the object's depth.

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

import cv2

from ultralytics import solutions

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

# 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("distance_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize distance calculation object
distancecalculator = solutions.DistanceCalculation(
    model="yolo11n.pt",  # path to the YOLO11 model file.
    show=True,  # display the output
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()

    if not success:
        print("Video frame is empty or processing is complete.")
        break

    results = distancecalculator(im0)

    print(results)  # access the output

    video_writer.write(results.plot_im)  # write the processed frame.

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

DistanceCalculation() الحجج

إليك الجدول الذي يحتوي على DistanceCalculation الحجج

الجدال النوع افتراضي الوصف
model str None المسار إلى ملف نموذج Ultralytics YOLO Model File.

يمكنك أيضًا الاستفادة من العديد من track الحجج في DistanceCalculation الحل.

الجدال النوع افتراضي الوصف
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، يتم ضبط عرض الخط تلقائيًا بناءً على حجم الصورة. يوفر تخصيصاً مرئياً للوضوح.

تفاصيل التنفيذ

إن DistanceCalculation يعمل الفصل عن طريق تتبُّع الأجسام عبر إطارات الفيديو وحساب المسافة الإقليدية بين مراكز المربعات المحدَّدة. عندما تنقر على كائنين، فإن الحل:

  1. استخراج مركزيات (نقاط مركزية) المربعات المحدودة المحددة
  2. حساب المسافة الإقليدية بين هذه المراكز بالبكسل
  3. يعرض المسافة على الإطار مع وجود خط توصيل بين الأجسام

يستخدم التنفيذ mouse_event_for_distance للتعامل مع تفاعلات الماوس، مما يسمح للمستخدمين بتحديد الكائنات ومسح التحديدات حسب الحاجة. إن process يعالج معالجة كل إطار بإطار، وتتبع الأجسام، وحساب المسافات.

التطبيقات

حساب المسافات باستخدام YOLO11 له العديد من التطبيقات العملية:

  • تحليلات البيع بالتجزئة: قياس مدى قرب العميل من المنتجات وتحليل فعالية تخطيط المتجر
  • السلامة الصناعية: مراقبة المسافات الآمنة بين العمال والآلات
  • إدارة حركة المرور: تحليل التباعد بين المركبات والكشف عن التجاوز الخلفي
  • التحليل الرياضي: احسب المسافات بين اللاعبين والكرة ومواقع الملعب الرئيسية
  • الرعاية الصحية: التأكد من التباعد المناسب في مناطق الانتظار ومراقبة حركة المرضى
  • الروبوتات: تمكين الروبوتات من الحفاظ على مسافات مناسبة من العوائق والأشخاص

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

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

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

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

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

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

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

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

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

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

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

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

  • model: المسار إلى ملف نموذج YOLO11 .
  • tracker: خوارزمية التتبع المراد استخدامها (الافتراضي هو 'botsort.yaml').
  • conf: عتبة الثقة للاكتشافات.
  • show: علم لعرض الإخراج.

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

📅 تم إنشاؤها منذ 1 سنة مضت ✏️ تم التحديث منذ 5 أيام

التعليقات