הרצת קוד למידת מכונה בצומת IoT משובץ לטובת זיהוי קל של אובייקטים
באדיבות ‎DigiKey's North American Editors
2020-10-08
רשתות אינטרנט של דברים (IoT) הפועלות בסביבות דינמיות מתרחבות מעבר לגילוי אובייקטים וכוללות זיהוי אובייקטים ויזואלי ביישומים כמו אבטחה, ניטור סביבתי, בטיחות ו- IoT תעשייתי (IIoT). מאחר וזיהוי אובייקטים הוא אדפטיבי וכרוך בשימוש במודלים של למידת מכונה (ML), זהו תחום מורכב העלול להיות קשה ללמידה מאפס ולמימוש בצורה יעילה.
הקושי נובע מהעובדה שמודל ML הוא טוב בדיוק כמו מערך הנתונים שלו, וברגע שנאספים הנתונים הנכונים, יש לאמן כראוי את המערכת לפעול לפי המודל כדי שהתוצאה תהיה מעשית.
מאמר זה יראה למפתחים כיצד לממש מודל ML TensorFlow Lite for Microcontrollers מבית Google עבור בתוך מיקרו-בקר מבית Microchip Technology. לאחר מכן הוא יסביר כיצד להשתמש בסיווג התמונות ובמערכי נתוני הלמידה לגילוי אובייקטים עם TensorFlow Lite כדי לזהות בקלות אובייקטים עם מינימום של קוד מותאם-במיוחד.
לאחר מכן הוא יציג את ערכת ההתחלה ML TensorFlow Lite מבית Adafruit Industries כדי להכיר למפתחים את יסודות ML.
ML עבור מערכות ראייה משובצות
במובן הרחב, ML מעניקה למחשב או למערכת משובצת יכולות זיהוי תבניות הדומות לאלו של בן אנוש. מנקודת המבט של חושיות אנושית, המשמעות היא שימוש בחיישנים כגון מיקרופונים ומצלמות כדי לחקות תפיסות חושיות אנושיות של שמיעה וראייה. אמנם חיישנים הם קלים לשימוש עבור צילום נתונים אודיו-ויזואליים, לאחר שהנתונים עוברים דיגיטציה ואחסון יש לעבד אותם כך שניתן יהיה להתאים אותם לתבניות המאוחסנות בזיכרון והמייצגות צלילים או אובייקטים ידועים. האתגר הוא שנתוני התמונה שנקלטו על ידי מצלמה עבור אובייקט ויזואלי, לדוגמה, לא בדיוק יתאימו לנתונים המאוחסנים בזיכרון עבור האובייקט. יישום ML שצריך לזהות ויזואלית את האובייקט חייב לעבד את הנתונים כך שהוא יתאים את התבנית שנקלטה על ידי המצלמה לתבנית השמורה בזיכרון בצורה מדויקת ויעילה.
ישנן ספריות או מנועים שונים המשמשים להתאמה להשתמשנתונים שנקלטו על ידי החיישנים. ה- TensorFlow היא ספריית קוד פתוח המשמשת להתאמת תבניות. ספריית הקוד של TensorFlow Lite for Microcontrollers תוכננה במיוחד להרצה על מיקרו-בקרים, וכתוצאה מכך צמצמה את דרישות הזיכרון והמעבד להרצה על חומרה מוגבלת יותר. ספציפית, היא דורשת מיקרו-בקר Bit-32 ומשתמשת בזיכרון Flash של פחות מ- 25 קילובייט (Kbytes).
עם זאת, בעוד ש- TensorFlow Lite עבור מיקרו-בקרים הוא מנוע ML, המערכת עדיין זקוקה למערך נתוני למידה של התבניות שהיא אמורה לזהות. ללא קשר לאיכות מנוע ה- ML, המערכת היא טובה בדיוק כמו מערך נתוני הלמידה שלה, ולגבי אובייקטים ויזואליים, חלק ממערכי נתוני הלמידה עשוי לדרוש מספר רב של ג'יגה-בייטים של נתונים עבור מודלים גדולים רבים. יותר נתונים דורשים ביצועי מעבד גבוהים יותר כדי למצוא במהירות התאמה מדויקת, ולכן יישומים מסוג זה מורצים בדרך כלל על מחשבים רבי-עוצמה או על מחשבים ניידים מהרמה-העליונה.
עבור יישומי מערכות משובצות, יש צורך לאחסן רק את המודלים הספציפיים במערך נתוני הלמידה הנחוצים עבור היישום. אם מערכת אמורה לזהות כלים וחומרה, אזי ניתן להסיר מודלים המייצגים פירות וצעצועים, כדוגמה. זה מקטין את גודל מערך נתוני הלמידה, שבתורו מקטין את צורכי הזיכרון של המערכת המשובצת , ובכך משפר את הביצועים תוך הפחתת vעלויות.
מיקרו-בקר ML
להרצת TensorFlow Lite for Microcontrollers, חברת Microchip Technology מכוונת ללמידת מכונה במיקרו-בקרים באמצעות מיקרו-בקר ATSAMD51J19A-AFT מבוסס-Arm® Cortex®-M4F (איור 1). יש לו זיכרון Flash של Kbytes 512 וזיכרון SRAM של Kbytes 192 והוא פועל ב- 120 מגה-הרץ (MHz). ה- ATSAMD51J19A-AFT הוא חלק ממשפחת מיקרו-בקרי ML ATSAMD51 מבית Microchip Technology. הוא תואם לתקני האיכות Grade 1 AEC-Q100 ופועל בתחום הטמפרטורות 40°C- עד 125°C+ ההופך אותו למתאים עבור סביבות IoT ו- IIoT הקשות ביותר. זהו מיקרו-בקר מתח-נמוך הפועל בין 1.71 ל- 3.63 וולט כאשר הוא פועל ב- MHz 120.
איור 1: ה- ATSAMD51J19A מבית Microchip מבוסס על ליבת ARM Cortex-M4F ופועל ב- MHz 120. זהו מיקרו-בקר עם מלוא המאפיינים ועם זיכרון Flash של Kbytes 512 וזיכרון SRAM של Kbytes 192. (מקור התמונה: Microchip Technology)
אפשרויות הרשתות של ה- ATSAMD51J19A כוללות CAN 2.0B עבור רשתות תעשייתית ו- 10/100 Ethernet עבור מרבית הרשתות הקוויות. זה מאפשר למיקרו-בקר לתפקד במגוון של רשתות IoT. ממשק USB 2.0 תומך בשני אופני הפעולה מארח והתקן גם יחד וניתן להשתמש בו עבור ניפוי-באגים בהתקנים או ברשתות מערכתות.
זיכרון Cache Kbyte 4 משולב לפקודות ולנתונים משפר את הביצועים בזמן עיבוד קוד ML. יחידת נקודה צפה (FPU) היא שימושית גם עבור שיפור ביצועי קוד ML כמו גם בעיבוד נתוני חיישנים גולמיים.
אחסון מערכי נתוני למידה
ל- ATSAMD51J19A יש גם ממשק QSPI עבור אחסון זיכרון של תוכניות או נתונים חיצוניים. זה שימושי עבור אחסון נתונים נוסף של מערכי נתוני למידה העולים על הקיבולת של זיכרון Flash שעל-השבב. ל- QSPI יש גם תמיכה ב- (eXecute in Place (XiP עבור הרחבת זיכרון תוכנית חיצוני במהירות-גבוהה.
ל- ATSAMD51J19A יש גם בקר מארח כרטיס זיכרון SD/MMC (SDHC) שהוא שימושי מאוד עבור יישומי ML מאחר והוא מאפשר החלפת זיכרון קלה של קוד ML ומערכי נתוני למידה. בעוד שמנוע TensorFlow Lite for Microcontrollers יכול לרוץ בזיכרון Flash של Kbytes 512 על ה- ATSAMD51J19A, את מערכי נתוני למידה ניתן לשדרג ולשפר באופן קבוע. ניתן לשמור את מערכי נתוני הלמידה בזיכרון Flash QSPI חיצוני או ב- QSPI EEPROM, ובתלות בתצורת הרשת ניתן לשדרג אותם מרחוק דרך הרשת. עם זאת, עבור מערכות מסוימות זה יכול להיות נוח יותר להחליף פיזית כרטיס זיכרון עם כרטיס אחר עם מערך נתוני למידה משופר. בתצורה זו המפתח צריך להחליט אם המערכת צריכה להיות מתוכננת להחלפה-חמה של כרטיס הזיכרון, או אם צריך להשבית את צומת ה- IoT.
אם צומת ה- IoT מוגבל ביותר מבחינת המקום, אזי במקום להשתמש בזיכרון חיצוני יהיה זה יתרון להכניס כמה שיותר מהיישום לתוך זיכרון המיקרו-בקר. ה- ATSAMD51J20A-AFT מבית Microchip Technology הוא דומה ותואם-פינים עם ה- ATSAMD51J19A, להוציא את זיכרון Flash של Mbyte 1 וזיכרון SRAM של Kbytes 256 שלו, המעניק יותר אחסון על-השבב עבור מערכי נתוני למידה.
פיתוח עם TensorFlow Lite for Microcontrollers
חברת Adafruit Industries תומכת בפיתוח על ה- ATSAMD51J19A עם ערכת הפיתוח TensorFlow Lite for Microcontrollers 4317 (איור 2). בלוח יש זיכרון Flash QSPI של Mbytes 2 שניתן להשתמש בו לאחסון מערכי נתוני למידה. הערכה מגיעה עם שקע מיקרופון עבור זיהוי אודיו ML. צג TFT LCD צבעוני 1.8 אינץ' 160 x 128 שלה יכול לשמש עבור פיתוח וניפוי-באגים. הצג יכול גם לשמש עבור הדגמות זיהוי קול כאשר משתמשים ב- TensorFlow Lite for Microcontrollers עם מערך נתוני למידה עבור זיהוי קול. מכיוון שהיישום מזהה מילים שונות, ניתן להציג אותן על המסך.
בערכה מבית Adafruit Industries יש גם שמונה לחצנים, מד תאוצה תלת-צירי, חיישן אור, מיני רמקול וסוללת ליתיום-פולי. נקודות-חיבור USB 2.0 ב- ATSAMD51J19A מנותבת למחבר עבור טעינה סוללות, ניפוי באגים ותכנות.
איור 2: ערכת הפיתוח TensorFlow Lite for Microcontrollers 4317 מבית Adafruit Industries מגיעה עם TFT LCD צבעוני עבור הפיתוח היכול להציג את תוצאות פעולות ה- ML. (מקור התמונה: Adafruit Industries)
ערכת Adafruit מגיעה עם הגרסה האחרונה של TensorFlow Lite for Microcontrollers. ניתן לטעון את מערכי נתוני הלמידה באמצעות נקודת-החיבור USB לתוך זיכרון Flash של Kbytes 512 של המיקרו-בקר ATSAMD51J19A או לטעון אותם בזיכרון QSPI חיצוני של Mbytes 2.
עבור הערכת זיהוי תמונות, ניתן להעלות את מערך הלמידה של גילוי אובייקטים של ה- TensorFlow לתוך לוח הפיתוח. בלוח הפיתוח יש נקודות-חיבור עבור נקודות-החיבור המקביליות והטוריות של המיקרו-בקר, שרבות מהן יכולות לשמש לחיבור למצלמה חיצונית. כאשר מערך למידת גילוי האובייקטים נטען למיקרו-בקר, ה- LCD יכול לשמש להצגת פלט התוצאות של עיבוד ML של גילוי האובייקטים, כך שכאשר הוא מזהה בננה, צג TFT עשוי להציג את האובייקטים שזוהו, לצד אחוז האמון. דוגמה לתצוגת תוצאות עשויה להיראות כ-:
בננה: 95%
מפתח: 12%
משקפיים: 8%
מסרק: 2%
עבור פיתוח יישומי גילוי אובייקטים ב- IoT, זה יכול להאיץ את הפיתוח ולעזור באבחון כל תוצאות הזיהוי השגויות.
סיכום
ה- ML הוא תחום מתרחב הדורש כישורים מיוחדים לפיתוח מנועי מיקרו-בקר ומודלים מאפס ולממש אותם ביעילות בקצה. עם זאת, שימוש בספריית קוד קיימת כמו TensorFlow Lite for Microcontrollers במיקרו-בקרים יעילים ביותר בעלות נמוכה או בלוחות פיתוח חוסך זמן וכסף, כשהתוצאה היא מערכת ML עם ביצועים עיליים שניתן להשתמש בה כדי לזהות אובייקטים בצומתי IoT במהירות, באמינות וביעילות.
מיאון אחריות: דעות, אמונות ונקודות מבט המובעות על ידי מחברים שונים ו/או משתתפי פורום באתר אינטרנט זה לא בהכרח משקפות את הדעות, האמונות ונקודות המבט של חברת DigiKey או את המדיניות הרשמית של חברת DigiKey.


