الجمعة، 5 ديسمبر 2025

وصف الصورة على رايزبري باي

 وصف الصورة يشبه GenAI، ولكنه أصغر بمقدار 200 مرة

قم بتدريب صورة محددة للمجال على نموذج الكلمات الرئيسية الذي يكون أخف وزناً بمقدار 200 مرة (9 ميجا بايت) ويعمل بزمن انتقال منخفض على أجهزة مثل Raspberry Pi 4.




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

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

راسبيري باي 4 موديل B

وحدة كاميرا Raspberry Pi

تطبيقات البرمجيات والخدمات عبر الإنترنت

Edge Impulse Studio


قصة

خضعت تقنية معالجة الصور لبحوث مكثفة، وأصبح تطوير نماذج كشف الأجسام وتصنيف الصور أسهل حاليًا. على سبيل المثال، من خلال منصات الذكاء الاصطناعي مثل Edge Impulse، يُمكننا تدريب نموذج تصنيف صور ونشره في أقل من 5 دقائق! لم تعد الرؤية الحاسوبية تُمثل سؤال "كيف نبني هذا؟". الآن، يكمن التحدي الحقيقي في إيجاد طرق عملية ومفيدة لاستخدام نماذج الذكاء الاصطناعي لمعالجة الصور. بصفتي شغوفًا بالأنظمة المضمنة، أردتُ تجاوز تصنيف الصور وكشف الأجسام، من خلال إنشاء نموذج يُمكنه النظر إلى الصورة ووصفها باستخدام لغة طبيعية، مثل "لا يوجد مُشغّل بالقرب من الآلة"، وكل ذلك على الحافة باستخدام أجهزة مُقيدة.

في النهاية، تمكنتُ من بناء نموذج بسيط لتحويل الصورة إلى نص بحجم 9 ميجابايت، وهو صغير بما يكفي لتشغيله على أجهزة مثل Raspberry Pi (RPi). ومع ذلك، فإن الهدف النهائي من هذا المشروع هو تحويل الصورة إلى نص إلى وحدات تحكم دقيقة صغيرة، وفتح المجال لتطبيقات جديدة تُبرز فيها هذه الأجهزة الصغيرة. يمكن أن يُحسّن هذا مراقبة المساحات، والأتمتة، وأجهزة إنترنت الأشياء التي تراعي السياق، ومجموعة واسعة من تجارب الذكاء الاصطناعي الطرفي.

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



الهدف الرئيسي من تحويل الصورة إلى كلمات رئيسية هو إنشاء تسميات توضيحية دقيقة نحويًا وذات معنى، بالإضافة إلى ملاءمتها للسياق ووصفها. يتطلب هذا عملية معقدة لتحديد العناصر وعلاقاتها المتبادلة داخل الصورة، يليها إنشاء وصف متماسك. يُستخدم مُرمِّز أولًا لاستخراج السمات المرئية من الصورة. يمكن استخدام مُحوِّل بصري أو شبكة عصبية تلافيفية (CNN) كمُرمِّز. بعد ذلك، ومن خلال شبكة عصبية متكررة (RNN)، أو ذاكرة طويلة المدى قصيرة المدى (LSTM)، أو أي نموذج تعلُّم عميق آخر مُصمَّم للتعامل مع البيانات المتسلسلة، يُنتج مُفكِّك التشفير نصًا وصفيًا من السمات المُرمَّزة.

نظرة عامة على المشروع

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

مراقبة الإنتاجية الشخصية: اكتشاف ما إذا كان الشخص يعمل أو مشتتًا بسبب هاتفه

مراقبة ذكية للمساحات لتوفير الطاقة: اكتشاف ما إذا كانت الأضواء مضاءة ولكن لا يوجد شخص في الغرفة

الزراعة الذكية: مراقبة صحة النباتات من خلال أنشطة مثل الري

يستخدم المشروع نصين برمجيين بلغة بايثون، أحدهما لجمع صور التدريب باستخدام كاميرا راسبيري باي، والآخر لتشغيل نموذج تحويل الصورة إلى كلمات مفتاحية من خلال جمع صور الكاميرا وإنشاء نصوص دلالية عنها. يتم تدريب النموذج على جوجل كولاب، وبعد ذلك يُستخدم Edge Impulse لنشر مسار الاستدلال بالكامل (المعالجة المسبقة والتنبؤ بالكلمات المفتاحية) على راسبيري باي. سنستكشف الأجزاء التالية من المشروع:

