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

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

ما هو حساب المسافة (Distance Calculation)؟

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



شاهد: كيفية تقدير المسافة بين الكائنات التي تم الكشف عنها باستخدام Ultralytics YOLO بالبكسل 🚀

مرئيات

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

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

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

المسافة هي تقدير وقد لا تكون دقيقة تمامًا لأنها محسوبة باستخدام بيانات ثنائية الأبعاد، والتي تفتقر إلى معلومات العمق.

حساب المسافة باستخدام 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="yolo26n.pt",  # path to the YOLO26 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 arguments:

الوسيطةالنوعافتراضيالوصف
modelstrNoneمسار إلى ملف نموذج Ultralytics YOLO.

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

الوسيطةالنوعافتراضيالوصف
trackerstr'botsort.yaml'يحدد خوارزمية التتبع المراد استخدامها، على سبيل المثال، bytetrack.yaml أو botsort.yaml.
conffloat0.1يحدد عتبة الثقة للكشف؛ القيم الأقل تسمح بتتبع المزيد من الكائنات ولكن قد تتضمن نتائج إيجابية كاذبة.
ioufloat0.7يحدد عتبة التقاطع على الاتحاد (IoU) لتصفية عمليات الكشف المتداخلة.
classeslistNoneيقوم بتصفية النتائج حسب فهرس الفئة. على سبيل المثال، classes=[0, 2, 3] يتتبع الفئات المحددة فقط.
verboseboolTrueيتحكم في عرض نتائج التتبع، مما يوفر مخرجًا مرئيًا للكائنات التي يتم تتبعها.
devicestrNoneيحدد الجهاز الخاص بالاستدلال (على سبيل المثال، cpu, cuda:0 أو 0). يسمح للمستخدمين بالاختيار بين CPU أو GPU معين أو أجهزة حساب أخرى لتنفيذ النموذج.

علاوة على ذلك، تتوفر وسائط التصور التالية للاستخدام:

الوسيطةالنوعافتراضيالوصف
showboolFalseإذا True، يعرض الصور أو مقاطع الفيديو المشروحة في نافذة. مفيد للحصول على تعليقات مرئية فورية أثناء التطوير أو الاختبار.
line_widthint or NoneNoneيحدد عرض خطوط مربعات الإحاطة. إذا None، يتم تعديل عرض الخط تلقائيًا بناءً على حجم الصورة. يوفر تخصيصًا مرئيًا للوضوح.
show_confboolTrueيعرض قيمة الثقة لكل كائن يتم الكشف عنه بجانب التسمية. يعطي نظرة ثاقبة حول يقين النموذج لكل كائن تم الكشف عنه.
show_labelsboolTrueيعرض تسميات لكل كائن يتم الكشف عنه في الناتج المرئي. يوفر فهمًا فوريًا للكائنات التي تم الكشف عنها.

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

في DistanceCalculation class يعمل عن طريق تتبع الأجسام عبر إطارات الفيديو وحساب المسافة الإقليدية بين مراكز الثقل للمربعات المحيطة المحددة. عندما تنقر على جسمين، يكون الحل:

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

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

التطبيقات

يحتوي حساب المسافة باستخدام YOLO26 على العديد من التطبيقات العملية:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



📅 تم الإنشاء قبل 2 أعوام ✏️ تم التحديث قبل 7 أيام
glenn-jocherRizwanMunawarRizwanMunawarMatthewNoycepderrengerUltralyticsAssistantjk4eIvorZhu331AyushExel

تعليقات