جدول المحتويات:

Cambus - نظام جمع البيانات في الحافلات الحضرية: 8 خطوات
Cambus - نظام جمع البيانات في الحافلات الحضرية: 8 خطوات

فيديو: Cambus - نظام جمع البيانات في الحافلات الحضرية: 8 خطوات

فيديو: Cambus - نظام جمع البيانات في الحافلات الحضرية: 8 خطوات
فيديو: نارين بيوتي قبل وبعد عملية التجميل 🤯 2024, شهر نوفمبر
Anonim
Cambus - نظام جمع البيانات على الحافلات الحضرية
Cambus - نظام جمع البيانات على الحافلات الحضرية

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

يمكن عد الأشخاص في الداخل أو تقديرهم بعدة طرق ، من بينها الأكثر استخدامًا:

  • الصور الحرارية
  • رؤية الكمبيوتر
  • عداد الوجه

من بين الصعوبات العديدة لتقدير الأشخاص في بيئة باستخدام رؤية الكمبيوتر ، أهمها:

  • انسداد الناس
  • الإضاءة المقلوبة
  • الانسداد الثابت ، أي الأشخاص خلف الأشياء ؛
  • زاوية الكاميرا بالنسبة للبيئة ؛

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

الهدف الرئيسي من الاقتراح هو إنشاء نموذج قوي وقابل للتكوين لتقدير الاكتظاظ وإتاحة النتائج للسكان من خلال الهواتف الذكية.

الخطوة 1: المواد

المواد اللازمة للمشروع هي التالية:

1 × لوح التنين 410 ج ؛

1 × كاميرا USB ؛

1 × الهاتف الذكي Android ؛

الخطوة 2: قم بتثبيت Linaro في Dragonboard 410c

قم بتثبيت Linaro في Dragonboard 410c
قم بتثبيت Linaro في Dragonboard 410c
قم بتثبيت Linaro في Dragonboard 410c
قم بتثبيت Linaro في Dragonboard 410c

اتبع الإرشادات الموجودة على الرابط أدناه لتثبيت Linaro 17.09 على DragonBoard 410c. نوصي بتثبيت Linaro 17.09 لدعم kernel لنظام GPS.

www.96boards.org/documentation/consumer/dr…

الخطوة 3: الخطوة 2: تثبيت المكتبات وتنزيل كود المصدر من GitHub

الخطوة 2: تثبيت المكتبات وتنزيل كود المصدر من GitHub
الخطوة 2: تثبيت المكتبات وتنزيل كود المصدر من GitHub

يحتوي Cambus على تصميم معماري ورمز معياري. من الممكن ترميز خوارزمية التعلم الآلي الخاصة بك ، والتغيير إلى خدمة سحابية أخرى وإنشاء تطبيقات المستخدم الخاصة بك.