جمع الصور باستخدام كاميرا Raspberry Pi

إعداد العلامات لكل صورة

تدريب نموذج تصنيف متعدد العلامات في Google Colab

نشر النموذج المُدرَّب على Edge Impulse

تشغيل وصف البيئة في الوقت الفعلي باستخدام كاميرا Raspberry Pi


بخلاف نماذج الذكاء الاصطناعي التوليدي (GenAI)، مثل ChatGPT Vision، التي تتطلب مجموعات ضخمة من وحدات معالجة الرسومات (GPU)، وخطوط أنابيب تدريب معقدة، وميزانيات حسابية ضخمة، يعتمد هذا المشروع تصميمًا أكثر اقتصادًا. تُعدُّ تسميات الصور القائمة على الاسترجاع تقنيةً تُولِّد علامات/تسميات توضيحية للصور عن طريق اختيار وتعديل العلامات/التسميات التوضيحية الموجودة مسبقًا من قائمة، بدلاً من إنشاء علامات/تسميات توضيحية جديدة. يستفيد هذا النهج من فكرة أن العديد من الصور تشترك في ميزات وسياقات متشابهة، مما يسمح لنا بإعادة استخدام العلامات للصور المتشابهة سياقيًا، خاصةً في حالات الاستخدام الخاصة بالتطبيقات. تتميز هذه التقنية بالبساطة، وبناءً على البنية المستخدمة، يمكن أن يكون النموذج الناتج خفيفًا وكافٍ للتشغيل على الأجهزة محدودة الموارد. ومع ذلك، فإن هذه الطريقة خاصة بمجال معين، وتعتمد بشكل كبير على العلامات المُعدّة مسبقًا، وقد لا تكون مناسبة لبيئات النشر الأخرى.


يتم إقران كل صورة يدويًا بعلامات وصفية، مما يُنشئ مجموعة بيانات خفيفة الوزن ولكنها معبرة، مما يُجنِّب تعقيد إنشاء جمل كاملة. تُحمَّل بعد ذلك مجموعة بيانات الصور وملف نصي للوسوم إلى Google Colab، حيث تُحوِّل أنابيب المعالجة المسبقة جميع الصور إلى موترات موحدة، وتُحوِّل الوسوم إلى متجهات متعددة الوسوم. باستخدام التعلم بالنقل على MobileNetV2، يُدرَّب نموذج على ربط السمات المرئية بمتجهات الكلمات المفتاحية، متعلمًا بفعالية آلية استرجاع عالية السرعة تُعيِّن صورة جديدة لأقرب مجموعة من الواصفات (الكلمات) المُكتسبة. يُحمَّل النموذج الناتج بعد ذلك إلى Edge Impulse، مما يُتيح تحليل الأداء على الجهاز (استخدام الفلاش، واستخدام ذاكرة الوصول العشوائي، ووقت الاستجابة)، وتحسين النموذج، والنشر السلس على أي جهاز Edge AI (بما في ذلك وحدات التحكم الدقيقة) لديه موارد كافية لتشغيله.

هذا يعني أن:

لا يُولِّد النموذج جملًا جديدة.

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

تُدمج هذه الوسوم المُتوقعة بعد ذلك في جملة بسيطة وواضحة.

جميع أكواد المصدر للمشروع متوفرة في مستودع GitHub هذا: Lightweight_image_description. مع سير كل شيء بشكل صحيح، ستحصل على نموذج مُدرّب متعدد العلامات، مُشتق من MobileNetV2، يُطابق الصور مع متجهات الكلمات المفتاحية.

كما نتقدم بجزيل الشكر لشركة Edge Impulse على دعمها المُستمر خلال هذا المشروع. إن القدرة على نشر نماذج ذكاء اصطناعي مُخصصة بسلاسة على مجموعة واسعة من الأجهزة، مثل Arduino وESP32 وRaspberry Pi، وغيرها، أمرٌ مُذهل. يُمكن أن يُتيح ربط الصور بالكلمات المفتاحية على هذه الأجهزة آفاقًا جديدة للتجارب وحلول حالات الاستخدام. بفضل أدواتها القوية وإعداداتها المُيسّرة للمطورين، تُعتبر Edge Impulse رائدة في تطوير الذكاء الاصطناعي على الحافة.

01. إعداد الأجهزة وتجهيز مجموعة البيانات

