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

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

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

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



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

تحقق من مدونتنا

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

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

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

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

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

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

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

# Run a speed example
yolo solutions speed show=True

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

# Adjust meter per pixel value based on camera configuration
yolo solutions speed meter_per_pixel=0.05
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("speed_management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize speed estimation object
speedestimator = solutions.SpeedEstimator(
    show=True,  # display the output
    model="yolo11n.pt",  # path to the YOLO11 model file.
    fps=fps,  # adjust speed based on frame per second
    # max_speed=120,  # cap speed to a max value (km/h) to avoid outliers
    # max_hist=5,  # minimum frames object tracked before computing speed
    # meter_per_pixel=0.05,  # highly depends on the camera configuration
    # classes=[0, 2],  # estimate speed of specific classes.
    # line_width=2,  # adjust the line width for bounding boxes
)

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

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

    results = speedestimator(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

SpeedEstimator الوسائط

إليك جدول مع SpeedEstimator arguments:

الوسيطة النوع افتراضي الوصف
model str None مسار إلى ملف نموذج Ultralytics YOLO.
fps float 30.0 الإطارات في الثانية المستخدمة لحسابات السرعة.
max_hist int 5 الحد الأقصى للنقاط التاريخية التي يجب تتبعها لكل كائن لحساب السرعة/الاتجاه.
meter_per_pixel float 0.05 عامل القياس المستخدم لتحويل مسافة البكسل إلى وحدات العالم الحقيقي.
max_speed int 120 الحد الأقصى للسرعة في التراكبات المرئية (يستخدم في التنبيهات).

في SpeedEstimator يسمح الحل باستخدام track المعلمات:

الوسيطة النوع افتراضي الوصف
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، يتم تعديل عرض الخط تلقائيًا بناءً على حجم الصورة. يوفر تخصيصًا مرئيًا للوضوح.
show_conf bool True يعرض قيمة الثقة لكل كائن يتم الكشف عنه بجانب التسمية. يعطي نظرة ثاقبة حول يقين النموذج لكل كائن تم الكشف عنه.
show_labels bool True يعرض تسميات لكل كائن يتم الكشف عنه في الناتج المرئي. يوفر فهمًا فوريًا للكائنات التي تم الكشف عنها.

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

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

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

مثال:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.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
speedestimator = solutions.SpeedEstimator(
    model="yolo11n.pt",
    show=True,
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    results = speedestimator(im0)
    video_writer.write(results.plot_im)

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

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

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

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

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

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

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

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

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

yolo export model=yolo11n.pt format=onnx

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

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

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

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

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



📅 تم الإنشاء منذ سنة واحدة ✏️ تم التحديث منذ 0 أيام

تعليقات