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

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

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

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



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

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

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

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

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

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

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

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

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

# Run a speed example
yolo solutions speed show=True

# Pass a source video
yolo solutions speed source="path/to/video.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.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))

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

# Initialize speed estimation object
speedestimator = solutions.SpeedEstimator(
    show=True,  # display the output
    model="yolo11n.pt",  # path to the YOLO11 model file.
    region=speed_region,  # pass region points
    # 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 الحجج

الجدال النوع افتراضي الوصف
model str None المسار إلى ملف نموذج Ultralytics YOLO Model File.
region list [(20, 400), (1260, 400)] قائمة النقاط التي تحدد منطقة العد.

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

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

كيف يمكنني تقدير سرعة الجسم باستخدام 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(
    region=[(0, 360), (1280, 360)],
    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لضمان قابلية التشغيل البيني السلس مع أطر التعلم الآلي الأخرى.

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

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

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

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

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

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

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

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

التعليقات