في هذا المشروع، يُستخدم Raspberry Pi 4 مع وحدة كاميرا V2.1 بدقة 8 ميجابكسل لالتقاط الصور لتدريب النموذج وإجراء الاستدلال. ومع ذلك، لا يزال بإمكانك استخدام أجهزة أخرى لنفس الغرض. يُرجى مُلاحظة أنك ستحتاج إلى تغيير طريقة جمع بيانات الإدخال في نصوص Python النصية، لأنها تستخدم مكتبة Picamera لالتقاط الصور.


يحتوي Edge Impulse على وثائق لإعداد RPi وتثبيت Edge Impulse لنظام Linux SDK، وهي مجموعة من الأدوات التي تتيح لك جمع البيانات من أجهزة الاستشعار والميكروفونات والكاميرات، بالإضافة إلى تشغيل Impulse بتسريع كامل للأجهزة على جهاز Raspberry Pi.

بعد إعداد Raspberry Pi، استخدم طرفية سطر الأوامر (CLI) مع اتصال SSH بجهاز Raspberry Pi لتنزيل مستودع المشروع عبر: git clone، أو SCP transfer من جهاز الكمبيوتر إلى جهاز Raspberry Pi، أيهما يناسبك. بعد ذلك، شغّل الأمر التالي لتثبيت التبعيات على جهاز Raspberry Pi:

pip install -r requirements.txt

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

python camera_server.py



من السجلات، انسخ عنوان IP لخادم الويب والصقه في حقل عنوان URL لمتصفح الويب (سواءً كان جوالاً أو حاسوباً شخصياً). ستشاهد بث فيديو مباشراً من كاميرا RPi وزر "التقاط" لحفظ الصور.



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


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

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

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

الزراعة الذكية: مراقبة صحة النباتات من خلال أنشطة مثل الري. الوسوم المستخدمة هي: نبات، ري. تم التقاط 60 صورة لهذه الحالة.

أوشكت خطوة إعداد مجموعة البيانات على الانتهاء. بعد جمع الصور وإنشاء ملف نص الوسوم، نحتاج إلى نسخها إلى مجلد Google Drive الذي يمكن الوصول إليه من خلال دفتر Colab لتدريب النموذج. تُحدد مسارات مجلد الصور وملف النص بواسطة متغيري images_folder وimage_tags_file في دفتر الملاحظات. استخدام مجلد Google Drive اختياري، حيث يمكنك تحميل مجلد مجموعة البيانات مباشرةً إلى دفتر الملاحظات، ولكن Colab يحذف الملفات المُحمّلة عند انتهاء صلاحية الجلسة. تجدر الإشارة أيضًا إلى أنه كبديل لـ Google Colab، يمكنك استخدام دفتر Jupyter أو تشغيل مسار التدريب محليًا كملف Python، مع تثبيت التبعيات على الجهاز المضيف.


2. تحميل مجموعة البيانات إلى دفتر الملاحظات

قبل تشغيل دفتر ملاحظات تدريب ونشر النموذج، نحتاج أولًا إلى إنشاء مشروع Edge Impulse والحصول على مفتاح API الخاص به. للقيام بذلك، أنشئ مشروعًا جديدًا في Edge Impulse Studio (أو استخدم مشروعًا موجودًا) وانتقل إلى قسم "المفاتيح" ضمن "لوحة التحكم". بعد ذلك، افتح دفتر الملاحظات وألصق مفتاحك في متغير ei.API_KEY.


في دفتر ملاحظات Google Colab، انقر على "اتصال" لبدء جلسة سحابية مستضافة، ثم انقر على "تشغيل الكل". سيُطلب منك منح حق الوصول إلى حسابك على Google Drive.

يبدأ دفتر الملاحظات بتحميل الصور وملفات الوسوم النصية باستخدام مسارات المجلدات المحددة. بعد ذلك، تُحمّل المكتبات اللازمة لتحميل البيانات، والمعالجة المسبقة، وتطوير النموذج، وتقييمه باستخدام مكتبات مثل NumPy وPandas وTensorFlow. بعد ذلك، تُعرّف المتغيرات العامة والوظائف المساعدة للمعالجة المسبقة وبناء النموذج. تُعرّف الوسوم: lights، no_person، person، phone، laptop، plant، watering، في متغير قائمة VOCAB.


