LiteRT برای میکروکنترلرها برای اجرای مدل های یادگیری ماشین بر روی میکروکنترلرها و سایر دستگاه ها با تنها چند کیلوبایت حافظه طراحی شده است. زمان اجرا هسته فقط در 16 کیلوبایت در Arm Cortex M3 قرار می گیرد و می تواند بسیاری از مدل های پایه را اجرا کند. نیازی به پشتیبانی سیستم عامل، کتابخانه های استاندارد C یا C++ یا تخصیص حافظه پویا ندارد.
چرا میکروکنترلرها مهم هستند
میکروکنترلرها معمولاً دستگاههای محاسباتی کوچک و کم مصرفی هستند که در سختافزاری تعبیه شدهاند که به محاسبات اولیه نیاز دارد. با آوردن یادگیری ماشین به میکروکنترلرهای کوچک، میتوانیم هوش میلیاردها دستگاهی را که در زندگیمان استفاده میکنیم، از جمله لوازم خانگی و دستگاههای اینترنت اشیا، بدون تکیه بر سختافزار گرانقیمت یا اتصالات اینترنتی قابل اعتماد، که اغلب در معرض پهنای باند و اینترنت اشیا هستند، افزایش دهیم. محدودیت های قدرت و منجر به تاخیر بالا می شود. این همچنین می تواند به حفظ حریم خصوصی کمک کند، زیرا هیچ داده ای از دستگاه خارج نمی شود. وسایل هوشمندی را تصور کنید که میتوانند با کارهای روزمره شما سازگار شوند، حسگرهای صنعتی هوشمند که تفاوت بین مشکلات و عملکرد عادی را درک میکنند، و اسباببازیهای جادویی که میتوانند به کودکان کمک کنند تا به روشهای سرگرمکننده و لذتبخش یاد بگیرند.
پلتفرم های پشتیبانی شده
LiteRT برای میکروکنترلرها در C++ 17 نوشته شده است و به یک پلتفرم 32 بیتی نیاز دارد. این به طور گسترده با بسیاری از پردازنده های مبتنی بر معماری Arm Cortex-M سری آزمایش شده است و به معماری های دیگر از جمله ESP32 منتقل شده است. این فریم ورک به صورت کتابخانه آردوینو در دسترس است. همچنین می تواند پروژه هایی را برای محیط های توسعه مانند Mbed ایجاد کند. منبع باز است و می تواند در هر پروژه C++ 17 گنجانده شود.
بردهای توسعه زیر پشتیبانی می شوند:
- آردوینو نانو 33 BLE Sense
- SparkFun Edge
- کیت اکتشاف STM32F746
- Adafruit EdgeBadge
- کیت Adafruit LiteRT برای میکروکنترلرها
- Adafruit Circuit Playground Bluefruit
- اسپرسف ESP32-DevKitC
- اسپرسف ESP-EYE
- ترمینال Wio: ATSAMD51
- هیئت توسعه هوش مصنوعی Himax WE-I Plus EVB Endpoint
- پلتفرم توسعه نرم افزار Synopsys DesignWare ARC EM
- Sony Spresense
نمونه ها را بررسی کنید
هر برنامه نمونه در GitHub است و دارای یک فایل README.md
است که توضیح می دهد چگونه می توان آن را در پلتفرم های پشتیبانی شده خود مستقر کرد. برخی از نمونه ها همچنین دارای آموزش های سرتاسری با استفاده از یک پلتفرم خاص هستند که در زیر آورده شده است:
- Hello World - اصول مطلق استفاده از LiteRT را برای میکروکنترلرها نشان می دهد
- گفتار میکرو - صدا را با میکروفون ضبط می کند تا کلمات "بله" و "نه" را تشخیص دهد.
- تشخیص شخص - داده های دوربین را با یک حسگر تصویر برای تشخیص حضور یا عدم حضور یک فرد ضبط می کند
گردش کار
مراحل زیر برای استقرار و اجرای یک مدل TensorFlow روی یک میکروکنترلر لازم است:
- آموزش یک مدل :
- یک مدل TensorFlow کوچک ایجاد کنید که می تواند با دستگاه مورد نظر شما متناسب باشد و شامل عملیات پشتیبانی شده باشد.
- با استفاده از مبدل LiteRT به مدل LiteRT تبدیل کنید .
- با استفاده از ابزارهای استاندارد به آرایه بایت C تبدیل کنید تا آن را در حافظه برنامه فقط خواندنی روی دستگاه ذخیره کنید.
- استنتاج را روی دستگاه با استفاده از کتابخانه C++ اجرا کنید و نتایج را پردازش کنید.
محدودیت ها
LiteRT برای میکروکنترلرها برای محدودیت های خاص توسعه میکروکنترلر طراحی شده است. اگر روی دستگاههای قدرتمندتری کار میکنید (به عنوان مثال، یک دستگاه لینوکس جاسازی شده مانند Raspberry Pi)، یکپارچهسازی چارچوب استاندارد LiteRT ممکن است آسانتر باشد.
محدودیت های زیر باید در نظر گرفته شود:
- پشتیبانی از زیر مجموعه محدودی از عملیات TensorFlow
- پشتیبانی از مجموعه محدودی از دستگاه ها
- API سطح پایین C++ که به مدیریت حافظه دستی نیاز دارد
- آموزش روی دستگاه پشتیبانی نمی شود
مراحل بعدی
- با میکروکنترلرها شروع کنید تا برنامه مثال را امتحان کنید و نحوه استفاده از API را بیاموزید.
- برای یادگیری نحوه استفاده از کتابخانه در پروژه خود ، کتابخانه ++C را درک کنید .
- ساخت و تبدیل مدل ها برای کسب اطلاعات بیشتر در مورد آموزش و تبدیل مدل ها برای استقرار در میکروکنترلرها.