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

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

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

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