تقوم دالة preprocess_image بتحميل صورة، وتغيير حجمها إلى حجم البكسل الثابت (128 × 128 كما هو مُعرّف بواسطة IMAGE_SIZE)، وتحويلها إلى مصفوفة NumPy، وقياس قيم البكسل 0 و1. بعد ذلك، يقرأ دفتر الملاحظات ملف tags.txt في إطار بيانات pandas. من المتوقع أن يحتوي هذا الملف على اسم ملف الصورة ووسوم مفصولة بمسافات لتلك الصورة. يصبح إطار البيانات هذا مصدر التعليقات التوضيحية الأساسي للتدريب. بعد ذلك، تُحوّل دالة encode_keywords نص الوسوم المفصولة بمسافات إلى متجه ثنائي متعدد السرعات، حيث يُقابل كل فهرس كلمة من المفردات. هذه هي خطوة الترميز متعدد العلامات، وبما أن الصورة يمكن أن تحتوي على علامات متعددة في وقت واحد، يُمكننا استخدام متجه من مخرجات ثنائية مستقلة بدلاً من تسمية فئوية واحدة (كما هو الحال في تصنيف الصور).


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


بالنسبة لبنية النموذج، استخدمتُ نموذج MobileNetV2، نظرًا لأدائه المتميز في استخراج الميزات، مع انخفاض تكلفته الحسابية وصغر حجمه نسبيًا. نقوم بتجميد الطبقات الأساسية بحيث يتم تحديث الطبقات المضافة النهائية فقط أثناء التدريب (تقنية نقل التعلم) لتسريع التدريب. طبقة Sigmoid نهائية بسبعة مخرجات (تتطابق مع عدد العلامات المحددة في حالتي)، تُمكّن الشبكة من إخراج مُتنبئ احتمالي متعدد العلامات. بخلاف SoftMax الذي يُجبر مجموع احتمالات الإخراج على 1، يسمح لنا Sigmoid بمعالجة كل علامة بشكل مستقل. لذلك، لأي صورة مُعطاة، يُخرج النموذج X احتمالات مستقلة، وبالنظر إلى دقة النموذج، يُمكننا استخدام عتبة لتحديد أفضل الكلمات المناسبة لوصف الصورة. هذا يعني أن النموذج لا يُحاول تصنيف الصورة إلى علامة واحدة فقط، بل يسأل:

هل تحتوي هذه الصورة على أضواء؟

هل تحتوي هذه الصورة على نبتة؟

هل تحتوي هذه الصورة على شخص؟

هل تحتوي هذه الصورة على هاتف أو جهاز كمبيوتر؟

على سبيل المثال، يقوم النموذج بإخراج احتمالات مستقلة X، مثل: الآلة = 0.91، الفني = 0.88، البقرة = 0.07، السمكة = 0.01، الكمبيوتر = 0.74.



٣. تدريب النموذج واختباره

سيؤدي تشغيل دفتر الملاحظات إلى تحميل الصور والوسوم، ومعالجتها مسبقًا، وتدريب النموذج، وأخيرًا تحميله إلى مشروع Edge Impulse المُستخدم. في حالتي، مع ١٥٠ صورة تدريب و٧ وسوم، تم تدريب النموذج على مدار ٢٠ حقبة، وكانت الدقة الناتجة ١٠٠٪. بالنسبة لبيئة بسيطة نسبيًا وخاضعة للتحكم مثل هذه البيئة، اخترت هذا الأداء ليكون مقبولًا. ومع ذلك، نظرًا لتنوع ديناميكيات بيئة العالم الحقيقي، هناك حاجة لتدريب نموذج بمزيد من الصور والوسوم لتحسين الأداء.


بعد تدريب النموذج، طوّرتُ دالتين لاختباره: predict_keywords و predict_top_keywords:

predict_keywords: تُشغّل النموذج على صورة وتُرجع جميع الكلمات المفتاحية التي يتجاوز احتمالها المتوقع الحدّ المُحدّد.

predict_top_keywords: تُرجع الكلمات المفتاحية الأعلى احتمالًا بغض النظر عن الحدّ.

أثناء الاختبار، أُعطي النموذج صورةً لغرفة معيشة فارغة، وأعادت دالة predict_keywords "أضواء" و"لا يوجد شخص"، بينما أعادت دالة predict_top_keywords "لا يوجد شخص" و"أضواء" و"نبات"، عند طلب إرجاع أعلى 3 علامات احتمالية. تتطلب التطبيقات المختلفة سلوكًا مختلفًا للكشف المُحافظ مقارنةً بعرض معظم العلامات الاحتمالية دائمًا. فضّلتُ دالة predict_keywords، ويُعاد استخدام منطقها في شيفرة الاستدلال.


