LiteRT למיקרו-בקרים נועד להריץ מודלים של למידת מכונה במיקרו-בקרים ובמכשירים אחרים עם זיכרון בנפח כמה קילו-בייט בלבד. סביבת זמן הריצה ליבה מתאימה בגודל של 16KB ב- Arm Cortex M3 ויכולה להריץ הרבה למשימות ספציפיות. היא לא דורשת תמיכה של מערכת ההפעלה, כל תקן C או C++ או הקצאת זיכרון דינמית.
למה חשוב להשתמש במיקרו-בקרים
מיקרו-בקרים הם בדרך כלל מכשירי מחשוב קטנים בעלי מתח נמוך שמוטמעות בחומרה שדורשת חישוב בסיסי. באמצעות שימוש במכונה של מיקרו-בקרים זעירים, אנחנו יכולים להגדיל את הבינה של מיליארדי המכשירים שבהם אנחנו משתמשים בחיים, כולל מכשירי חשמל לבית דברים של מכשירים, בלי להסתמך על חומרה יקרה או על אינטרנט אמין חיבורים, שבדרך כלל כפופים למגבלות רוחב פס וחשמל יובילו לזמן אחזור ארוך. כך אפשר גם לשמור על הפרטיות, כי אין נתונים יוצא מהמכשיר. דמיינו מכשירי חשמל חכמים שיכולים להסתגל לחיי היום-יום חיישנים תעשייתיים שגרתיים וחכמים שמבינים את ההבדל בין בעיות תפעול רגילים וצעצועים קסומים שיכולים לעזור לילדים ללמוד בכיף ועל דרכים מהנות.
פלטפורמות נתמכות
LiteRT למיקרו-בקרים נכתב ב-C++ 17 ודורש 32 סיביות הפלטפורמה. הוא נבדק בצורה קפדנית על ידי מעבדים רבים סדרת Arm Cortex-M הועברו לארכיטקטורות אחרות כולל ESP32. תהיה זמינה כספריית Arduino. הוא יכול גם ליצור פרויקטים בסביבות פיתוח כמו Mbed. זהו קוד פתוח וניתן לכלול אותו בכל פרויקט של C++ 17.
יש תמיכה בלוחות הפיתוח הבאים:
- Arduino Nano 33 BLE Sense
- SparkFun Edge
- ערכת Discovery STM32F746
- תג Adafruit Edge
- Adafruit LiteRT for Microcontrollers Kit
- Adafruit Circuit Playground Bluefruit
- Espressif ESP32-DevKitC
- Espressif ESP-EYE
- טרמינל Wio: ATSAMD51
- המועצה למפתחים של Himax WE-I Plus EVB AI
- פלטפורמת פיתוח התוכנה של ARC EM ב-Synopsys DesignWare
- Sony Spresense
לצפייה בדוגמאות
כל אפליקציה לדוגמה זמינה
GitHub
יש בו קובץ README.md
שמסביר איך אפשר לפרוס אותו
פלטפורמות שונות. בחלק מהדוגמאות יש גם מדריכים מקצה לקצה שמבוססים על
בפלטפורמה, כפי שמתואר בהמשך:
- Hello World - הדגמה של היסודות המוחלטים לשימוש ב-LiteRT עבור מיקרו-בקרים
- מיקרו דיבור - תיעוד האודיו באמצעות מיקרופון כדי לזהות את המילים 'כן' וגם 'לא'
- זיהוי אנשים - תיעוד נתוני המצלמה באמצעות חיישן תמונה כדי לזהות נוכחות או היעדרות של אדם
תהליך עבודה
צריך לבצע את השלבים הבאים כדי לפרוס ולהריץ מודל TensorFlow מיקרו-בקר:
- אימון מודל:
- יוצרים מודל TensorFlow קטן שיכול להתאים למכשיר היעד שלכם מכיל פעולות נתמכות.
- המרה למודל LiteRT באמצעות ממיר LiteRT.
- המרה למערך בייט C באמצעות כלים סטנדרטיים כדי לאחסן אותו זיכרון תוכנית לקריאה בלבד במכשיר.
- מריצים מסקנות במכשיר באמצעות ספריית C++ ומעבדים בין התוצאות.
מגבלות
LiteRT למיקרו-בקרים מתוכנן למגבלות הספציפיות ופיתוח מיקרו-בקרים. אם אתם עובדים במכשירים חזקים יותר (עבור או מכשיר Linux מוטמע כמו Raspberry Pi), יכול להיות שיהיה קל יותר לשלב את framework של LiteRT.
צריך להביא בחשבון את המגבלות הבאות:
- תמיכה בקבוצת משנה מוגבלת של פעולות TensorFlow
- תמיכה במספר מוגבל של מכשירים
- API של C++ ברמה נמוכה שמחייב ניהול זיכרון ידני
- אין תמיכה באימון במכשיר
השלבים הבאים
- התחילו לעבוד עם מיקרו-בקרים כדי לנסות לדוגמה וללמוד איך להשתמש ב-API.
- להבין את ספריית C++ כדי ללמוד איך להשתמש בספרייה שבה לפרויקט משלך.
- יצירה והמרה של מודלים כדי לקבל מידע נוסף על אימון ומודלים של המרות לפריסה במיקרו-בקרים.