הרצת קוד למידת מכונה בצומת IoT משובץ לטובת זיהוי קל של אובייקטים

מאת ‎Bill Giovino

באדיבות ‎DigiKey's North American Editors

רשתות אינטרנט של דברים (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‏.

תרשים של ה- ATSAMD51J19A‏ מבית Microchip המבוסס על ליבת ARM Cortex-M4F (לחצו להגדלה)איור 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 מנותבת למחבר עבור טעינה סוללות, ניפוי באגים ותכנות.

תמונה של TensorFlow Lite for Microcontrollers‏ 4317 מבית Adafruit Industriesאיור 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 logo

מיאון אחריות: דעות, אמונות ונקודות מבט המובעות על ידי מחברים שונים ו/או משתתפי פורום באתר אינטרנט זה לא בהכרח משקפות את הדעות, האמונות ונקודות המבט של חברת DigiKey או את המדיניות הרשמית של חברת DigiKey.

אודות כותב זה

Image of Bill Giovino

Bill Giovino

מר Bill Giovino הוא מהנדס אלקטרוניקה בעל תואר BSEE מאוניברסיטת Syracuse, והוא אחד האנשים המעטים שעבר בהצלחה ממהנדס תכנון למהנדס יישומי שטח ומשם לשיווק טכנולוגיה.

במשך למעלה מ- 25 שנה הוא נהנה מקידום טכנולוגיות חדשות מול קהלים הן טכניים והן לא-טכניים עבור חברות רבות, כולל STMicroelectronics, Intel ו- Maxim Integrated. בהיותו ב- STMicroelectronics הוא עזר להוביל את ההצלחות המוקדמות של החברה בתעשיית המיקרו-בקרים. ב- Infineon הוא הביא את לקוחות המיקרו-בקרים הראשונים של החברה בשוק הרכב בארה"ב. כיועץ השיווק של החברה שלו CPU Technologies הוא עזר לחברות רבות להפוך מוצרים עם תת-ביצועים לסיפורי הצלחה.

ביל היה מבין אלו שהקדימו לאמץ את האינטרנט-של-דברים, כולל הכנסת חבילת תוכנת TCP/IP המלאה הראשונה למיקרו-בקר. הוא נאמן למסר של "מכירות באמצעות לימוד" ולחשיבות ההולכת וגדלה של תקשורת ברורה וכתובה היטב לקידום מוצרים במקוון. הוא מנחה את הקבוצה הפופולרית של מכירות ושיווק של מוליכים-למחצה של לינקדאין, ומדבר B2E שוטפת.

אודות מוציא לאור זה

DigiKey's North American Editors