أظهرت الاختبارات الإضافية للنموذج نتائج مبهرة، واخترتُ هذا الأداء المقبول لنشره.

04 نشر النموذج

بعد اختبار النموذج، يستخدم الكمبيوتر المحمول حزمة تطوير البرامج Edge Impulse Python SDK لإنشاء ملف تعريف للنموذج، مما يُمكّننا من الحصول على ذاكرة الوصول العشوائي (RAM) وذاكرة القراءة فقط (ROM) وأوقات الاستدلال للنموذج على مجموعة واسعة من الأجهزة، من وحدات التحكم الدقيقة (MCUs) ووحدات المعالجة المركزية (CPUs) ووحدات معالجة الرسومات (GPUs) واللوحات المُسرّعة بالذكاء الاصطناعي، وهو أمرٌ رائعٌ حقًا! يُمكنك رؤية تقديرات أداء النموذج على Raspberry Pi 4 في الصورة أدناه. أثناء عملية إنشاء الملف التعريفي، يتم تحميل النموذج إلى مشروع Edge Impulse.


يمكنك استنساخ مشروع Edge Impulse العام الخاص بي باستخدام هذا الرابط: وصف صورة خفيف.

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

بعد انتهاء تشغيل دفتر الملاحظات، يمكننا الانتقال إلى مشروع Edge Impulse المُستخدم، وسنرى "تحميل النموذج" ضمن "تصميم Impulse".


نحتاج أولاً إلى ضبط بعض المعلمات في مشروع Edge Impulse. انقر على "تحميل النموذج" وستُفتح واجهة جديدة على يمين الصفحة. هنا، نحتاج إلى تحديد "صورة" لإدخال النموذج. بعد ذلك، نحدد "وحدات بكسل تتراوح بين 0.1 (غير مُعايرة)" لإخراج النموذج. اختر "تصغير" لوضع تغيير الحجم و"تصنيف" لإخراج النموذج. أخيرًا، في مربع إدخال تسميات الإخراج، أدخل العلامات المستخدمة لتدريب النموذج وفقًا لترتيبها أثناء التدريب. انقر على "حفظ النموذج" لإكمال التهيئة. في لقطة الاستوديو أدناه، يمكننا أن نرى أن النموذج سيشغل 9 ميجابايت من ذاكرة الفلاش، وأن وقت الاستدلال المتوقع هو 106 مللي ثانية، وهو وقت قريب نسبيًا من وقت الاستدلال الفعلي على الجهاز، والذي يبلغ حوالي 25 مللي ثانية.


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


في واجهة مستخدم الاستوديو، انتقل إلى "النشر" واختر "Linux (AARCH64)" من "خيارات البحث عن النشر". هذه هي بنية Raspberry Pi 4، وستحتاج إلى تحديد هدف مختلف بناءً على جهاز النشر لديك. انقر على "إنشاء" وسيقوم الاستوديو بتنزيل ملف ثنائي لنموذج Edge Impulse (.eim) على جهاز الكمبيوتر الخاص بك. EIM هي تطبيقات ثنائية أصلية لنظامي Linux وmacOS تحتوي على نموذج Edge Impulse الكامل الذي أنشأته في Edge Impulse Studio. يتكون نموذج Edge Impulse من كتلة (كتل) معالجة الإشارة، بالإضافة إلى أي كتلة (كتل) تعلم وشذوذ أضفتها ودرّبتها. تُجمّع ملفات EIM لبنية نظامك الخاصة، وتُستخدم لتشغيل الاستدلال تلقائيًا على نظامك.

فك ضغط الملف المُنزّل وانسخ ملف .eim إلى مجلد eim-modelfile على جهاز Pi. بعد ذلك، أدخل الأوامر التالية في سطر الأوامر لجعل ملف .eim قابلاً للتنفيذ من قِبل النظام:

cd eim-modelfile

chmod u+x ./modelfile.eim

cd ..

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

python ai_app.py

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




النتائج

أصبحت فكرة وصف الصور ممكنة الآن من خلال تصميم مُحسّن لربط الصور بالكلمات المفتاحية، وذلك بناءً على مجال محدد. يلتقط تطبيق النشر إطارات من كاميرا Raspberry Pi، ويستخدم حزمة تطوير البرامج Edge Impulse Linux SDK لمعالجة الصور مسبقًا، وتحديد احتمالات ارتباط كل علامة بالصورة المُعطاة. ثم تُدمج الكلمات الثلاث المحتملة لتكوين جملة، تُعرض على واجهة مستخدم ويب مع موجز الفيديو.





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

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

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


الجمعة، 15 نوفمبر 2024

قفص طيور ذكي مع تقنية إنترنت الأشياء الخلوية

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


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

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

Particle B-SoM LTE CAT1/3G/2G with EtherSIM for Europe (B524

Particle M.2 SoM Evaluation Board

SG90 Micro-servo motor
Hi-Link 5V 10W AC to DC Power Supply Module
Seeed Studio Grove - Relay

مصباح التنغستن

طرف مسماري ذو دبوسين بقطر 5.08 مم

16A 3 Pin Plug Top

تطبيقات البرمجيات والخدمات عبر الإنترنت

Particle Build Web IDE

Microsoft VS Code

القصة

المشكلة

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


الحل

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


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


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


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


متطلبات الأجهزة

Particle B524 SoM

لوحة تقييم سلسلة B

مستشعر درجة الحرارة والرطوبة DHT11

سيرفو الدوران المستمر SG90

مصباح تنجستن

وحدة التتابع

مصدر طاقة High-Link (1A عند 5V)

هوائي خلوي (موصل U.FL)

كابل Micro USB

أسلاك السيليكون

أجزاء مطبوعة ثلاثية الأبعاد لوحدة التغذية والإلكترونيات

كتلة طرفية لولبية

مصدر طاقة تيار متردد ومقبس ثلاثي السنون

قفص دجاج

متطلبات البرامج

Visual Studio Code مع ملحق Particle Workbench

Particle Web IDE أو Particle Workbench

حساب Particle (أنشئ حسابًا على setup.particle.io)

Fusion 360 (لتصميم الأجزاء المخصصة)

HTML وJavaScript وCSS (للوحة معلومات الويب)

تدفق البيانات


الجسيم B524 SoM والإعداد


تُشغل وحدة B-SoM هذا المشروع. تُعَد وحدة B-SoM وحدة إنترنت الأشياء الرائدة لدينا للمنتجات المتصلة بالشبكة الخلوية. وهي تعمل على منصة إنترنت الأشياء كخدمة من Particle — والتي يتم تضمينها مجانًا لأول 100 جهاز لديك — وتتضمن بطاقة SIM مدمجة عالمية مجانية وخطة بيانات. تم تحسين وحدة B-SoM للإنتاج الضخم والتوسع، وهي مصممة ليتم دمجها مباشرة في تصميم لوحة الدوائر الخاصة بك، وتوصيل موصل M.2 NGFF باللوحة، مما يسمح بتغيير الوحدة أو ترقيتها بسهولة.

لاستخدام هذه الوحدة، يجب أن نستخدم لوحة Eval من سلسلة B وهي لوحة توصيل بسيطة لسلسلة B من وحدات إنترنت الأشياء الخلوية من Particle، للاستفادة من الوحدة


يعد إعداد لوحة التقييم أمرًا بسيطًا: قم بتوصيل هوائي الهاتف الخلوي بموصل U.FL المسمى CELL على SoM، وقم بتوصيل الوحدة بلوحة التقييم، وقم بتشغيل مفتاح طاقة SoM، وقم بتوصيل لوحة التقييم بالكمبيوتر عبر كابل micro USB.


إعداد B5 SoM

انتقل إلى setup.particle.io وقم بإنشاء حساب إذا لم يكن لديك حساب. سيسمح لك هذا بتكوين جهازك وتوصيله بسحابة Particle.












عند اتباع العملية بشكل صحيح، يمكنك رؤية جهازك متصلاً بالإنترنت في Particle Cloud.

طاولة عمل الجسيمات

يمكننا برمجة لوحة Particle بطريقتين: إما من خلال Particle Web IDE أو من خلال Particle Workbench. من أجل البساطة، نستخدم Particle Workbench. لتثبيت Workbench، تحتاج إلى Visual Studio Code. الأمر سهل للغاية - فقط ألق نظرة على هذا. ثم أنشأنا مشروعًا جديدًا باسم "Smart Coop"


أجهزة الاستشعار والمحركات


يقيس مستشعر DHT11 درجة الحرارة والرطوبة، مما يجعله مثاليًا لمراقبة البيئة. يتمتع بمدى درجة حرارة يتراوح بين 0-50 درجة مئوية بدقة ±2 درجة مئوية، ونطاق رطوبة يتراوح بين 20-90% رطوبة نسبية بدقة ±5% رطوبة نسبية. يعمل المستشعر بمصدر طاقة 3.5-5.5 فولت تيار مستمر ويتواصل عبر واجهة رقمية أحادية السلك. يوفر قراءات بمعدل قراءة واحدة في الثانية، مما يضمن بيانات في الوقت المناسب للتحكم في البيئة.

وحدة التتابع


تُستخدم وحدة التتابع للتحكم في إمداد مصباح التنغستن بالطاقة بناءً على قراءات درجة الحرارة. تعمل بجهد تشغيل 5 فولت ويمكنها تبديل الفولتات الأعلى حتى 250 فولت تيار متردد أو 30 فولت تيار مستمر، مع سعة معالجة تيار تصل إلى 10 أمبير. تحتوي الوحدة على ثلاثة اتصالات رئيسية: VCC وGND وإشارة إدخال من المتحكم الدقيق. عندما تنخفض درجة الحرارة إلى ما دون عتبة محددة، يرسل المتحكم الدقيق إشارة إلى المرحل لإغلاق الدائرة، وتشغيل المصباح لتوفير الحرارة. بمجرد الوصول إلى درجة الحرارة المطلوبة، يرسل المتحكم الدقيق إشارة إلى المرحل لفتح الدائرة، وإيقاف تشغيل المصباح.

سيرفو الدوران المستمر


يستخدم سيرفو الدوران المستمر SG90 لتوزيع الطعام على فترات منتظمة. ويعمل على نطاق جهد يتراوح بين 4.8 و6 فولت، وبسرعة تقارب 110 دورة في الدقيقة عند 6 فولت وعزم دوران يبلغ 1.2 كجم-سم عند 4.8 فولت. ويتم التحكم في السيرفو بواسطة إشارة تعديل عرض النبضة (PWM)، حيث تحدد مدة النبضة سرعة واتجاه الدوران. ويحتوي على ثلاثة أسلاك توصيل: VCC للطاقة، وGND للأرض، وسلك إشارة لاستقبال نبضات التحكم من المتحكم الدقيق. ومن خلال ضبط إشارة تعديل عرض النبضة، يمكن للمتحكم الدقيق التحكم في الدوران المستمر للسيرفو لتوزيع الطعام حسب الحاجة.

الاختبار


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


في الاختبار، قمنا بتوصيل سيرفو واحد فقط بسبب السحب الزائد للتيار، وفي المستقبل سنضيف سيرفو آخر أيضًا.

المكتبات الأساسية

نحن نستخدم مكتبتين للقياس من مستشعر DHT11، وهما Adafruit_Sensor، وDHT، ومكتبة ntp-time للحفاظ على مزامنة الوقت مع ساعة الإنترنت.

الموقع الإلكتروني

تم تطوير موقع المشروع باستخدام HTML وJavaScript وCSS، مما يوفر واجهة سهلة الاستخدام لمراقبة التعاونية الذكية والتحكم فيها.



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



إليكم الأجزاء المطبوعة ثلاثية الأبعاد التي أنتجناها. وقد صُممت هذه المكونات لتتناسب بسلاسة مع بقية البنية التحتية للقفص. والآن، يمكننا البدء في التجميع.


التجميع

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


ثم قمنا بتوصيل برغي أرخميدس إلى كلا محركي المؤازرة.



لتشغيل لوحة التقييم، استخدمنا مصدر طاقة High-Link، والذي يوفر 1 أمبير من التيار عند 5 فولت. وهذا يضمن مصدر طاقة مستقر لجميع المكونات الإلكترونية.


تم توصيل مصدر الطاقة High-Link هذا بلوحة الدوائر المطبوعة ذات النقاط الخضراء باستخدام كتلة طرفية لولبية، مما يوفر اتصالاً آمنًا وموثوقًا به.

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


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

سيتم توصيل أسلاك التيار المتردد بمقبس ثلاثي الدبابيس، مما يوفر الطاقة اللازمة للنظام بأكمله.

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

مع تجميع جميع المكونات وتوصيلها، يمكننا ربط كل شيء بحظيرتنا لجعلها ذكية.

أجزاء ومرفقات مخصصة

3D files

المخططات

الدائرة

شفرة

شفرة