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

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

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

Speed estimation is the process of calculating the rate of movement of an object within a given context, often employed in computer vision applications. Using Ultralytics YOLO11 you can now calculate the speed of object using object tracking alongside distance and time data, crucial for tasks like traffic and surveillance. The accuracy of speed estimation directly influences the efficiency and reliability of various applications, making it a key component in the advancement of intelligent systems and real-time decision-making processes.



شاهد: Speed Estimation using Ultralytics YOLO11

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

For deeper insights into speed estimation, check out our blog post: Ultralytics YOLO11 for Speed Estimation in Computer Vision Projects

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

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

تطبيقات العالم الحقيقي

النقلالنقل
Speed Estimation on Road using Ultralytics YOLO11Speed Estimation on Bridge using Ultralytics YOLO11
Speed Estimation on Road using Ultralytics YOLO11Speed Estimation on Bridge using 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, 404), (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, 404), (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

اسمنوعافتراضيوصف
modelstrNoneالمسار إلى Ultralytics YOLO ملف نموذج
regionlist[(20, 400), (1260, 400)]قائمة النقاط التي تحدد منطقة العد.
line_widthint2سمك الخط للمربعات المحيطة.
showboolFalseضع علامة للتحكم في ما إذا كنت تريد عرض دفق الفيديو أم لا.

الحجج model.track

جدالنوعافتراضيوصف
sourcestrNoneيحدد الدليل المصدر للصور أو مقاطع الفيديو. يدعم مسارات الملفات وعناوين URL.
persistboolFalseتمكين التتبع المستمر للكائنات بين الإطارات، والحفاظ على المعرفات عبر تسلسلات الفيديو.
trackerstrbotsort.yamlيحدد خوارزمية التتبع المراد استخدامها، على سبيل المثال, bytetrack.yaml أو botsort.yaml.
conffloat0.3تعيين عتبة الثقة للاكتشافات؛ تسمح القيم المنخفضة بتتبع المزيد من الكائنات ولكنها قد تتضمن نتائج إيجابية كاذبة.
ioufloat0.5يضبط عتبة التقاطع على الاتحاد (IoU) لتصفية الاكتشافات المتداخلة.
classeslistNoneتصفية النتائج حسب فهرس الفئة. على سبيل المثال, classes=[0, 2, 3] يتتبع الفئات المحددة فقط.
verboseboolTrueيتحكم في عرض نتائج التتبع، مما يوفر إخراجًا مرئيًا للأجسام المتعقبة.

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

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

Estimating object speed with Ultralytics YOLO11 involves combining object detection and tracking techniques. First, you need to detect objects in each frame using the YOLO11 model. Then, track these objects across frames to calculate their movement over time. Finally, use the distance traveled by the object between frames and the frame rate to estimate its speed.

مثال على ذلك:

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 لتقدير السرعة مزايا كبيرة في إدارة حركة المرور:

  • تعزيز السلامة: تقدير سرعة السيارة بدقة للكشف عن السرعة الزائدة وتحسين السلامة على الطريق.
  • Real-Time Monitoring: Benefit from YOLO11's real-time object detection capability to monitor traffic flow and congestion effectively.
  • قابلية التوسع: نشر النموذج على مختلف إعدادات الأجهزة، بدءاً من الأجهزة الطرفية إلى الخوادم، مما يضمن حلولاً مرنة وقابلة للتطوير للتطبيقات واسعة النطاق.

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

Can YOLO11 be integrated with other AI frameworks like TensorFlow or PyTorch?

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

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

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

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

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

The accuracy of speed estimation using Ultralytics YOLO11 depends on several factors, including the quality of the object tracking, the resolution and frame rate of the video, and environmental variables. While the speed estimator provides reliable estimates, it may not be 100% accurate due to variances in frame processing speed and object occlusion.

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

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

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

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

  • Real-Time Performance: YOLO11 is optimized for real-time detection, providing high speed and accuracy.
  • Ease of Use: Designed with a user-friendly interface, YOLO11 simplifies model training and deployment.
  • تعدد الاستخدامات: يدعم مهام متعددة، بما في ذلك اكتشاف الأجسام، والتجزئة، وتقدير الوضعية.
  • Community and Support: YOLO11 is backed by an active community and extensive documentation, ensuring developers have the resources they need.

For more information on the benefits of YOLO11, explore our detailed model page.

📅 Created 10 months ago ✏️ Updated 7 days ago

التعليقات