איך Nutrola משתמשת בראיית מחשב ובינה מלאכותית כדי לזהות מעל 130,000 מזונות
מבט טכני מעמיק על הבינה המלאכותית מאחורי תכונת Snap & Track של Nutrola: כיצד רשתות עצביות קונבולוציוניות, זיהוי פריטים מרובים והערכות מנות פועלות יחד כדי לזהות יותר מ-130,000 מזונות מתמונה אחת.
הבעיה: מדוע זיהוי מזון הוא אחד האתגרים הקשים ביותר של בינה מלאכותית
זיהוי מזון מתמונות נשמע פשוט. בני אדם עושים זאת בקלות. אבל עבור מערכות ראיית מחשב, זיהוי מזון נחשב לאחת המשימות הקשות ביותר של סיווג חזותי, הרבה יותר מאשר זיהוי פנים, מכוניות או טקסט כתוב.
הסיבות לכך הן משמעותיות:
- שונות קיצונית בתוך הקטגוריה. "סלט" יכול להיראות כמו אלף דברים שונים. סלט קיסר, סלט יווני, סלט פירות וסלט ניקואז מפורק חולקים שם קטגוריה אך כמעט ואין להם דמיון חזותי.
- דמיון גבוה בין קטגוריות שונות. פירה וחומוס יכולים להיראות כמעט זהים בתמונה. כך גם כמה מרקים וקערות שייקים. אורז לבן ואורז כרובית לא ניתנים להבחנה מבחינה חזותית מכמה זוויות.
- עיוותים ותערובות. בניגוד לאובייקטים קשיחים, מזון נחתך, מבושל, מעורבב, מונח בשכבות ומסודר בשילובים אינסופיים. בוריטו, רול וטורטיה עשויים להכיל מרכיבים זהים במבנים שונים.
- תלות בהקשר תרבותי. אותו מראה חזותי יכול לייצג מזונות שונים במטבחים שונים. לחם שטוח ועגלגל יכול להיות טורטיה, רוטי, פיתה, קרפ או טונברוד שוודי, כאשר לכל אחד מהם פרופיל תזונתי שונה.
- חסימות חלקיות. מזון על צלחת חופף, רטבים מכסים מרכיבים וקישוטים מסתירים מה שנמצא מתחת.
אתגרים אלו מסבירים מדוע זיהוי מזון היה מאחור בשנים רבות לעומת יישומים אחרים של ראיית מחשב. הם גם מסבירים מדוע פתרון הבעיה דרש גישה שונה באופן יסודי מסיווג תמונות מסורתי.
היסוד: רשתות עצביות קונבולוציוניות
כיצד רשתות CNN מעבדות תמונות מזון
במרכז זיהוי המזון המודרני נמצאת הרשת העצבית הקונבולוציונית (CNN), סוג של ארכיטקטורת למידה עמוקה שנועדה במיוחד לעיבוד נתונים חזותיים. רשת CNN מנתחת תמונה דרך סדרת שכבות חציית תכונות היררכיות:
שכבות 1-3 (תכונות ברמה נמוכה): הרשת מזהה קווים, צבעים וטקסטורות פשוטות. בשלב זה, היא עשויה לזהות את הקצה העגלגל של צלחת, את הצבע החום של בשר מבושל או את הטקסטורה הגרגירית של אורז.
שכבות 4-8 (תכונות ברמה בינונית): שכבות אלו משלבות תכונות ברמה נמוכה לדפוסים מורכבים יותר: דפוס הוורידים של סטייק על גריל, המבנה השכבתי של סנדוויץ', את המשטח המבריק של רוטב או את הטקסטורה הסיבית של עוף מפורר.
שכבות 9-15+ (תכונות ברמה גבוהה): השכבות העמוקות ביותר מרכיבות דפוסים ברמה בינונית לייצוגים ספציפיים למזון. הרשת לומדת ששילוב מסוים של טקסטורות, צבעים, צורות וסידורים מרחביים מתייחס ל"פד תאי" או "פיצה מרגריטה" או "תיקי עוף מסאלה".
אבולוציה של הארכיטקטורה
הארכיטקטורות ששימשו לזיהוי מזון השתנו משמעותית בעשור האחרון:
| ארכיטקטורה | שנה | חידוש מרכזי | דיוק בזיהוי מזון |
|---|---|---|---|
| AlexNet | 2012 | הוכיח כי רשתות CNN עמוקות הן ברות קיימא | ~55% top-1 על Food-101 |
| VGGNet | 2014 | רשתות עמוקות יותר עם פילטרים קטנים | ~72% top-1 על Food-101 |
| GoogLeNet/Inception | 2014 | חציית תכונות ברמות שונות | ~78% top-1 על Food-101 |
| ResNet | 2015 | חיבורים מדלגים המאפשרים רשתות עמוקות יותר | ~85% top-1 על Food-101 |
| EfficientNet | 2019 | קנה מידה משולב של עומק/רוחב/רזולוציה | ~91% top-1 על Food-101 |
| Vision Transformers (ViT) | 2020 | מנגנוני תשומת לב להקשר גלובלי | ~93% top-1 על Food-101 |
| ארכיטקטורות היברידיות מודרניות | 2023-2025 | מיזוג CNN-Transformer עם תשומת לב מודעת לאזורים | ~96%+ top-1 על מערכי נתונים מורחבים |
הסטנדרט להערכת Food-101 (101 קטגוריות מזון, 101,000 תמונות) היה מערך ההערכה הסטנדרטי במשך שנים. מערכות מודרניות כמו זו של Nutrola פועלות על קנה מידה הרבה יותר גדול, עם מעל 130,000 פריטי מזון ניתנים לזיהוי, מה שדורש פרדיגמות אימון שמעבר לסטנדרטים האקדמיים.
זיהוי פריטים מרובים: לראות הכל על הצלחת
מעבר לסיווג מזון בודד
מערכות זיהוי מזון מוקדמות יכלו לזהות מזון אחד בלבד בתמונה. תמונה של צלחת עם אורז, קארי ולחם נאן הייתה מסווגת כאחד מהשלושה, תוך החמצת האחרים לחלוטין. ארוחות אמיתיות אינן כל כך פשוטות.
זיהוי פריטים מרובים דורש גישה ארכיטקטונית שונה. במקום לסווג את התמונה כולה כקטגוריה אחת, המערכת צריכה:
- לזהות אזורי עניין (איפה נמצאים הפריטים השונים בתמונה?)
- לס segment את האזורים (איפה נגמר האורז והקארי מתחיל?)
- לסווג כל אזור באופן עצמאי (אזור זה הוא אורז, זהו קארי עוף, זהו נאן)
- לטפל בפריטים חופפים (הרוטב על האורז הוא חלק מהקארי, לא פריט נפרד)
מסגרות זיהוי אובייקטים למזון
זיהוי מזון מרובה פריטים מודרני מתבסס על מסגרות זיהוי אובייקטים שפותחו במקור עבור משימות ראיית מחשב כלליות:
- גישות מבוססות אזורים (נובעות מ-Faster R-CNN) מייצרות אזורים מועמדים ומסווגות כל אחד. אלו מדויקות אך יקרות מבחינה חישובית.
- גישות חד-פעמיות (נובעות מ-YOLO ו-SSD) מנבאות קופסאות גבול וסיווגים במעבר אחד, מה שמאפשר זיהוי בזמן אמת על מכשירים ניידים.
- גישות סגמנטציה סמנטית (נובעות מ-U-Net ו-Mask R-CNN) מייצרות מפות מזון ברמת פיקסל, ומספקות גבולות מדויקים בין פריטים.
מערכת Snap & Track של Nutrola משתמשת בגישה היברידית המותאמת לאינפרנציה ניידת. הצינור פועל ביעילות על המכשיר לזיהוי ראשוני, עם עיבוד בצד השרת עבור סצנות מורכבות או פריטים מעורפלים. זה שומר על חוויית המשתמש מהירה, בדרך כלל מתחת לשתי שניות מתפיסת התמונה ועד לפירוט התזונתי, תוך שמירה על דיוק גבוה.
טיפול במבנים מורכבים של ארוחות
חלק מהארוחות מציגות אתגרים מבניים שזיהוי פשוט אינו יכול לפתור:
- מאכלים בשכבות (לזניה, סנדוויצ'ים, בוריטו): המערכת צריכה להסיק על מרכיבים פנימיים מתוך רמזים חיצוניים וידע הקשרי.
- מאכלים מעורבים (טיגון, תבשילים, קאסרולות): מרכיבים בודדים משולבים לתוך מסה חזותית אחת. המערכת משתמשת בניתוח טקסטורה, הפצת צבעים ורמזים הקשריים כדי להעריך את ההרכב.
- הצגות מפורקות (ארוחות בקערה, קופסאות בנטו, טאפאס): פריטים קטנים מרובים במיכלים נפרדים דורשים זיהוי וסיווג נפרדים.
- משקאות לצד מזון: הבחנה בין כוס מיץ תפוזים, שייק מנגו ותה קר תאילנדי דורשת ניתוח צבע, אטימות, סוג מיכל והקשר.
נתוני אימון: היסוד לאיכות הזיהוי
דרישות קנה מידה ומגוון
מערכת זיהוי מזון טובה רק כמו הנתונים שעליהם היא אומנה. בניית מודל שמזהה מעל 130,000 מזונות מ-50 מדינות דורשת מערך אימון בקנה מידה ומגוון יוצאי דופן.
ממדי איכות נתוני האימון המרכזיים:
נפח: מודלים מודרניים לזיהוי מזון דורשים מיליוני תמונות מזון מתויגות. כל קטגוריית מזון צריכה מאות עד אלפי דוגמאות המראות הכנות, מצגות, תנאי תאורה, זוויות וגדלי מנות שונים.
מגוון: "חזה עוף" שצולם במטבח יפני נראה שונה מזה במטבח ברזילאי, שנראה שונה מזה במטבח ניגרי. נתוני האימון צריכים לייצג את המגוון הזה, אחרת המודל ייכשל במטבחים שלא ראה.
דיוק תיוג: כל תמונה חייבת להיות מתויגת נכון עם פריט המזון הספציפי, ולא רק עם הקטגוריה הכללית. "סלמון בגריל עם רוטב טריאקי" שונה תזונתית מ"סלמון בגריל עם חמאת לימון", ותיוגי האימון צריכים לתפוס את ההבחנה הזו.
שונות במנות: אותו מזון שצולם ב-100 גרם וב-300 גרם חייב להיות מיוצג בנתוני האימון כך שהמודל יוכל ללמוד להעריך כמות, ולא רק זהות.
אסטרטגיות הגברת נתונים
איסוף נתונים גולמיים אינו יכול לכסות כל הצגה אפשרית של כל מזון. טכניקות הגברת נתונים מרחיבות את מערך האימון היעיל:
- שינויים גיאומטריים: סיבוב, הפיכה והגדלת תמונות כך שהמודל יוכל לזהות מזון ללא קשר לכיוון הצלחת.
- שונות צבע ותאורה: התאמת בהירות, ניגודיות ואיזון לבן כדי לדמות תנאי תאורה שונים (תאורת מסעדה, אור פלורסנטי במטבח, אור טבעי בחוץ, צילום פלאש).
- חסימה סינתטית: חסימת חלקים מתמונות מזון באופן אקראי כדי לאמן את המודל לזהות פריטים גם כאשר הם מוסתרים جزئית.
- העברת סגנון: יצירת תמונות סינתטיות ששומרות על זהות המזון תוך שינוי הרקע, סגנון ההגשה וכלי האוכל.
למידה מתמשכת מנתוני משתמשים
עם מעל 2 מיליון משתמשים פעילים שמזינים ארוחות מדי יום, המערכת של Nutrola נהנית ממעגל משוב מתמשך. כאשר משתמש מתקן פריט מזון שזוהה בטעות, התיקון הזה הופך לאות אימון. עם הזמן, השיפור המונע על ידי המשתמשים פותר מקרים קצה ושונות במזון אזורי שלא ניתן היה לצפות ממערך האימון הראשוני.
זה במיוחד בעל ערך עבור:
- מנות אזוריות שעשויות לא להופיע במערכי נתונים אקדמיים
- מגמות מזון מתפתחות (מוצרים חדשים, מטבחים מעורבים, מתכונים ויראליים)
- מוצרים ספציפיים למותג שבהם האריזות וההצגות משתנות עם השווקים האזוריים
- ארוחות ביתיות שנראות שונות מהצגות במסעדות
הערכת מנות: הבעיה הקשה יותר
מדוע הערכת מנות חשובה יותר מהזיהוי
זיהוי נכון של פריט מזון הוא רק חצי מהבעיה. ההבדל התזונתי בין מנה של 100 גרם ל-250 גרם פסטה הוא 230 קלוריות, מספיק כדי לקבוע דיאטה. הערכת מנות מתמונה אחת היא, במובנים רבים, האתגר הטכני הקשה יותר.
הערכת עומק וסקאלה
תמונה דו-ממדית חסרה את המידע על עומק הנדרש למדוד ישירות את נפח המזון. המערכת צריכה להסיק על תכונות תלת-ממדיות מתוך רמזים דו-ממדיים:
- אובייקטים ייחודיים: צלחות, קערות, כלי אוכל וידיים בפריים מספקים רמזי קנה מידה. צלחת ערב סטנדרטית (בערך 26 ס"מ קוטר) משמשת כעוגן להערכת גודל כל מה שנמצא עליה.
- גיאומטריית פרספקטיבה: הזווית שבה התמונה צולמה משפיעה על הגודל המופיע. צלחת שצולמה מלמעלה נראית שונה מאחת שצולמה בזווית של 45 מעלות. המערכת מעריכה את זווית המצלמה ומתקנת עיוותי פרספקטיבה.
- מודלים של צפיפות ספציפית למזון: אותו נפח של חסה ובשר סטייק יש להם משקלים ותוכן קלורי שונים לחלוטין. המערכת משתמשת ברמזי צפיפות ספציפיים למזון כדי להמיר נפח מוערך למשקל מוערך.
- הפצות מנות נלמדות: רמזים סטטיסטיים ממיליוני ארוחות שהוזנו מספקים מידע על גדלי מנות צפויים. אם המודל מזהה "קערת שיבולת שועל", הוא יודע שהמנה הממוצעת היא בערך 250 גרם ומשתמש ברמז הזה כדי להגביל את ההערכה שלו.
מדדי דיוק
כמה מדויקת היא הערכת המנות מבוססת AI? מדדי מחקר מספקים הקשר:
| שיטה | שגיאה ממוצעת (% ממשקל אמיתי) |
|---|---|
| הערכה חזותית אנושית (לא מאומנת) | 40-60% |
| הערכה חזותית אנושית (דיאטנית מאומנת) | 15-25% |
| הערכת AI בתמונה אחת (עידן 2020) | 20-30% |
| הערכת AI בתמונה אחת (מצב האומנות הנוכחי, 2025) | 10-20% |
| הערכת AI עם אובייקט ייחודי | 8-15% |
| מדידת מזון במשקל (סטנדרט זהב) | <1% |
מערכות AI הנוכחיות אינן מתקרבות למאזן מזון, אך הן מתעלות באופן עקבי על הערכה אנושית לא מאומנת ומתקרבות לדיוק של דיאטניות מאומנות. עבור רוב המקרים של מעקב, רמת דיוק זו מספיקה כדי לתמוך בתובנות תזונתיות משמעותיות.
שכבת המיפוי התזונתי
מזיהוי חזותי לנתוני תזונה
זיהוי "חזה עוף בגריל" בתמונה הוא שימושי רק אם הזיהוי הזה מתאם לנתוני תזונה מדויקים. כאן נכנסת לתמונה מסד הנתונים המאומת של Nutrola.
שכבת המיפוי מחברת כל סיווג חזותי לכניסת מסד נתונים ספציפית המכילה:
- פיצול מאקרו (קלוריות, חלבון, פחמימות, שומן)
- פרופיל מיקרו (ויטמינים, מינרלים)
- וריאציות בגודל המנה
- התאמות שיטת הכנה (חזה עוף בגריל לעומת חזה עוף מטוגן יש להם תוכן שומן שונה משמעותית)
- וריאציות אזוריות וספציפיות למותג
המיפוי הזה אינו פשוט טבלת חיפוש. המערכת מתחשבת ב:
- זיהוי שיטת בישול: רמזים חזותיים (שחמה, ברק של שמן, סימני חריכה) עוזרים לקבוע אם המזון בושל, טוגן, נאפה או מאודה, כל אחת מהן משנה את הפרופיל התזונתי.
- הערכה של רטבים ותוספות: רטבים, רטבים, גבינות ותוספות נראים מזוהים ותורמים את חלקם התזונתי לפריט המזון הבסיסי.
- הערכה של ארוחות מורכבות: עבור מנות מעורבות שבהן המתכונים המדויקים אינם ידועים, המערכת משתמשת במודלים סטטיסטיים של הרכבים טיפוסיים כדי להעריך את תוכן המקרו והמיקרו.
ההבדל בהכנה
רבות ממערכות זיהוי המזון מקשרות לנתוני תזונה לא מאומתים, שנוצרו על ידי משתמשים. זה מביא לטעויות מצטברות: גם אם הזיהוי החזותי נכון, הנתונים התזונתיים שאליהם הוא מתייחס עשויים להיות שגויים. הגישה של Nutrola לשמור על מסד נתונים מאומת על ידי דיאטנים מבטלת את מקור השגיאה השני הזה, ומבטיחה שהזיהוי הנכון מוביל למידע תזונתי נכון.
מקרים קצה ואתגרים מתמשכים
היכן שמערכות נוכחיות מתקשות
שקיפות לגבי מגבלות היא חשובה כמו הדגשת יכולות. מערכות זיהוי המזון הנוכחיות, כולל המערכת של Nutrola, מתמודדות עם אתגרים מתמשכים ב:
- מרכיבים מוסתרים: התוכן התזונתי של קערת שייקים תלוי במה שמעורב בפנים, שאינו נראה בתמונה. המערכת מסתמכת על מודלים של מתכונים נפוצים ויכולה לבקש מהמשתמש מידע נוסף.
- מאכלים דומים מאוד: הבחנה בין מזונות חזותית זהים (למשל, פירה רגיל לעומת פירה כרובית) לעיתים דורשת אישור מהמשתמש.
- הצגות לא שגרתיות: מזונות המוצגים בדרכים לא מוכרות, כמו גסטרונומיה מולקולרית או הגשה אמנותית מאוד, עשויים לבלבל את מערכות הזיהוי.
- תנאי תאורה קיצוניים: מסעדות חשוכות מאוד או צילום פלאש חזק מפחיתים את איכות התמונה ומפחיתים את דיוק הזיהוי.
- מזונות ארוזים ללא תוויות נראות: סנדוויץ' עטוף או מיכל סגור מספקים מידע חזותי מוגבל.
כיצד Nutrola מתמודדת עם חוסר ודאות
כאשר ה-AI אינו בטוח בזיהוי שלו, המערכת מפעילה מספר אסטרטגיות:
- הצעות Top-N: במקום להתחייב לזיהוי בודד, המערכת מציגה את האפשרויות הסבירות ביותר ומאפשרת למשתמש לבחור את הנכונה.
- שאלות הבהרה: העוזר הדיאטני של AI עשוי לשאול שאלות נוספות: "האם זה אורז לבן או אורז כרובית?" או "האם זה מכיל רוטב מבוסס שמנת או רוטב מבוסס עגבניות?"
- תוספת קולית: משתמשים יכולים להוסיף הקשר מילולי לתמונה: לצלם תמונה ולומר "זה מרק עדשים ביתי של אמא שלי עם חלב קוקוס." הקלט הקולי מסייע להבהיר את הוויזואלי.
- למידה מתיקונים: כל תיקון של משתמש משפר את הדיוק העתידי עבור פריטים דומים.
צינור העיבוד: מתמונה לתזונה בפחות משתי שניות
הנה מבט מפושט על מה קורה כאשר משתמש Nutrola מצלם תמונת מזון:
שלב 1 (0-200ms): עיבוד תמונה. התמונה מנורמלת לגודל, כיוון ואיזון צבע. בדיקות איכות בסיסיות מבטיחות שהתמונה ניתנת לשימוש.
שלב 2 (200-600ms): זיהוי פריטים מרובים. מודל הזיהוי מזהה אזורים המכילים פריטי מזון שונים ומסמן אזורי גבול סביב כל אחד.
שלב 3 (600-1000ms): סיווג לפי אזור. כל אזור מזוהה מסווג מול הטקסונומיה של מעל 130,000 מזונות. ציון ביטחון מוקצה לכל סיווג.
שלב 4 (1000-1400ms): הערכת מנות. נפח ומשקל מוערכים עבור כל פריט מזוהה באמצעות הסקת עומק, קנה מידה של אובייקט ייחודי ומודלים של צפיפות ספציפית למזון.
שלב 5 (1400-1800ms): מיפוי תזונתי. כל פריט מסווג ומוערך מתואם לכניסת מסד הנתונים המאומת על ידי דיאטנים. התאמות שיטת הכנה מוחלות.
שלב 6 (1800-2000ms): הרכבת התוצאה. הפירוט התזונתי המלא מורכב ומוצג למשתמש, עם פריטים בודדים המפורטים וסיכום כולל של הארוחה.
הצינור כולו בדרך כלל מסתיים בפחות משתי שניות על סמארטפונים מודרניים, כאשר הזיהוי והסיווג הראשוניים מתבצעים על המכשיר וההקשר התזונתי מתחבר למסד הנתונים של Nutrola בענן.
מה קורה בהמשך: העתיד של AI לזיהוי מזון
יכולות מתפתחות
תחום AI לזיהוי מזון ממשיך להתקדם במהירות:
- מעקב מבוסס וידאו המנתח סשנים של אכילה במקום תמונות בודדות, משפר את הערכת המנות דרך זוויות מרובות
- זיהוי ברמת המרכיב המזהה רכיבים בודדים בתוך מנות מעורבות במקום להתייחס אליהם כאל רשומות בודדות
- ניתוח תהליך בישול שיכול להעריך שינויים תזונתיים ממצב גולמי למבושל על סמך ראיות חזותיות של שיטת הבישול והמשך הזמן
- מדידת מנות בעזרת AR המשתמשת בחיישני עומק של סמארטפונים (LiDAR) להערכות נפח מדויקות יותר
- למידה חוצת מודלים המשלבת מידע חזותי, טקסטואלי (תפריטים, תוויות) והקשרי (מיקום, שעה ביום) לזיהוי מדויק יותר
יתרון הקנה מידה
עם מעל 2 מיליון משתמשים ב-50 מדינות שמזינים מיליוני ארוחות, מערכת הזיהוי של Nutrola משתפרת בקצב שלא ניתן להשיג במחקר אקדמי. כל ארוחה מוזנת היא נקודת נתון. כל תיקון הוא אות אימון. כל מטבח חדש שנפגשים הוא הרחבה של הידע של המודל. אפקט ה-Flywheel הזה מבטיח שהמערכת מתייצבת להיות מדויקת יותר בכל חודש, במיוחד עבור הקטגוריות הארוכות של מזונות אזוריים ותרבותיים שמערכות קטנות יותר אינן יכולות ללמוד.
השורה התחתונה
AI לזיהוי מזון הוא אחד מהיישומים הטכניים המאתגרים ביותר של ראיית מחשב, ודורש פתרונות לבעיות שרוב מערכות סיווג התמונות אינן מתמודדות: שונות חזותית קיצונית בתוך קטגוריות, זיהוי פריטים מרובים על צלחות עמוסות, הערכת מנות תלת-ממדיות מתמונות דו-ממדיות, ומיפוי לנתוני תזונה מאומתים על פני מעל 130,000 פריטים מעשרות מטבחים.
הטכנולוגיה שמאחורי תכונת Snap & Track של Nutrola מייצגת את ההתכנסות של רשתות עצביות קונבולוציוניות עמוקות, ארכיטקטורות זיהוי אובייקטים מתקדמות, מודלים סטטיסטיים להערכת מנות ומסד נתונים תזונתי מאומת על ידי דיאטנים. התוצאה היא מערכת שיכולה להפוך תמונה רגילה של הצהריים שלך לפירוט תזונתי מפורט בפחות משתי שניות.
זה לא מושלם. אף מערכת נוכחית אינה. אבל זה מדויק מספיק כדי להפוך את המעקב התזונתי לפרקטי עבור מיליוני אנשים שמעולם לא היו שוקלים את המזון שלהם או מחפשים באופן ידני במסד נתונים. וזה משתפר בכל יום, לומד מכל ארוחה שמשתמשים שלו משתפים. השילוב הזה של יכולת נוכחית ושיפור מתמשך הוא מה שהופך את זיהוי המזון המופעל על ידי AI לא רק להישג טכני, אלא לכלי מעשי לתזונה טובה יותר.
מוכנים לשנות את מעקב התזונה שלכם?
הצטרפו לאלפים ששינו את מסע הבריאות שלהם עם Nutrola!