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

كاميرا AI لـ Raspberry Pi / Arduino: 7 خطوات
كاميرا AI لـ Raspberry Pi / Arduino: 7 خطوات

فيديو: كاميرا AI لـ Raspberry Pi / Arduino: 7 خطوات

فيديو: كاميرا AI لـ Raspberry Pi / Arduino: 7 خطوات
فيديو: Pixy2 Camera - Image Recognition for Arduino & Raspberry Pi 2024, شهر نوفمبر
Anonim
Image
Image

إذا كنت تتابع الأخبار مؤخرًا ، فقد كان هناك انفجار في الشركات الناشئة التي تعمل على تطوير رقائق لتسريع استدلال خوارزميات التعلم الآلي وتدريبها. ومع ذلك ، لا تزال معظم هذه الرقائق قيد التطوير وليست شيئًا يمكن لصانعك العادي الحصول عليه. الاستثناء الوحيد المهم حتى الآن هو Intel Movidius Neural Compute Stick ، وهو متاح للشراء ويأتي مع SDK جيد. لديه بعض العيوب المهمة - وهي السعر (حوالي 100 دولار أمريكي) وحقيقة أنه يأتي بتنسيق USB stick. إنه لأمر رائع إذا كنت تريد استخدامه مع الكمبيوتر المحمول أو Raspberry PI ، ولكن ماذا لو كنت تريد القيام ببعض مشاريع التعرف على الصور باستخدام Arduino؟ أو Raspberry Pi Zero؟

الخطوة 1: Sipeed MAix: AI at the Edge

Sipeed MAix: الذكاء الاصطناعي عند الحافة
Sipeed MAix: الذكاء الاصطناعي عند الحافة

منذ وقت ليس ببعيد ، وضعت يدي على لوحة تطوير Sipeed M1w K210 ، التي تحتوي على وحدة معالجة مركزية ثنائية النواة RISC-V 64 بت وتتميز بـ KPU (معالج الشبكة العصبية) ، المصمم خصيصًا لتسريع CNN لمعالجة الصور. يمكنك قراءة المزيد من التفاصيل هنا.

صدمني سعر هذا اللوح بصراحة ، فهو لا يتجاوز 19 دولارًا أمريكيًا للوحة تطوير متكاملة تعمل بالذكاء الاصطناعي مع دعم Wi-fi! هناك تحذير (بالطبع هناك): لا تزال البرامج الثابتة للوحة micropython قيد التطوير ، وبشكل عام فهي ليست سهلة الاستخدام للغاية حتى الآن. الطريقة الوحيدة للوصول إلى جميع وظائفه الآن هي كتابة كود C المضمن الخاص بك أو تعديل بعض العروض التوضيحية الحالية.

يشرح هذا البرنامج التعليمي كيفية استخدام نموذج الكشف عن فئة Mobilenet 20 لاكتشاف الكائنات وإرسال رمز الكائن المكتشف من خلال UART ، حيث يمكن تلقيه بواسطة Arduino / Raspberry Pi.

الآن ، يفترض هذا البرنامج التعليمي أنك على دراية بنظام Linux وأساسيات تجميع كود C. إذا جعلك سماع هذه العبارة تشعر بالدوار قليلاً:) ، فما عليك سوى الانتقال إلى الخطوة 4 ، حيث تقوم بتحميل الملف الثنائي المبني مسبقًا إلى Sipeed M1 وتخطي التجميع.

الخطوة 2: جهز بيئتك

جهز بيئتك
جهز بيئتك

لقد استخدمت Ubuntu 16.04 لتجميع وتحميل كود C. من الممكن القيام بذلك في Windows ، لكنني لم أحاول ذلك.

قم بتنزيل RISC-V GNU Compiler Toolchain ، وقم بتثبيت جميع التبعيات الضرورية.

git clone - متسلسل

sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev gawk build-basic bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev

انسخ سلسلة الأدوات التي تم تنزيلها إلى الدليل / opt. بعد ذلك قم بتشغيل الأوامر التالية

./configure --prefix = / opt / kendryte-toolchain --with-cmodel = medany

