جدول المحتويات:
- الخطوة 1: المواد
- الخطوة 2: قم بتثبيت Linaro في Dragonboard 410c
- الخطوة 3: الخطوة 2: تثبيت المكتبات وتنزيل كود المصدر من GitHub
- الخطوة 4: إعداد AWS IoT Core و DynamoDB
- الخطوة 5: إعداد واجهات برمجة تطبيقات Twilio و Dweet
- الخطوة السادسة: التحديات
- الخطوة السابعة: النتائج والعمل المستقبلي
- الخطوة 8: المراجع
فيديو: Cambus - نظام جمع البيانات في الحافلات الحضرية: 8 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:39
من بين المشاكل والصعوبات المعروفة في وسائل النقل العام ، يفتقر السكان إلى المعلومات في الوقت الحقيقي وبأقل قدر من الحزم. يؤدي الاكتظاظ في حافلات النقل العام إلى إبعاد المستخدمين ، الذين يفضلون استخدام سياراتهم الخاصة ، على الرغم من أنهم لا يزالون في حركة المرور لساعات. إذا كانت المعلومات في الوقت الفعلي ، مثل عدد الحافلات ، متاحة بسهولة للمستخدم ، فيمكنه اختيار ما إذا كان ينتظر الحافلة التالية أو التنقل بالحافلة أو استخدام سيارة خاصة به. قوة الاختيار تجعل النقل العام خيارًا أكثر جاذبية للمستخدم.
يمكن عد الأشخاص في الداخل أو تقديرهم بعدة طرق ، من بينها الأكثر استخدامًا:
- الصور الحرارية
- رؤية الكمبيوتر
- عداد الوجه
من بين الصعوبات العديدة لتقدير الأشخاص في بيئة باستخدام رؤية الكمبيوتر ، أهمها:
- انسداد الناس
- الإضاءة المقلوبة
- الانسداد الثابت ، أي الأشخاص خلف الأشياء ؛
- زاوية الكاميرا بالنسبة للبيئة ؛
يتمثل التحدي الذي يواجه هذا المشروع في معرفة الزاوية الصحيحة للكاميرا التي ستساعد بشكل أفضل في طرح خلفية الصورة ، فضلاً عن الإضاءة المتغيرة أثناء النهار داخل الحافلة.
الهدف الرئيسي من الاقتراح هو إنشاء نموذج قوي وقابل للتكوين لتقدير الاكتظاظ وإتاحة النتائج للسكان من خلال الهواتف الذكية.
الخطوة 1: المواد
المواد اللازمة للمشروع هي التالية:
1 × لوح التنين 410 ج ؛
1 × كاميرا USB ؛
1 × الهاتف الذكي Android ؛
الخطوة 2: قم بتثبيت Linaro في Dragonboard 410c
اتبع الإرشادات الموجودة على الرابط أدناه لتثبيت Linaro 17.09 على DragonBoard 410c. نوصي بتثبيت Linaro 17.09 لدعم kernel لنظام GPS.
www.96boards.org/documentation/consumer/dr…
الخطوة 3: الخطوة 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 الأساسية كوسيط MQTT مع TLS و X509 و NoSQL و DynamoDB لتسجيل البيانات ، وسيتعين عليك إنشاء حساب على https://aws.amazon.com/free.). بعد ذلك ، سيكون عليك اتباع الخطوات أدناه لإنشاء شيء والتكامل مع Dynamo:
docs.aws.amazon.com/iot/latest/developergu…
الخطوة 5: إعداد واجهات برمجة تطبيقات Twilio و Dweet
تم أيضًا إنشاء خدمة الرسائل القصيرة 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]
موصى به:
سلسلة IoT ESP8266: 2- مراقبة البيانات من خلال ThingSpeak.com: 5 خطوات
سلسلة IoT ESP8266: 2- مراقبة البيانات من خلال ThingSpeak.com: هذا هو الجزء الثاني من سلسلة IoT ESP8266. للاطلاع على الجزء الأول ، راجع سلسلة IoT ESP8266 القابلة للتوجيه: 1 قم بالاتصال بموجه WIFI ، ويهدف هذا الجزء إلى توضيح كيفية إرسال بيانات المستشعر إلى إحدى الخدمات السحابية المجانية لإنترنت الأشياء https: //thingspeak.com
نماذج روبوت جمع القمامة: 10 خطوات
نماذج روبوت جمع القمامة: كطلاب جامعيين يعيشون في مساكن سكنية ، وجدنا أن مهاجعنا غالبًا ما تكون موطنًا للطلاب الفوضويين الذين يعيشون بمفردهم لأول مرة. هؤلاء الطلاب عمومًا كسالى جدًا أو غير مسؤولين عن التقاط أو تنظيف
آلة مكافأة جمع الألعاب: 6 خطوات
آلة مكافأة مجموعة الألعاب: مقدمة للآلة: هذه آلة مكافأة لجمع الألعاب. إذا وضعت اللعبة في صندوق الألعاب. ستشعر آلة المكافأة أن شيئًا ما قد تم وضعه في الصندوق ثم تقدم الإضاءة والصوت للمكافأة. سيكون الأطفال مصدر إلهام
دائرة جمع مخطط كهربية القلب: 5 خطوات
دائرة تجميع مخطط كهربية القلب: إشعار: هذا ليس جهازًا طبيًا. هذا للأغراض التعليمية فقط باستخدام إشارات محاكاة. في حالة استخدام هذه الدائرة لإجراء قياسات حقيقية لمخطط كهربية القلب ، يرجى التأكد من أن الدائرة والتوصيلات من الدائرة إلى الجهاز تستخدم العزل المناسب
مركز جمع بيانات المستشعر المزود بإنترنت الأشياء مع ESP8266 و PubNub: 9 خطوات (بالصور)
مركز جمع بيانات المستشعرات المُمكَّن من IoT مع ESP8266 & PubNub: معظم البرامج التعليمية على ESP8266 إما على مستوى المبتدئين (يومض مؤشر ضوئي عن بُعد) أو معقدة للغاية بالنسبة لشخص يبحث عن شيء ما لتحسينه وترقيته بناءً على مهاراته في الوميض. يهدف التوجيه إلى سد هذه الفجوة لإنشاء