آموزش رزبری پایپروژه رزبری پای

طبقه بندی اشیا با رزبری پای و Edge Impulse TinyML

Edge Impulse Studio یک پلتفرم یادگیری ماشین است که توسعه دهندگان را قادر می سازد مدل های آموزش دیده را در فضای ابری تولید کرده و در میکروکنترلرها (به عنوان مثال Arduino و STM32) یا رایانه های تک برد مانند Raspberry Pi مستقر کنند. در ابتدا ، Edge impulse از Raspberry Pi پشتیبانی نمی کرد اما در آوریل 2021 Edge Impulse پشتیبانی کامل خود را با Raspberry Pi اعلام کرد.

بنابراین ، در این آموزش ، ما می خواهیم یک مدل طبقه بندی کننده تصویر را در Edge Impulse آموزش دهیم و سپس آن را در Raspberry Pi مستقر کنیم.

قطعات مورد نیاز

  • رزبری پای
  • ماژول دوربین Pi

شروع کار با Edge Impulse

برای آموزش یک مدل یادگیری ماشین با Edge Impulse و Raspberry Pi ، یک حساب Edge Impulse ایجاد کنید ، حساب خود را تأیید کنید و سپس یک پروژه جدید را ایجاد کنید.

شروع کار با Edge Impulse

برای یادگیری آردوینو (برنامه نویسی، ساخت ربات، ارتباط با اندروید) روی دوره آموزش آردوینو کلیک کنید.
برای یادگیری کامل الکترونیک روی دوره آموزش الکترونیک کلیک کنید.

نصب Edge Impulse روی Raspberry Pi

اکنون ، برای استفاده از Edge Impulse در Raspberry Pi ابتدا باید Edge Impulse و وابستگی های آن را در Raspberry Pi نصب کنید. برای نصب Edge Impulse روی Raspberry از دستورات زیر استفاده کنید:

curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -
sudo apt install -y gcc g++ make build-essential nodejs sox gstreamer1.0-tools gstreamer1.0-plugins-good gstreamer1.0-plugins-base gstreamer1.0-plugins-base-apps
sudo npm install edge-impulse-linux -g --unsafe-perm

اکنون ، برای اجرای Edge Impulse از دستور زیر استفاده کنید:

edge-impulse-linux

از شما خواسته می شود وارد حساب Edge Impulse خود شوید. سپس از شما خواسته می شود که یک پروژه را انتخاب کنید ، و در آخر میکروفون و دوربین را برای اتصال به پروژه انتخاب کنید.

نصب Edge Impulse روی Raspberry Pi

اکنون ، همانطور که Edge Impulse روی Raspberry Pi در حال اجرا است ، ما باید دوربین Pi را برای جمع آوری تصویر به Pi وصل کنیم. دوربین Pi را همانطور که در تصویر زیر نشان داده شده وصل کنید.

اتصال دوربین به رزبری پای

ایجاد مجموعه داده

همانطور که قبلا ذکر شد ، ما از Edge Impulse Studio برای آموزش مدل طبقه بندی تصویر خود استفاده می کنیم. برای این منظور ، ما باید یک مجموعه داده را جمع آوری کنیم که دارای نمونه اشیایی است که می خواهیم با استفاده از دوربین Pi طبقه بندی کنیم. از آنجا که هدف طبقه بندی پیاز و سیب زمینی است ، باید چند نمونه تصویر از پیاز و سیب زمینی را جمع آوری کنید تا بتواند تمایز بین این دو را تشخیص دهید.

با استفاده از تلفن همراه ، برد Raspberry Pi می توانید نمونه ها را جمع آوری کنید یا می توانید یک مجموعه داده را به حساب import کنید. ساده ترین راه برای بارگذاری نمونه ها در Edge Impulse استفاده از تلفن همراه است. برای آن ، باید تلفن همراه خود را به Edge Impulse متصل کنید.

برای اتصال تلفن همراه خود ، روی “Devices” کلیک کنید و سپس روی “connect a new device” کلیک کنید.

ایجاد مجموعه داده

اکنون ، در پنجره بعدی روی “Use your Mobile Phone” کلیک کنید ، یک کد QR ظاهر می شود. با استفاده از Google Lens یا سایر برنامه های اسکنر کد QR، کد QR را با تلفن همراه خود اسکن کنید. با این کار تلفن شما به استودیوی Edge Impulse متصل می شود.

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید

با اتصال تلفن به Edge Impulse Studio ، اکنون می توانید نمونه های خود را بارگذاری کنید. برای بارگذاری نمونه ها ، روی “acquisition data” کلیک کنید. اکنون ، در صفحه جمع آوری داده ها ، نام برچسب (برای سیب زمینی potato) را وارد کنید و “camera” را به عنوان سنسور انتخاب کنید. روی «Start sampling» کلیک کنید.

یادگیری ماشین برای تشخیص سیب زمینی و پیاز

با این کار تصویر سیب زمینی در فضای ابری Edge Impulse ذخیره می شود. 10 تا 20 تصویر از زوایای مختلف بگیرید. پس از بارگذاری نمونه های سیب زمینی ، اکنون برچسب را روی ‘Onion’ تنظیم کرده و 10 تا 20 تصویر دیگر جمع آوری کنید.

این نمونه ها برای آموزش مدل است. در مراحل بعدی ، داده های تست را جمع آوری می کنیم. داده های آزمایش باید حداقل 20٪ از داده های آموزش باشد ، بنابراین 3 نمونه سیب زمینی و پیاز را جمع آوری کنید.

آموزش مدل تشخیص سیب زمینی و پیاز

برای این منظور ، به صفحه “Create impulse” بروید.

آموزش مدل تشخیص سیب زمینی و پیاز

اکنون ، در صفحه “Create impulse” بر روی “Add a processing block” کلیک کنید و روی دکمه “add” در کنار بلوک “image” کلیک کنید تا یک بلوک پردازشی اضافه کنید که داده های تصویر را نرمالیزه می کند و عمق رنگ را کاهش می دهد. پس از آن بر روی بلوک “Transfer Learning (images)” کلیک کنید تا یک مدل از قبل آموزش دیده برای طبقه بندی تصویر را بدست آورید تا آن را برای وظیفه تشخیص سیب زمینی و پیاز تنظیم کنیم. سپس بر روی “Save Impulse” کلیک کنید.

در مرحله بعد ، به زیر مورد “image” در مورد منوی “impulse design” بروید و سپس روی برگه “Generate Features” کلیک کنید و سپس دکمه سبز “Generate features” را بزنید.

پس از آن ، بر روی زیر مورد “Transfer learning” در مورد منوی “design impulse” کلیک کنید و دکمه “start training” را در پایین صفحه بزنید. در اینجا ، ما از MobileNetV2 به صورت پیش فرض استفاده کردیم. در صورت تمایل می توانید از مدل های مختلف آموزشی استفاده کنید.

آموزش مدل مدتی طول خواهد کشید. پس از آموزش مدل ، عملکرد آموزش را نشان می دهد. برای من دقت 75٪ بود.

دقت در طبقه بندی اشیا با رزبری پای

اکنون می توانیم مدل آموزش دیده خود را آزمایش کنیم. برای این کار ، روی تب “Live classification” در منوی سمت چپ کلیک کنید و سپس می توانید از دوربین Raspberry Pi برای گرفتن نمونه تصاویر استفاده کنید.

استفاده از مدل آموزش دیده در Raspberry Pi

پس از اتمام مراحل آموزش ، می توانیم مدل طبقه بندی اشیا در Raspberry Pi پیاده سازی کنیم. برای این منظور ، به پنجره Terminal رفته و دستور زیر را وارد کنید:

edge-impulse-runner

اگر فرمان edge-impulse-linux در حال اجرا است ، Control+C را بزنید تا متوقف شود و سپس دستور بالا را وارد کنید.

با این کار Raspberry Pi به ابر Edge Impulse متصل می شود و مدل آموزش دیده را بارگیری کرده و از دوربین خود یک جریان ویدیویی دریافت کرده و به دنبال تشخیص سیب زمینی و پیاز می گردد. نتایج در پنجره Terminal نشان داده خواهد شد.

استفاده از مدل آموزش دیده در Raspberry Pi

همچنین می توانید جریان ویدئو را در مرورگر باز کنید. برای این منظور ، URL را (در تصویر بالا نشان داده شده) از پنجره ترمینال کپی کرده و در مرورگر جای گذاری کنید.

تشخیص سیب زمینی و پیاز با پردازش تصویر رزبری پای

به این ترتیب می توانید از Edge Impulse Studio برای آموزش یک مدل یادگیری ماشین سفارشی استفاده کنید.

5/5 - (1 امتیاز)

برای مشاهده توضیحات روی دوره مورد نظر کلیک کنید.

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام آیرنکس را دنبال کنید.

تصویر از محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید) سعی میکنم تمام نظرات را پاسخ دهم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *