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

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

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

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

تحل أنظمة تقدير السرعة القائمة على الرؤية محل الطرق التقليدية القائمة على أجهزة الاستشعار نظرًا لدقتها المحسنة وفعاليتها من حيث التكلفة ومرونتها. على عكس الأنظمة التي تعتمد على أجهزة استشعار باهظة الثمن مثل LiDAR، تستخدم الرؤية الحاسوبية كاميرات قياسية لمراقبة وتحليل السرعة في الوقت الفعلي. يمكن دمج حلول الرؤية الحاسوبية لتقدير السرعة بسلاسة مع البنية التحتية المرورية الحالية. أيضًا، يمكن بناء هذه الأنظمة لأداء عدد من المهام المعقدة مثل تحديد نوع السيارة وتحليل أنماط المرور لتحسين تدفق حركة المرور والسلامة بشكل عام.
الآن بعد أن أصبح لدينا فهم واضح لتقدير السرعة وتطبيقاته، دعنا نلقي نظرة فاحصة على كيفية دمج تقدير السرعة في مشاريع الرؤية الحاسوبية الخاصة بك من خلال التعليمات البرمجية. سنقوم باكتشاف المركبات المتحركة وتقدير سرعتها باستخدام نموذج YOLOv8.
يستخدم هذا المثال مقطع فيديو لسيارات على طريق تم تنزيله من الإنترنت. يمكنك استخدام نفس الفيديو أو أي فيديو ذي صلة. يحدد نموذج YOLOv8 مركز كل مركبة ويحسب سرعتها بناءً على مدى سرعة عبور هذا المركز لخط أفقي في إطار الفيديو.
قبل أن نتعمق في التفاصيل، من المهم ملاحظة أنه في هذه الحالة، يكون حساب المسافة تقريبيًا ويعتمد على مسافة إقليدس (Euclidean Distance). لا تتم معايرة الكاميرا، وبالتالي قد لا يكون تقدير السرعة دقيقًا تمامًا. أيضًا، يمكن أن تختلف السرعة المقدرة اعتمادًا على سرعة وحدة معالجة الرسومات (GPU) الخاصة بك.
الخطوة 1: سنبدأ بتثبيت حزمة Ultralytics. افتح موجه الأوامر أو الجهاز الطرفي الخاص بك وقم بتشغيل الأمر الموضح أدناه.
pip install ultralytics ألقِ نظرة على دليل تثبيت Ultralytics للحصول على إرشادات خطوة بخطوة وأفضل الممارسات حول عملية التثبيت. إذا واجهت أي مشكلات أثناء تثبيت الحزم المطلوبة لـ YOLOv8، فإن دليل المشكلات الشائعة الخاص بنا يحتوي على حلول ونصائح مفيدة.
الخطوة 2: بعد ذلك، سنقوم باستيراد المكتبات المطلوبة. ستساعدنا مكتبة OpenCV في معالجة الفيديو.
import cv2
from ultralytics import YOLO, solutionsالخطوة 3: بعد ذلك، يمكننا تحميل نموذج 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 الخاص بنا لمعرفة المزيد حول كيفية استخدامنا للذكاء الاصطناعي لإنشاء حلول مبتكرة في مختلف الصناعات مثل الرعاية الصحية و الزراعة. تعاون وابتكر وتعلم معنا! 🚀