صنع

أضف / opt / kendryte-toolchain / bin إلى مسارك الآن.

أنت الآن جاهز لتجميع الكود!

الخطوة 3: قم بتجميع الكود

قم بتجميع الكود
قم بتجميع الكود

قم بتنزيل الكود من مستودع جيثب الخاص بي.

قم بتنزيل Kendryte K210 SDK المستقل

نسخ مجلد / kpu من مستودع github الخاص بي إلى مجلد / src في SDK.

قم بتشغيل الأوامر التالية في مجلد SDK (وليس مجلد src /!)

mkdir build && cd build

cmake.. -DPROJ = project_name -DTOOLCHAIN = / opt / kendryte-toolchain / bin && make

حيث project_name هو اسم مشروعك (متروك لك) و -DTOOLCHAIN = يجب أن يشير إلى موقع سلسلة أدوات risc-v (قمت بتنزيله في الخطوة الأولى ، تذكر؟)

رائعة! الآن نأمل أن ترى التجميع انتهى بدون أخطاء ولديك ملف.bin يمكنك تحميله.

الخطوة 4: تحميل ملف.bin

تحميل ملف.bin
تحميل ملف.bin

الآن قم بتوصيل Sipeed M1 بالكمبيوتر ومن مجلد / build قم بتشغيل الأمر التالي

sudo python3 isp_auto.py -d / dev / ttyUSB0 -b 200000 kpu.bin

حيث kpu.bin هو اسم ملف.bin الخاص بك

عادةً ما يستغرق التحميل من دقيقتين إلى ثلاث دقائق ، وبعد الانتهاء سترى أن اللوحة تشغل اكتشاف 20 فصلًا. الخطوة الأخيرة بالنسبة لنا هي توصيله بـ Arduino mega أو Raspberry Pi.

!!! إذا جئت للتو من الخطوة 2 !

قم بتشغيل الأمر التالي من المجلد حيث قمت باستنساخ مستودع جيثب الخاص بي

sudo python3 isp_auto.py -d / dev / ttyUSB0 -b 200000 kpu_bin.bin

عادةً ما يستغرق التحميل من دقيقتين إلى ثلاث دقائق ، وبعد الانتهاء سترى أن اللوحة تشغل اكتشاف 20 فصلًا. الخطوة الأخيرة بالنسبة لنا هي توصيله بـ Arduino mega أو Raspberry Pi.

الخطوة 5: الاتصال بـ Arduino

الاتصال بأردوينو
الاتصال بأردوينو
الاتصال بأردوينو
الاتصال بأردوينو
الاتصال بأردوينو
الاتصال بأردوينو

لقد استخدمت Arduino Mega مع Seeed Studio Mega Shield ، ولهذا السبب قمت بلحام موصل Grove بلوحة Sipeed M1. ومع ذلك ، يمكنك فقط استخدام أسلاك التوصيل وتوصيل Sipeed M1 مباشرة بـ Arduino Mega ، باتباع مخطط الأسلاك هذا.

بعد ذلك قم بتحميل رسم camera.ino وافتح الشاشة التسلسلية. عندما تقوم بتوجيه الكاميرا إلى كائنات مختلفة (توجد قائمة من 20 فئة في الرسم التخطيطي) ، يجب أن تُخرج اسم الفئة في الشاشة التسلسلية!

تهانينا! لديك الآن وحدة الكشف عن الصور العاملة في Arduino!

الخطوة 6: الاتصال بـ Raspberry Pi

الاتصال بـ Raspberry Pi
الاتصال بـ Raspberry Pi
الاتصال بـ Raspberry Pi
الاتصال بـ Raspberry Pi

لقد استخدمت قبعة Grove Pi + لـ Raspberry Pi 2B ، ولكن مرة أخرى ، كما هو الحال مع Arduino ، يمكنك فقط توصيل Sipeed M1 بواجهة UART الخاصة بـ Raspberry Pi باتباع مخطط الأسلاك هذا.

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

الخطوة 7: الخاتمة

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

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

موصى به: