Smart Parking System – نظام ذكي لاكتشاف السيارات وإدارة مواقف السيارات وتحليل البيانات
يهدف مشروع Smart Parking System إلى تطوير حل ذكي لمراقبة مواقف السيارات باستخدام تقنيات الذكاء الاصطناعي والرؤية الحاسوبية (Artificial Intelligence & Computer Vision)، مع ربط نتائج اكتشاف السيارات بإدارة جلسات الركن وحساب التكلفة وتجميع البيانات وتحليلها. يعتمد النظام على Python ونموذج YOLO لمعالجة الفيديو واكتشاف الأجسام المرتبطة بحالة المواقف، ثم تمرير نتائج الكشف إلى مكونات برمجية متخصصة لمتابعة حالة أماكن الركن وتسجيل البيانات الناتجة.
الفكرة الأساسية للمشروع هي تحويل الفيديو من مجرد مشهد مرئي إلى بيانات منظمة يمكن الاستفادة منها في متابعة إشغال المواقف وتحليل الإيرادات ومدة الوقوف. وبدلًا من الاكتفاء بعرض نتائج اكتشاف السيارات، يجمع النظام بين معالجة الفيديو، ومنطق إدارة المواقف، والحسابات المرتبطة بجلسات الركن، وتسجيل الإحصائيات في ملفات قابلة للتحليل باستخدام Power BI.
آلية عمل النظام ومكوناته الرئيسية
1. اكتشاف السيارات باستخدام YOLO
يعتمد المشروع على نموذج YOLO المدرب والمحفوظ في ملف أوزان بصيغة PT لاكتشاف الأجسام داخل إطارات الفيديو. تُستخدم نتائج الكشف لتحديد الأجسام المرتبطة بالمواقف ومتابعة التغيرات التي تحدث أثناء تشغيل الفيديو. وتوفر هذه المرحلة الأساس الذي تعتمد عليه بقية أجزاء النظام في تحديث حالة المواقف ومعالجة البيانات.
2. معالجة الفيديو باستخدام OpenCV
تُستخدم مكتبة OpenCV لقراءة مصدر الفيديو واستخراج الإطارات بالتتابع، ثم تمريرها إلى نموذج الكشف ومعالجة النتائج. كما يتضمن سير العمل عرض الإطارات مع المعلومات المرئية المرتبطة بعملية الكشف، بحيث يمكن متابعة سلوك النظام أثناء التشغيل وملاحظة التغيرات التي تحدث في المشهد.
3. متابعة حالة أماكن الركن
يضم النظام مكونات مخصصة لإدارة أماكن الركن ومتابعة حالتها عبر الإطارات المتتالية. ويعتمد منطق التأكيد على إعدادات تحدد عدد الإطارات المطلوبة لتأكيد انتقال المكان إلى حالة مشغول أو فارغ. يساعد هذا الأسلوب على تقليل التغيرات غير المستقرة في حالة الموقف الناتجة عن فقدان اكتشاف جسم في إطار واحد أو حدوث تذبذب مؤقت في نتائج الكشف.
4. إدارة جلسات الركن وحساب التكلفة
يتضمن المشروع مكون ParkingManager المسؤول عن منطق إدارة جلسات الركن ومتابعة الحالة والمدة والتكلفة وفق إعدادات التسعير المحددة. وتتيح هذه البنية ربط نتائج الكشف بالعمليات الحسابية الخاصة بالمواقف، بدلًا من التعامل مع اكتشاف السيارات باعتباره وظيفة منفصلة عن إدارة الموقف.
تتضمن إعدادات النظام متغيرات للتحكم في نموذج الكشف ومصدر الفيديو وحد الثقة في النتائج وتكلفة الفترة الزمنية ومدة الفترة المستخدمة في الحساب، إلى جانب إعدادات تأكيد حالة الموقف. ويساعد فصل هذه الإعدادات عن منطق التشغيل في تسهيل تعديل سلوك النظام دون الحاجة إلى إعادة كتابة جميع مكوناته.
5. تجميع البيانات وتصديرها إلى CSV
يحتوي المشروع على مكون ParkingDataCollector لجمع الإحصائيات أثناء معالجة الفيديو وتجهيزها للتصدير إلى ملفات CSV. وتُستخدم البيانات المسجلة كوسيلة للاحتفاظ بنتائج التشغيل وتحويلها إلى بيانات منظمة يمكن مراجعتها وتحليلها لاحقًا.
تُعد هذه المرحلة مهمة لأنها تربط مخرجات الرؤية الحاسوبية بالتحليل اللاحق للبيانات، وتسمح بالاستفادة من المعلومات المجمعة بدلًا من اقتصار النظام على عرض نتائج الكشف أثناء التشغيل.
6. تحليل البيانات باستخدام Power BI
يمكن استخدام ملفات البيانات المصدرة في Power BI لإنشاء تقارير مرئية وتحليل المؤشرات المرتبطة بالمواقف. ويساعد هذا التكامل على تقديم البيانات بصورة أوضح، ودراسة التغيرات في الإشغال والإيرادات بمرور الوقت وفق الحقول المتاحة في البيانات المسجلة.
يجمع هذا الجانب بين Computer Vision وData Analysis وData Visualization، ويُظهر كيف يمكن تحويل نتائج نموذج ذكاء اصطناعي إلى بيانات قابلة للاستخدام في التقارير والتحليل.
التصميم البرمجي وتنظيم المشروع
تم تنظيم النظام في مكونات منفصلة، بحيث يكون لكل جزء مسؤولية محددة ضمن دورة التشغيل. يتولى الملف الرئيسي main.py تنسيق مراحل التنفيذ، بينما تتولى مكونات Pricing مسؤوليات الإعدادات وإدارة جلسات الركن وجمع البيانات ورسم المعلومات المرئية.
تشمل المكونات الأساسية:
main.py لتنسيق تشغيل النظام ومعالجة الإطارات.
Pricing/config.py لإعداد مسارات النموذج والفيديو وحدود الكشف وإعدادات التسعير وتأكيد حالة الموقف.
Pricing/parking_manager.py لإدارة منطق حالة المواقف وجلسات الركن والمدة والتكلفة.
Pricing/parking_spot.py لتمثيل بيانات أماكن الركن.
Pricing/data.py لجمع بيانات التشغيل وتجهيزها للتصدير إلى CSV.
Pricing/overlay.py لرسم المعلومات والعناصر المرئية على إطارات الفيديو.
هذا الفصل بين المكونات يطبق مبدأ Separation of Concerns، ويساعد على تنظيم الكود وتسهيل صيانته وتطوير كل جزء بصورة مستقلة نسبيًا.
التقنيات والأدوات المستخدمة
Python لتطوير منطق النظام وربط مكوناته.
YOLO لاكتشاف الأجسام داخل الفيديو.
OpenCV لمعالجة الفيديو وإطارات الصور وعرض النتائج.
Computer Vision لتحليل المشاهد المرئية واستخراج المعلومات منها.
Object Detection لاكتشاف الأجسام المستهدفة وتحديد مواقعها داخل الإطارات.
CSV لتسجيل البيانات والإحصائيات في صيغة منظمة.
Power BI لتحليل البيانات وإنشاء التقارير والتصورات المرئية.
أهمية المشروع والقيمة العملية
تكمن القيمة التقنية للمشروع في بناء مسار عمل متكامل يبدأ من الفيديو، ويمر باكتشاف الأجسام ومتابعة حالة المواقف، ثم إدارة بيانات الركن وتجميع الإحصائيات، وصولًا إلى تجهيز البيانات للتحليل.
يوضح المشروع التطبيق العملي لمفاهيم الذكاء الاصطناعي والرؤية الحاسوبية، إلى جانب البرمجة المنظمة ومعالجة البيانات وربط مخرجات النماذج بأدوات ذكاء الأعمال. كما يوفر أساسًا يمكن تطويره مستقبلًا لإضافة تقارير أكثر تفصيلًا، أو واجهات متابعة، أو مصادر فيديو إضافية، أو إمكانات أخرى لإدارة المواقف وفق احتياجات الاستخدام.
يمثل Smart Parking System تطبيقًا عمليًا يجمع بين اكتشاف الأجسام باستخدام الذكاء الاصطناعي، ومعالجة الفيديو، وإدارة البيانات، والتحليل المرئي، مع التركيز على تحويل نتائج الكشف إلى معلومات منظمة يمكن الاستفادة منها في متابعة وتشغيل مواقف السيارات.