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

تقدير السرعة باستخدام Ultralytics YOLO11 🚀

ما هو تقدير السرعة؟

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



شاهد: تقدير السرعة باستخدام Ultralytics YOLO11

اطلع على مدونتنا

للحصول على رؤى أعمق حول تقدير السرعة، راجع منشور مدونتنا: Ultralytics YOLO11 لتقدير السرعة في مشاريع الرؤية الحاسوبية

مزايا تقدير السرعة؟

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

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

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

تقدير السرعة باستخدام المثال YOLO11

# Run a speed example
yolo solutions speed show=True

# Pass a source video
yolo solutions speed source="path/to/video/file.mp4"

# Pass region coordinates
yolo solutions speed region=[(20, 400), (1080, 400), (1080, 360), (20, 360)]
import cv2

from ultralytics import solutions

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

# Define speed region points
speed_region = [(20, 400), (1080, 400), (1080, 360), (20, 360)]

speed = solutions.SpeedEstimator(
    show=True,  # Display the output
    model="yolo11n-pose.pt",  # Path to the YOLO11 model file.
    region=speed_region,  # Pass region points
    # classes=[0, 2],  # If you want to estimate speed of specific classes.
    # line_width=2,  # Adjust the line width for bounding boxes and text display
)

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

    if success:
        out = speed.estimate_speed(im0)
        video_writer.write(im0)
        if cv2.waitKey(1) & 0xFF == ord("q"):
            break
        continue

    print("Video frame is empty or video processing has been successfully completed.")
    break

cap.release()
cv2.destroyAllWindows()
السرعة تقديرية

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

الحجج SpeedEstimator

الاسم النوع افتراضي الوصف
model str None المسار إلى Ultralytics YOLO ملف نموذج
region list [(20, 400), (1260, 400)] قائمة النقاط التي تحدد منطقة العد.
line_width int 2 سُمك الخط للمربعات المحدودة.
show bool False علامة للتحكم في عرض دفق الفيديو من عدمه.

الحجج model.track

الجدال النوع افتراضي الوصف
source str None يحدد الدليل المصدر للصور أو مقاطع الفيديو. يدعم مسارات الملفات وعناوين URL.
persist bool False تمكين التتبع المستمر للكائنات بين الإطارات، والحفاظ على المعرفات عبر تسلسلات الفيديو.
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 يتحكم في عرض نتائج التتبع، مما يوفر إخراجًا مرئيًا للأجسام المتعقبة.

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

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

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

مثال على ذلك:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video/file.mp4")
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("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize SpeedEstimator
speed_obj = solutions.SpeedEstimator(
    region=[(0, 360), (1280, 360)],
    model="yolo11n.pt",
    show=True,
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    im0 = speed_obj.estimate_speed(im0)
    video_writer.write(im0)

cap.release()
video_writer.release()
cv2.destroyAllWindows()

لمزيد من التفاصيل، راجع منشور المدونة الرسمي الخاص بنا.

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

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

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

لمزيد من التطبيقات، راجع مزايا تقدير السرعة.

هل يمكن دمج YOLO11 مع أطر عمل الذكاء الاصطناعي الأخرى مثل TensorFlow أو PyTorch?

نعم، يمكن دمج YOLO11 مع أطر عمل أخرى للذكاء الاصطناعي مثل TensorFlow و PyTorch. Ultralytics يوفر دعمًا لتصدير نماذج YOLO11 إلى تنسيقات مختلفة مثل ONNX و TensorRT و CoreML ، مما يضمن إمكانية التشغيل البيني السلس مع أطر عمل أخرى لتعلم الآلة.

لتصدير نموذج YOLO11 إلى تنسيق ONNX :

yolo export --weights yolo11n.pt --include onnx

تعرف على المزيد حول تصدير النماذج في دليلنا الخاص بالتصدير.

ما مدى دقة تقدير السرعة باستخدام Ultralytics YOLO11 ؟

وتعتمد دقة تقدير السرعة باستخدام Ultralytics YOLO11 على عدة عوامل، بما في ذلك جودة تتبع الأجسام، ودقة ومعدل إطارات الفيديو، والمتغيرات البيئية. على الرغم من أن مقدر السرعة يوفر تقديرات موثوقة، إلا أنه قد لا يكون دقيقًا بنسبة 100% بسبب الاختلافات في سرعة معالجة الإطارات وانسداد الأجسام.

ملحوظة: ضع في اعتبارك دائماً هامش الخطأ وتحقق من صحة التقديرات باستخدام بيانات الحقيقة الأرضية عندما يكون ذلك ممكناً.

لمزيد من النصائح حول تحسين الدقة، راجع الحجج SpeedEstimator القسم.

لماذا تختار Ultralytics YOLO11 على نماذج أخرى للكشف عن الكائنات مثل TensorFlow واجهة برمجة تطبيقات الكشف عن الكائنات ؟

Ultralytics YOLO11 العديد من المزايا مقارنةً بنماذج اكتشاف الكائنات الأخرى، مثل واجهة برمجة تطبيقات اكتشاف الكائنات TensorFlow :

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

للمزيد من المعلومات حول فوائد YOLO11 ، استكشف صفحة الطراز المفصلة الخاصة بنا.

📅 Created 11 months ago ✏️ Updated 17 days ago

التعليقات