لتشغيل مشروع cambus ، تحتاج أولاً إلى تنزيل الكود المصدري من github (https://github.com/bmonteiro00/cambus). قم بتثبيت python (كان Cambus هو الوضع للتشغيل على الإصدار 2.7 و> 3.x) والمكتبات التالية باستخدام 'pip' (sudo apt-get install python-pip). ستكون هناك حاجة لتثبيت مجموعة من المكتبات في نظام Linaro (أيضًا ، يُنصح بإنشاء بيئة افتراضية - Pip install virtualenv - من أجل عزل نظام Cambus عن SO). برجاء تثبيت المكتبات التالية:

  • نقطة تثبيت paho-mqtt
  • نقطة تثبيت numpy
  • نقطة تثبيت opencv-python
  • نقطة تثبيت opencv-Contrib-python
  • نقطة تثبيت twilio
  • نقطة تثبيت matplotlib

تم تقسيم البرنامج الرئيسي إلى فئات:

  • CamBus - الطبقة الرئيسية ؛
  • المستشعر - فئة للحصول على بيانات مثل موقع GPS ودرجة الحرارة و Co2.
  • عداد - فئة مع خوارزمية معالجة الصور.

تأكد من تثبيت جميع المكتبات وتنفيذ Python CamBus_v1.py.

الخطوة 4: إعداد AWS IoT Core و DynamoDB

إعداد AWS IoT Core و DynamoDB
إعداد AWS IoT Core و DynamoDB
إعداد AWS IoT Core و DynamoDB
إعداد AWS IoT Core و DynamoDB
إعداد AWS IoT Core و DynamoDB
إعداد AWS IoT Core و DynamoDB

استخدمنا AWS IoT الأساسية كوسيط MQTT مع TLS و X509 و NoSQL و DynamoDB لتسجيل البيانات ، وسيتعين عليك إنشاء حساب على https://aws.amazon.com/free.). بعد ذلك ، سيكون عليك اتباع الخطوات أدناه لإنشاء شيء والتكامل مع Dynamo:

docs.aws.amazon.com/iot/latest/developergu…

الخطوة 5: إعداد واجهات برمجة تطبيقات Twilio و Dweet

قم بإعداد Twilio و Dweet APIs
قم بإعداد Twilio و Dweet APIs
قم بإعداد Twilio و Dweet APIs
قم بإعداد Twilio و Dweet APIs

تم أيضًا إنشاء خدمة الرسائل القصيرة Twilio. راجع عنوان URL أدناه للحصول على إرشادات لإكمال هذه الخطوة:

www.twilio.com/docs/iam/api/account

تم التكامل بين تطبيق android والنظام عن طريق REST باستخدام منصة Dweet. لا يلزم الاشتراك.

dweet.io/

الخطوة السادسة: التحديات

خلال تطويرنا واجهنا العديد من التحديات ، بدءًا من تقنيات OpenCV إلى منصة AWS. قررنا البرمجة باستخدام Python لتوفير وقت التطوير في C / C ++. أثناء تطويرنا فقط طرق Opencv الأساسية مثل:

• cv2. GaussianBlur (..)

• cv2.threshold (..)

• cv2.morphologyEx (..)

• cv2.contourArea (..)

• cv2.findContours (..)

لم تكن هذه الأساليب الأساسية كافية للوصول إلى جودة جيدة في الكشف عن الأشخاص. تم استخدام السيناريوهات ذات الفيديو المهتز ML (التعلم الآلي). لذلك ، قررنا استخدام مكتبة التعلم الآلي OpenCV ولدينا مشكلة أخرى لأن العثور على إدخال بيانات جيد لخوارزمية ML كان مشكلة قضيناها عدة أيام. لقد استخدمنا خوارزمية OpenCV SVM لكننا لم ننجح. استخدمنا OpenCV Naive Bayses وعمل هذا بشكل جيد. لقد حاولنا استخدام شبكات Tensorflow و CNN العصبية ، لكننا لم نحقق ذلك في الوقت الحالي. تستخدم CNN قدرًا كبيرًا من قوة المعالجة ، وهو أمر لم نكن نملكه ، وقد ساعدنا استخدام OpenCV ML وطرق OpenCV الأساسية في الوصول إلى معدل جيد لاكتشاف الأشخاص. ومع ذلك ، بالنسبة لكل نوع من أنواع الفيديو ، يتعين علينا تكييف معلمات OpenCV من أجل الوصول إلى معدل جيد لاكتشاف الأشخاص وتجنب الإيجابيات الخاطئة. في منتصف هذين الشهرين ، طورنا فكرتنا الأولى للقيام بمركز لجمع البيانات لا فقط عدد الركاب وموقع GPS. قررنا عدم جمع البيانات باستخدام مستشعرات أخرى مثل درجة الحرارة وما إلى ذلك. أنشأنا ملف.ini لتحديد معلمات التطبيق وجعله قابلاً للتكوين. في ملف Cambus.ini ، يمكنك تكوين التطبيق بعدة طرق.

الخطوة السابعة: النتائج والعمل المستقبلي

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

ضع في اعتبارك أنه يجب إجراء بعض التغييرات على حالتك فيما يتعلق بحجم الفيديو وزاوية الكاميرا والسطوع وما إلى ذلك. يجب أن يكون كل نوع من أنواع الفيديو هو تكييف المعلمات الخاصة مثل opencv kernel suctraction background وما إلى ذلك.

يرجى أيضًا تغيير المتغيرات في cambus.ini ، للإشارة إلى وسيط MQTT وما إلى ذلك.

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

فيما يلي نعدد الخطوات التالية التي يمكنك القيام بها لتحسين المشروع:

  • أعد كتابة الكود باستخدام C / C ++ ؛
  • تحسين خوارزمية ML ؛
  • إعادة تحليل كود بيثون إلى عوامل ؛
  • الانتشار في الحافلة.

نود أن نشكر Embarcados و Qualcomm على كل الدعم المقدم.

المتعاونون:

برونو مونتيرو - [email protected]

كليبر دروبووك - [email protected]

فينيسيوس دي أوليفيرا - [email protected]

الخطوة 8: المراجع

[1] https://www.ppmec.unb.br/downloads/dissertacoes/48 …

[2]

[3]

[4]

[5]

موصى به: