السبت، 15 أبريل 2023

اكتشف انسداد التصريف باستخدام Tiny ML + LoRa

 استخدام مستشعر ذكي خارجي - A1101 لاكتشاف تراكم الأوراق والزهور وغيرها من الحطام لتصريف المياه وتنبيه المستخدم


الأشياء المستخدمة في هذا المشروع

مكونات الأجهزة

 Studio SenseCAP A1101 - مستشعر LoRaWAN Vision AI

ستوديو إيدج إمبلس

قصة

مكتبي به شرفة جميلة.

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

للعثور على أفضل حل مناسب ، قمت بإدراج العقبات الرئيسية التي أواجهها.

1. ليس لدي أي مهارة في توصيل الأسلاك ، ولا توجد طريقة يمكنني من خلالها توصيل المستشعر بالخارج في الشرفة ، فالمستشعر اللاسلكي هو خياري الوحيد.

2. اتصال واي فاي سيء في الشرفة. أحتاج إلى اتصال قوي وموثوق به حتى في البيئات المعقدة وبعيدة المدى.

3. لاستخدام في الهواء الطلق ، وانخفاض الصيانة ، وانخفاض استهلاك الطاقة ، لا أريد شحن البطارية كل يوم.

4. أنا سيء حقًا في البرمجة ، فأنا أريد فقط حل بدون رمز.

5. أنا مجرد مبتدئ في TinyML ، لا أعرف الكثير عن نموذج التدريب وبنية الشبكة العصبية.

بناءً على ما هو مذكور أعلاه ، أعتقد أنني بحاجة إلى مستشعر صور ذكي خارجي يمكنه إجراء استنتاج محلي ثم نقل النتائج باستخدام LoRa ، واخترت Edge Impulse لمساعدتي في تدريب النموذج.

مقدمة سريعة عن Seeed SenseCAP A1101 و Edge Impulse (EI) في حالة الحاجة.

A1101 هو مستشعر صور ذكي ، يدعم مجموعة متنوعة من نماذج الذكاء الاصطناعي مثل التعرف على الصور وعد الأشخاص واكتشاف الهدف وما إلى ذلك.

مزود بعلبة IP66 وتصميم من الدرجة الصناعية ، يمكن استخدامه في ظروف صعبة مثل الأماكن ذات درجات الحرارة العالية أو التي يصعب الوصول إليها. فهو يجمع بين TinyML و LoRaWAN® لتمكين الاستدلال المحلي والإرسال لمسافات طويلة وهما المتطلبان الرئيسيان من الاستخدام الخارجي.

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

Edge Impulse هي منصة التطوير الرائدة للتعلم الآلي على الأجهزة المتطورة ، وهي تدعم بشكل كامل A1101. بالنسبة لي ، إنها منصة لا تحتوي على رمز واحد ، ويمكنني أخذ عينات من البيانات الأولية ، وبناء النماذج ، ونشر نماذج التعلم الآلي المدربة على A1101 مباشرة من استوديو EI دون الحاجة إلى أي برمجة.

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

هيا بنا نبدأ!!

الخطوة 1 قم بتثبيت EI CLI

يرجى الرجوع إلى هذه الوثائق من EI لتثبيت Python 3 و Node.js و EI CLI.

بعض النصائح التي أود مشاركتها:

1. واجهت المشكلة التالية عندما أقوم بتثبيت CLI - فهذا يعني أنه لم يتم اكتشاف إصدار Xcode أو CLT. لذلك ، أعدت تثبيته باستخدام xcode-select - install.



2. قد تواجه خطأ في الإذن مثل "خطأ: الوصول: تم رفض الإذن" ، يمكنك حل هذا عن طريق إضافة sudo في بداية الأمر. على سبيل المثال ، لتثبيت Edge Impulse CLI بامتيازات عالية ، الإدخال


sudo npm install -g edge-impulse-cli –-force

3. تحقق سريعًا لمعرفة ما إذا كنت قد قمت بتثبيت CLI بنجاح. إذا قمت بكتابة ed + tab ، فسيتم سرد جميع الأوامر على النحو التالي.



الخطوة 2 قم بتوصيل A1101 بـ EI studio

1. قم بتوصيل A1101 بجهاز الكمبيوتر المحمول الخاص بك باستخدام كبل من النوع C.




