מצלמה חכמה לא רק מצלמת תמונה. היא יכולה לבדוק אם אדם נכנס לאזור מסוכן, אם מוצר על פס הייצור פגום או אם מופיעה ספינה בתמונה שצולמה מהחלל. כדי לעשות זאת היא מריצה תוכנה שלמדה לזהות דוגמאות מתוך הרבה תמונות קודמות. התוצאה של תהליך הלמידה נקראת מודל.
מודל כזה בנוי מאוסף גדול מאוד של מספרים. כל מספר מייצג קשר קטן בין פרט שנמצא בתמונה לבין התוצאה המבוקשת. כדי לבדוק תמונה חדשה, המחשב מבצע שוב ושוב פעולות כפל וחיבור על המספרים האלה. ככל שהמודל גדול יותר, נדרשים יותר זמן, חשמל וזיכרון. במחשב שמחובר לשקע זה לא תמיד נורא. במצלמה קטנה, רחפן או לוויין, כל ואט נוסף מייצר חום ומקצר את זמן העבודה.
כאן נכנס FPGA. זהו שבב שמכיל הרבה אבני בניין אלקטרוניות שאפשר לחבר זו לזו לפי המשימה. מעבד רגיל דומה לעובד אחד שמבצע הוראות לפי הסדר. FPGA דומה לקו ייצור שאפשר לסדר במיוחד עבור המוצר: שלב אחד מקבל את התמונה, שלב אחר מתקן אותה ושלבים נוספים מחפשים בה עצמים. העבודה במקביל יכולה להיות מהירה וחסכונית, אבל בניית קו הייצור הזה דורשת ידע וכלי פיתוח מיוחדים.
PolarFire היא משפחת שבבים כזאת של Microchip. החברה מציעה עבורה כלי בשם VectorBlox, שמקבל מודל שכבר אומן ומכין אותו לעבודה על השבב. המטרה היא שמפתח תוכנה יוכל להשתמש ב־FPGA בלי לבנות בעצמו את כל מנגנון החישוב האלקטרוני. בגרסה הקודמת כבר היה אפשר להריץ כמה מודלים ולהחליף ביניהם בלי לתכנת מחדש את השבב.
Microchip הוסיפה עכשיו ב־VectorBlox 3.0 יכולת לדלג על חישובים מיותרים. במהלך הכנת מודל אפשר לגלות שחלק מהקשרים שהמודל למד כמעט אינם משפיעים על התוצאה. מבטלים אותם ומחליפים את הערך שלהם באפס. מודל שיש בו הרבה אפסים נקרא מודל דליל.
אפשר לחשוב על זה כמו רשימת קניות שבה מחצית מהמוצרים כבר נמחקו. דרך טיפשה תהיה לעבור בכל זאת על כל שורה, להגיע למדף ולגלות שאין מה לקחת. הדרך החכמה היא לדלג מראש על השורות המחוקות. VectorBlox 3.0 מנסה לעשות אותו דבר: לא להביא מהזיכרון מספר שערכו אפס ולא לבצע כפל שתוצאתו ממילא אפס.
החיסכון אינו רק בזמן החישוב. העברת נתונים מהזיכרון אל יחידת החישוב צורכת חשמל ולעיתים היא זו שמעכבת את המערכת. אם צריך להעביר פחות מספרים, אפשר להריץ את המודל מהר יותר, להכניס מודל גדול יותר לאותו שבב או להקטין את צריכת החשמל. לפי Microchip, מערכת שמשלבת עיבוד וידאו ו־VectorBlox יכולה לפעול בפחות מ־5 ואט, סדר גודל של מטען טלפון קטן.
שימוש מעשי הוא מצלמה על לוויין קטן. במקום לשלוח לקרקע כל תמונה שצולמה, המצלמה יכולה לזהות כבר בחלל עננים, ספינות או עצמים מעניינים ולשמור רק את מה שנחוץ. אותו רעיון מתאים למצלמה במפעל שבודקת מוצרים על פס ייצור בלי לשלוח את הווידאו למחשב מרוחק. Microchip מציעה לוח ניסוי מוכן שאפשר לחבר אליו שתי מצלמות 4K כדי להתחיל לבדוק יישומים כאלה.
החלק המעניין פה הוא ש־Microchip אינה מוסיפה לשבב עוד כוח חישוב. היא מנסה להפיק יותר מהחומרה הקיימת בכך שהיא מונעת ממנה עבודה מיותרת. זו גישה שיכולה להתאים במיוחד למוצר קטן וסגור, שבו אי אפשר להוסיף מאוורר או ספק כוח גדול.
אבל אפס אינו קסם. כדי ליהנות מהחיסכון צריך להכין מודל שיש בו מספיק קשרים שאפשר לבטל בלי לפגוע בזיהוי. גם שמירת המיקום של המספרים שלא בוטלו דורשת מקום ועבודה. בנוסף, VectorBlox מקצר את המספרים שבהם משתמש המודל כדי לחסוך זיכרון. מספר קצר תופס פחות מקום, אך הוא גם פחות מדויק, קצת כמו לעגל 3.97 ל־4. לפעמים ההבדל זניח ולפעמים הוא גורם למצלמה לפספס.
Microchip אינה מפרסמת בהודעה טבלה שמראה יחד את הדיוק, המהירות וצריכת החשמל בכמה מודלים נפוצים. לכן אי אפשר לדעת מההכרזה בלבד כמה גדול יהיה השיפור במוצר מסוים. כלי התוכנה ובלוק החישוב ניתנים ללא תשלום, אבל עדיין צריך לרכוש שבב או לוח ניסוי, ללמוד את סביבת העבודה ולבדוק את המודל עם המצלמה האמיתית. זה בסיס מעניין לדגם ניסוי ראשון, לא קיצור דרך שמבטל את עבודת ההנדסה.
הזווית ההנדסית
למה זה מעניין
במקום לפתור את בעיית הזיהוי בעזרת שבב גדול וחם יותר, VectorBlox 3.0 מנסה לזהות חישובים שלא ישנו את התוצאה ולוותר עליהם. אם המודל מתאים לכך, מצלמה קטנה יכולה לזהות עצמים במקום עצמו בפחות חשמל ובלי לשלוח כל תמונה לשרת מרוחק. החיסכון האמיתי עדיין צריך להימדד מול דיוק הזיהוי במוצר עצמו.
השיחה ממשיכה
תגובות
שאלות, תיקונים ורעיונות שאפשר לבנות מהם משהו.