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

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

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

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

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