تقدير السرعة باستخدام Ultralytics YOLO11 🚀
ما هو تقدير السرعة؟
تقدير السرعة هي عملية حساب معدل حركة جسم ما ضمن سياق معين، وغالبًا ما تُستخدم في تطبيقات الرؤية الحاسوبية. باستخدام Ultralytics YOLO11 يمكنك الآن حساب سرعة الجسم باستخدام تتبع الأجسام إلى جانب بيانات المسافة والوقت، وهو أمر بالغ الأهمية لمهام مثل حركة المرور والمراقبة. تؤثر دقة تقدير السرعة تأثيراً مباشراً على كفاءة وموثوقية التطبيقات المختلفة، مما يجعلها عنصراً أساسياً في تطوير الأنظمة الذكية وعمليات اتخاذ القرار في الوقت الحقيقي.
شاهد: تقدير السرعة باستخدام Ultralytics YOLO11
اطلع على مدونتنا
للحصول على رؤى أعمق حول تقدير السرعة، راجع منشور مدونتنا: Ultralytics YOLO11 لتقدير السرعة في مشاريع الرؤية الحاسوبية
مزايا تقدير السرعة؟
- التحكم الفعال في حركة المرور: يساعد التقدير الدقيق للسرعة في إدارة تدفق حركة المرور وتعزيز السلامة وتقليل الازدحام على الطرق.
- ملاحة ذاتية القيادة دقيقة: في الأنظمة ذاتية القيادة مثل السيارات ذاتية القيادة، يضمن التقدير الموثوق للسرعة الملاحة الآمنة والدقيقة للمركبة.
- تعزيز أمن المراقبة: يساعد التقدير السريع في تحليلات المراقبة على تحديد السلوكيات غير الاعتيادية أو التهديدات المحتملة، مما يحسن من فعالية الإجراءات الأمنية.
التطبيقات الواقعية
النقل والمواصلات | النقل والمواصلات |
---|---|
تقدير السرعة على الطريق باستخدام Ultralytics YOLO11 | تقدير السرعة على الجسر باستخدام Ultralytics YOLO11 |
تقدير السرعة باستخدام المثال YOLO11
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 :
تعرف على المزيد حول تصدير النماذج في دليلنا الخاص بالتصدير.
ما مدى دقة تقدير السرعة باستخدام Ultralytics YOLO11 ؟
وتعتمد دقة تقدير السرعة باستخدام Ultralytics YOLO11 على عدة عوامل، بما في ذلك جودة تتبع الأجسام، ودقة ومعدل إطارات الفيديو، والمتغيرات البيئية. على الرغم من أن مقدر السرعة يوفر تقديرات موثوقة، إلا أنه قد لا يكون دقيقًا بنسبة 100% بسبب الاختلافات في سرعة معالجة الإطارات وانسداد الأجسام.
ملحوظة: ضع في اعتبارك دائماً هامش الخطأ وتحقق من صحة التقديرات باستخدام بيانات الحقيقة الأرضية عندما يكون ذلك ممكناً.
لمزيد من النصائح حول تحسين الدقة، راجع الحجج SpeedEstimator
القسم.
لماذا تختار Ultralytics YOLO11 على نماذج أخرى للكشف عن الكائنات مثل TensorFlow واجهة برمجة تطبيقات الكشف عن الكائنات ؟
Ultralytics YOLO11 العديد من المزايا مقارنةً بنماذج اكتشاف الكائنات الأخرى، مثل واجهة برمجة تطبيقات اكتشاف الكائنات TensorFlow :
- الأداء في الوقت الحقيقي: تم تحسين YOLO11 للكشف في الوقت الحقيقي، مما يوفر سرعة ودقة عالية.
- سهولة الاستخدام: تم تصميمه بواجهة سهلة الاستخدام، YOLO11 لتبسيط التدريب على النماذج ونشرها.
- تعدد الاستخدامات: يدعم مهام متعددة، بما في ذلك اكتشاف الأجسام، والتجزئة، وتقدير الوضعية.
- المجتمع والدعم: YOLO11 مدعوم بمجتمع نشط ووثائق واسعة النطاق، مما يضمن حصول المطورين على الموارد التي يحتاجونها.
للمزيد من المعلومات حول فوائد YOLO11 ، استكشف صفحة الطراز المفصلة الخاصة بنا.