2. قم بتشغيل برنامج edge-impulse-daemon في الجهاز الطرفي (أنا أستخدم MacOS Monterey V12.5.1) ، ثم ستجد A1101 مدرجًا ضمن جهازك مع الضوء الأخضر ، مما يعني أنه متصل بنجاح بواجهة برمجة تطبيقات الإدارة عن بُعد الخاصة بـ EI.







الخطوة 3: الاستعداد لاكتساب البيانات

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





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



الخطوة 4: بدء أخذ العينات

جمعت بعض البتلات والأوراق لمحاكاة مستوى مختلف من الانسداد.



أقوم بتصنيف جميع الصور إلى 3 أسماء ، نظيفة ، محظورة قليلاً ، محظورة.



اسم الإدخال ، اضبط الكاميرا على دقة 160 × 160 للحصول على صورة أوضح لوضع العلامات. ثم انقر فوق بدء أخذ العينات.



جمعت 196 صورة ، 52 صورة نظيفة ، 67 ممنوعة قليلاً ، 77 ممنوعة. نظرًا لأنه يمكن التعرف على الميزة النظيفة بسهولة ، فقد جمعت عينات أقل منها مقارنة بالميزتين الأخريين.

الخطوة 5: وضع العلامات

انقر فوق Labeling queue.

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







هناك العديد من النصائح الأساسية التي يجب وضعها في الاعتبار لضمان جودة النموذج.


1. أولاً ، تأكد من أن الصندوق يتم توسيطه بإحكام حول الكائن المطلوب مع الحد الأدنى من الخلفية. هذا يمنع AI من تعلم معلومات الخلفية غير الضرورية ويضمن دقة نموذج أفضل.


2. تأكد من أن جودة الصورة مطابقة للمعايير ويمكن التعرف عليها بسهولة أولاً. إذا لم تتمكن من تحديد الكائن بوضوح ، فلا تتوقع من الذكاء الاصطناعي القيام بذلك أيضًا.


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


الخطوة 6: انقل بعض بيانات التدريب إلى مجموعة الاختبار

تُستخدم مجموعة الاختبار لاختبار دقة نموذجك بعد التدريب. توصي EI بمعدل تقسيم تقريبي 80/20 تدريب / اختبار لبياناتك لكل فصل (أو ملصق) في مجموعة البيانات الخاصة بك. أنا كسول وأريد أن أحاول بأقل.


لذلك ، قمت بنقل 19 إلى اختبار البيانات ، و 4 نظيف ، و 7 محظور قليلاً و 8 محظور.



الخطوة 7: خلق الدافع

في البداية ، قمت بضبط دقة الكاميرا على 160 × 160 ، لكنني الآن بحاجة إلى إعادة ضبطها على 96 × 96. سيؤدي هذا إلى تغيير حجم العينات إلى 96 × 96 ، مما يسمح للنموذج بالتدريب على هذا القرار. سينتج عن ذلك نموذج أصغر وهدفي هو تحقيق سرعة استدلال سريعة على A1101.

تحقق من ميزات الإخراج في لقطة الشاشة أدناه ، فهذا يعني أنه تم تصنيف الاستنزاف المحظور على أنه كائن 0 ، واستنزاف نظيف ككائن 1 ، وتم حظره قليلاً ككائن 2. سيكون الإخراج من AI في شكل احتمالات لكل كائن ، معبرًا عنه كنسب مئوية. على سبيل المثال ، قد يشير الإخراج إلى أن هناك فرصة بنسبة 85٪ أن الصورة عبارة عن كائن 0 (استنزاف مسدود) ، واحتمال بنسبة 10٪ أن تكون كائنًا 1 (استنزاف نظيف) ، واحتمال 5٪ أن تكون كائن 2 ( قليلا محظورة).

أدخل اسمًا ثم انقر فوق Save Impulse



الخطوة 8 إنشاء ميزات الصورة

اضبط عمق اللون على Grayscale.


الخطوة 9 تحقق من جودة عينات الصور

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



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


إذا لاحظت صعوبة فصل البيانات في المستكشف ، فقد تصارع الشبكة العصبية أيضًا.

إذا كنت بحاجة إلى شرح كامل لهذه الأداة ، يمكنك زيارة EI doc.

الخطوة 10 ابدأ التدريب

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

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

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

