Ultralytics YOLOv8 لتقدير السرعة في مشاريع الرؤية الحاسوبية
اكتشف كيف يمكن استخدام نموذج Ultralytics YOLOv8 لتقدير السرعة في مشاريع الرؤية الحاسوبية لديك. جرّبه بنفسك باستخدام مثال برمجي بسيط.

ربما شاهدنا جميعًا إشارات تحديد السرعة على الطرق. وربما تلقّى بعضنا حتى إشعارًا آليًا بالبريد أو البريد الإلكتروني بشأن مخالفة حد السرعة. تستطيع أنظمة إدارة حركة المرور المعتمدة على الذكاء الاصطناعي (AI) رصد مخالفات السرعة تلقائيًا بفضل الرؤية الحاسوبية. وتُستخدم اللقطات المصوّرة في الوقت الفعلي، التي تلتقطها الكاميرات عند إشارات المرور وعلى الطرق السريعة، لتقدير السرعة وتعزيز السلامة على الطرق.
لا يقتصر تقدير السرعة على السلامة على الطرق السريعة فحسب، بل يمكن استخدامه في الرياضة والمركبات ذاتية القيادة والعديد من التطبيقات الأخرى. في هذه المقالة، سنناقش كيفية استخدام نموذج Ultralytics YOLOv8 لتقدير السرعة في مشاريع الرؤية الحاسوبية الخاصة بك. وسنستعرض أيضًا مثالًا برمجيًا خطوة بخطوة حتى تتمكن من تجربته بنفسك. لنبدأ!
يُسهّل تقدير السرعة إدارة حركة المرور#
وفقًا لمنظمة الصحة العالمية (WHO)، يتوفى نحو 1.19 مليون شخص سنويًا بسبب حوادث المرور على الطرق نتيجة السرعة الزائدة. إضافةً إلى ذلك، يتعرض ما بين 20 و50 مليون شخص آخر لإصابات غير مميتة، يفضي كثير منها إلى الإعاقة. ولا يمكن المبالغة في أهمية أمن المرور، لا سيما عندما يساعد تقدير السرعة على منع الحوادث وإنقاذ الأرواح والحفاظ على طرقنا آمنة وفعّالة.
ينطوي تقدير السرعة باستخدام الرؤية الحاسوبية على اكتشاف الكائنات في إطارات الفيديو وتتبّعها لحساب سرعة حركتها. تستطيع خوارزميات مثل Ultralytics YOLOv8 تحديد كائنات مثل المركبات وتتبّعها عبر إطارات متتالية. ويقيس النظام المسافة التي تقطعها هذه الكائنات باستخدام كاميرات مُعايرة أو نقاط مرجعية لتقدير المسافات في العالم الحقيقي. ومن خلال حساب الزمن الذي تستغرقه الكائنات للانتقال بين نقطتين، يحسب النظام سرعتها باستخدام نسبة المسافة إلى الزمن.

الشكل 1. تقدير السرعة باستخدام نموذج Ultralytics YOLOv8.
إلى جانب ضبط مخالفات السرعة، تستطيع أنظمة تقدير السرعة المدمجة مع الذكاء الاصطناعي جمع البيانات للتنبؤ بحركة المرور. ويمكن لهذه التنبؤات دعم مهام إدارة حركة المرور، مثل تحسين توقيت الإشارات وتخصيص الموارد. كما يمكن استخدام الرؤى المتعلقة بأنماط حركة المرور وأسباب الازدحام للتخطيط لإنشاء طرق جديدة تحد من الازدحام المروري.
تطبيقات تقدير السرعة في قطاعات أخرى#
تتجاوز تطبيقات تقدير السرعة مراقبة الطرق، إذ يمكن استخدامها أيضًا لمراقبة أداء الرياضيين، ومساعدة المركبات ذاتية القيادة على فهم سرعة الكائنات المتحركة من حولها، واكتشاف السلوكيات المشبوهة، وغير ذلك. وفي أي مكان يمكن فيه استخدام كاميرا لقياس سرعة كائن ما، يمكن استخدام تقدير السرعة باستخدام الرؤية الحاسوبية.
فيما يلي بعض الأمثلة على استخدام تقدير السرعة:
- تستخدم سيارات Tesla ذاتية القيادة تقدير السرعة القائم على الرؤية لتجنب الاصطدامات.
- ستُستخدم الرؤية الحاسوبية وتقدير السرعة في دورة الألعاب الأولمبية لعام 2024 لتحسين تحليلات الأداء في مسابقات ألعاب القوى.
- تبحث المدن الذكية في تحليل مشية المشاة لمراقبة سرعات المشي وتعزيز التنقل والسلامة في المناطق الحضرية. ويمكن لهذه الأنظمة تنبيه السائقين إلى وجود المشاة ومنع الحوادث.
- تستخدم أنظمة مراقبة سلوك الحيوانات تقدير السرعة لتتبّع حركة الحيوانات واكتشاف علامات الضيق أو المرض.

الشكل 2. يمكن لتقدير السرعة قياس سرعة مشي شخص.
فوائد تقدير السرعة باستخدام الرؤية الحاسوبية#
تحل أنظمة تقدير السرعة القائمة على الرؤية محل الأساليب التقليدية القائمة على المستشعرات بفضل دقتها المحسّنة وفعاليتها من حيث التكلفة ومرونتها. وعلى خلاف الأنظمة التي تعتمد على مستشعرات باهظة الثمن مثل LiDAR، تستخدم الرؤية الحاسوبية كاميرات قياسية لمراقبة السرعة وتحليلها في الوقت الفعلي. ويمكن دمج حلول الرؤية الحاسوبية لتقدير السرعة بسلاسة مع البنية التحتية الحالية لحركة المرور. كما يمكن تصميم هذه الأنظمة لتنفيذ عدد من المهام المعقدة، مثل تحديد نوع المركبة وتحليل أنماط حركة المرور، لتحسين تدفق حركة المرور والسلامة على نحو عام.
جرّب بنفسك: تقدير السرعة باستخدام Ultralytics YOLOv8#
بعد أن كوّنا فهمًا واضحًا لتقدير السرعة وتطبيقاته، دعونا نلقي نظرةً فاحصة على كيفية دمج تقدير السرعة في مشاريع الرؤية الحاسوبية من خلال الشفرة البرمجية. سنكتشف المركبات المتحركة ونقدّر سرعتها باستخدام نموذج Ultralytics YOLOv8.
يستخدم هذا المثال مقطع فيديو لسيارات على طريق، وقد نُزّل من الإنترنت. يمكنك استخدام مقطع الفيديو نفسه أو أي مقطع فيديو ذي صلة. يحدد نموذج Ultralytics YOLOv8 مركز كل مركبة ويحسب سرعتها استنادًا إلى مدى سرعة عبور هذا المركز لخط أفقي في إطار الفيديو.
قبل أن نتعمق في التفاصيل، من المهم ملاحظة أن حساب المسافة في هذه الحالة تقريبي ويستند إلى المسافة الإقليدية. ولا تتم مراعاة معايرة الكاميرا، ولذلك قد لا يكون تقدير السرعة دقيقًا تمامًا. كما يمكن أن تختلف السرعة المقدّرة تبعًا لسرعة وحدة معالجة الرسومات (GPU) لديك.
الخطوة 1: سنبدأ بتثبيت حزمة Ultralytics. افتح موجه الأوامر أو الطرفية وشغّل الأمر الموضح أدناه.
pip install ultralyticsاطّلع على دليل تثبيت Ultralytics للحصول على إرشادات خطوة بخطوة وأفضل الممارسات المتعلقة بعملية التثبيت. وإذا واجهت أي مشكلات أثناء تثبيت الحزم المطلوبة لـ YOLOv8، فسيحتوي دليل المشكلات الشائعة على حلول ونصائح مفيدة.
الخطوة 2: بعد ذلك، سنستورد المكتبات المطلوبة. وستساعدنا مكتبة OpenCV في معالجة الفيديو.
import cv2
from ultralytics import YOLO, solutionsالخطوة 3: بعد ذلك، يمكننا تحميل نموذج Ultralytics YOLOv8 واسترداد أسماء الفئات التي يستطيع النموذج اكتشافها.
model = YOLO("yolov8n.pt")
names = model.model.namesاطّلع على جميع النماذج التي ندعمها لمعرفة النموذج الأنسب لمشروعك.
الخطوة 4: في هذه الخطوة، سنفتح ملف الفيديو المُدخل باستخدام وحدة VideoCapture في OpenCV. وسنستخرج أيضًا عرض الفيديو وارتفاعه وعدد الإطارات في الثانية (fps).
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))الخطوة 5: سنهيّئ هنا كاتب الفيديو لحفظ نتائج تقدير السرعة النهائية. وسيُحفظ ملف الفيديو الناتج باسم “speed_estimation.avi”.
video_writer = cv2.VideoWriter("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))الخطوة 6: بعد ذلك، يمكننا تحديد نقاط الخط لتقدير السرعة. وبالنسبة إلى الفيديو المُدخل، سيوضع هذا الخط أفقيًا في منتصف الإطار. لا تتردد في تعديل القيم لوضع الخط في المواضع الأنسب، اعتمادًا على الفيديو المُدخل.
line_pts = [(0, 360), (1280, 360)]الخطوة 7: يمكننا الآن تهيئة كائن تقدير السرعة باستخدام نقاط الخط وأسماء الفئات المحددة.
speed_obj = solutions.SpeedEstimator(
reg_pts=line_pts,
names=names,
view_img=True,
)الخطوة 8: يعالج جوهر البرنامج النصي الفيديو إطارًا تلو الآخر. نقرأ كل إطار ونكتشف الكائنات ونتتبّعها. ثم تُقدّر سرعة الكائنات المتتبَّعة، ويُكتب الإطار المُعلَّم إلى فيديو الإخراج.
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
tracks = model.track(im0, persist=True, show=False)
im0 = speed_obj.estimate_speed(im0, tracks)
video_writer.write(im0)الخطوة 9: أخيرًا، نحرر كائنَي التقاط الفيديو والكتابة، ونغلق أي نوافذ مفتوحة في OpenCV.
cap.release()
video_writer.release()
cv2.destroyAllWindows()الخطوة 10: احفظ البرنامج النصي. وإذا كنت تعمل من الطرفية أو موجه الأوامر، فشغّل البرنامج النصي باستخدام الأمر التالي:
python your_script_name.pyتحديات تقدير السرعة القائم على الرؤية#
من المهم أيضًا فهم التحديات المرتبطة بتنفيذ تقدير السرعة باستخدام الرؤية الحاسوبية. فقد تتسبب الظروف الجوية غير المواتية، مثل المطر أو الضباب أو الثلج، في حدوث مشكلات للنظام لأنها قد تحجب رؤية الطريق. وبالمثل، قد تجعل العوائق الناتجة عن المركبات أو الكائنات الأخرى من الصعب على هذه الأنظمة تتبّع سرعة مركبة مستهدفة وتقديرها بدقة. كما يمكن لظروف الإضاءة السيئة التي تُسبب ظلالًا أو وهجًا من الشمس أن تزيد من تعقيد مهمة تقدير السرعة.
يتعلق تحدٍ آخر بـالقدرة الحاسوبية. ولتقدير السرعة في الوقت الفعلي، علينا معالجة قدر كبير من البيانات المرئية الواردة من كاميرات مرور عالية الجودة. وقد يتطلب حلك أجهزة باهظة الثمن للتعامل مع كل ذلك وضمان عمل كل شيء بسرعة ومن دون تأخير.
ثم هناك مسألة الخصوصية. فقد تتضمن البيانات التي تجمعها هذه الأنظمة تفاصيل مركبة أحد الأفراد، مثل الشركة المصنّعة والطراز ومعلومات لوحة التسجيل، وتُجمع هذه البيانات من دون موافقته. بل إن بعض كاميرات HD الحديثة قد تلتقط صورًا للركاب داخل السيارة. ويمكن أن يثير جمع هذه البيانات مسائل أخلاقية وقانونية خطيرة، ما يستلزم التعامل معها بأقصى درجات الحرص.
نحو المستقبل بسرعة متزايدة#
يوفر استخدام نموذج Ultralytics YOLOv8 لتقدير السرعة حلًا مرنًا وفعّالًا للعديد من الاستخدامات. ورغم وجود تحديات، مثل تحقيق الدقة في الظروف الصعبة ومعالجة مسائل الخصوصية، فإن مزاياه متعددة. فتقدير السرعة المدعوم بالرؤية الحاسوبية أكثر فعالية من حيث التكلفة وقابلية للتكيف ودقةً مقارنةً بالأساليب القديمة. وهو مفيد في قطاعات مختلفة، مثل النقل والرياضة والمراقبة والسيارات ذاتية القيادة. ومع كل هذه الفوائد والتطبيقات، فمن المقرر أن يصبح جزءًا أساسيًا من الأنظمة الذكية المستقبلية.
هل تهتم بالذكاء الاصطناعي؟ تواصل مع مجتمعنا! واستكشف مستودعنا على GitHub لمعرفة المزيد عن كيفية استخدامنا الذكاء الاصطناعي لإنشاء حلول مبتكرة في قطاعات مختلفة، مثل الرعاية الصحية والزراعة. تعاون وابتكر وتعلّم معنا! 🚀