يحدد حجممموعة التحقق من الصحة عدد الصور التي تم وضع علامة عليها للتحقق من الصحة. الإعداد الافتراضي هو 20٪ ، ولكن في حالتي ، مع وجود أكثر من 100 صورة فقط ، وجدت أن نسبة 10٪ كافية.

زيادة البيانات هي تقنية يمكنها تحسين الدقة ، لكنني لست على دراية بها. ومع ذلك ، قررت أن آخذه.

اخترت استخدام FOMO لتدريب مجموعات البيانات الخاصة بي لأن حجم النموذج صغير.

نتيجة التدريب لأول مرة - ليست جيدة بما يكفي بنسبة 75٪ فقط


بعد عدة جولات من التحسين - يبدو جيدًا الآن بنسبة 97.3٪.


الخطوة 11 اختبار النموذج

انقر فوق نموذج الاختبار.


تتكون بيانات الاختبار من صور لم يرها النموذج المدرب. تُستخدم هذه الصور لتقييم أداء النموذج والتأكد من أنه يمكن التعميم جيدًا على البيانات الجديدة غير المرئية. من خلال اختبار النموذج على هذه البيانات ، يمكننا تقييم دقته وإجراء أي تعديلات ضرورية قبل نشره.



الخطوة 12 النشر

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




الخطوة 13: اسحب البرنامج الثابت الذي تم تنزيله إلى SENSECAP

تأكد من توصيل A1101 بجهاز الكمبيوتر المحمول الخاص بك. انقر نقرًا مزدوجًا فوق زر التمهيد للدخول في وضع التمهيد. ثم سترى محرك تخزين جديد يسمى SENSECAP. اسحب البرنامج الثابت إلى SENSECAP




الخطوة 14 افصل الكبل من النوع C. بعد ذلك ، نحتاج إلى تكوين A1101 للاتصال بالسحابة.

يتيح لي هذا التحقق من نتيجة الاستنتاج عبر الهاتف.


1. قم بتنزيل تطبيق SenseCAP Mate



2. اختر خادمًا عالميًا وقم بتسجيل الدخول.


3. اتبع الخطوات أدناه لتهيئة A1101.



4. الإعدادات

النظام الأساسي: SenseCAP لـ TTN.

الخوارزمية: كشف الكائن

خطة التردد: US915

الفاصل الزمني للوصلة الصاعدة: أختار 60 دقيقة ، مما يعني أنني سأتلقى نتيجة مدفوعة كل ساعة.

انقر فوق إرسال


الخطوة 15 تحقق من أداء النموذج

هنا يأتي الجزء الأكثر إثارة !!!!! أنشر صورًا مختلفة بمستوى مختلف من الانسداد على شاشتي وأعرضها على A1101.


تم تصنيف الصرف المحظور على أنه كائن 0 ، وتصريف نظيف ككائن 1 ، وتم حظره قليلاً ككائن 2. عندما عرضت A1101 صورة تصريف نظيفة ، تنبأ بدقة أنه كان 97٪ كائن 1 (نظيف).





الخطوة 16 امسح رمز QR على الجهاز لإضافة A1101 في حسابي

ثم يمكنني التحقق من مستوى انسداد التصريف على SenseCAP Mate.



الخطوة 17: ضع A1101 على مراقبة الصرف


ملخص سريع - استغرق الأمر مني حوالي 8 ساعات لإكمال هذا العرض التوضيحي. لقد أمضيت 4 ساعات في أخذ العينات ووضع العلامات ، وواجهت بعض التحديات مع جودة الصورة الرديئة التي تتطلب إعادة التقاط. في البداية ، اعتقدت أن هذا سيكون سيناريو سهلًا للذكاء الاصطناعي والتقط 60 صورة فقط. ومع ذلك ، كان أداء النموذج ضعيفًا ، واضطررت إلى زيادة عدد الصور إلى 196 صورة لتحقيق دقة أفضل. كمبتدئ ليس لديه خبرة في تحسين النموذج ، كان الأمر يستغرق وقتًا طويلاً لتجربة إعدادات التدريب ، واستغرق الأمر 4 ساعات أخرى للعثور على أفضل تكوين. الآن لدي المزيد من الخبرة في هذه العملية ، يجب أن تكون أسرع في المرة القادمة.

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

لا تتردد في استنساخ المشروع هنا 

شرح saeeed

شرح اضافي 






ليست هناك تعليقات:

إرسال تعليق