המחקר מאחורי טכנולוגיית זיהוי המזון של Nutrola
איך Nutrola מזהה מזון מתמונה בפחות משלוש שניות? התעמקות במחקר של ראיית מחשב, למידה עמוקה ומדע תזונה שמניע את ה-AI שלנו.
כשאתה מצלם את ארוחת הערב שלך ו-Nutrola מחזירה לך פירוט תזונתי מלא בפחות משלוש שניות, מאחוריה פועלים עשורים של מחקר בראיית מחשב, מדע תזונה והנדסת AI. מה שנראה כרגע אחד של זיהוי הוא למעשה סדרה של מודלים מיוחדים, כל אחד פותר בעיה מדעית שונה. מהרגע שהמצלמה שלך מצלמת ועד שהערכים של המקרונוטריינטים מופיעים על המסך, התמונה שלך עוברת דרך צינור שנבנה על בסיס מחקר יסודי ממוסדות כמו סטנפורד, MIT, Google DeepMind ומעבדת ראיית מחשב של ETH ציריך.
מאמר זה עוקב אחרי הצינור שלב אחר שלב, תוך ציון המחקר והקונספטים הטכניים המאפשרים את זיהוי המזון של Nutrola.
צינור ראיית מחשב
זיהוי המזון של Nutrola אינו מודל אחד. מדובר בצינור רב-שלבי שבו כל שלב מטפל במשימה נפרדת, והתוצאה של שלב אחד משמשת כקלט לשלב הבא.
שלב 1 -- עיבוד תמונה מוקדם. לפני שכל רשת עצבית רואה את התמונה שלך, התמונה הגולמית עוברת נורמליזציה. זה כולל שינוי גודל לרזולוציה קלט סטנדרטית, התאמה לאיזון צבעים ושינויי חשיפה, והחלת טרנספורמציות של הגברת נתונים במהלך האימון. מחקר של קריז'בסקי, סוטסקבר ו-הינטון במאמר המפורסם שלהם מ-2012 על ImageNet הראה שעיבוד מוקדם והגברת נתונים משפרים באופן דרמטי את הכללה ברשתות עצביות קונבולוציוניות עמוקות (CNNs). צינורות מודרניים מרחיבים זאת עם טכניקות כמו CutMix (יונ et al., 2019) ו-RandAugment (Cubuk et al., 2020), שמלמדות את המודל להיות עמידה בפני חוסרים ושינויים בצבעים הנפוצים בצילומי מזון.
שלב 2 -- זיהוי וסגמנטציה של מזון. לאחר העיבוד המוקדם, התמונה עוברת דרך מודל זיהוי אובייקטים שמזהה וממקם כל פריט מזון נפרד על הצלחת. שלב זה מתבסס במידה רבה על מחקר ברשתות עצביות קונבולוציוניות מבוססות אזורים. Faster R-CNN (רן et al., 2015) קבע את הפרדיגמה של רשתות הצעת אזורים, בעוד ארכיטקטורות עדכניות יותר כמו DETR (קריון et al., 2020) ממחקר AI של פייסבוק משתמשות בתשומת לב מבוססת טרנספורמר כדי לחסל לחלוטין רכיבים מעוצבים ידנית כמו תיבות עוגן. כדי להשיג דיוק ברמת הפיקסל, מודלים של סגמנטציה סמנטית מבוססים על ארכיטקטורות כמו DeepLab (צ'ן et al., 2017) מקצים כל פיקסל בתמונה לקטגוריית מזון, דבר שהוא קריטי למנות מעורבות שבהן מרכיבים חופפים.
שלב 3 -- סיווג מזון. כל אזור מזון מזוהה מסווג לאחר מכן. עמוד השדרה של מסווגי המזון המודרניים נובע מארכיטקטורות שאושרו על ImageNet (דנג et al., 2009), מאגר הנתונים של 14 מיליון תמונות מסומנות שהניע את מהפכת הלמידה העמוקה. מאגרי נתונים ספציפיים למזון כמו Food-101 (בוסארד et al., 2014), שמכיל 101,000 תמונות ב-101 קטגוריות, ו-UECFOOD-256 (קאוואנו ויאנאי, 2015), שמכסה 256 קטגוריות מזון עם דגש על מטבח יפני, מספקים את נתוני האימון הספציפיים הנדרשים כדי לדייק את הארכיטקטורות הכלליות הללו לזיהוי מזון.
שלב 4 -- הערכת מנות. לאחר זיהוי מה יש על הצלחת, המערכת מעריכה כמה מכל פריט נוכח. זו הבעיה הקשה ביותר שעדיין לא נפתרה במחקר זיהוי המזון וכוללת הערכת עומק והבנה וולומטרית מתמונה דו-ממדית אחת.
שלב 5 -- מיפוי תזונתי. לבסוף, פריט המזון המסווג וגודל המנה המוערך שלו ממופים לבסיס נתונים תזונתי מאושר כדי להפיק ערכי קלוריות, חלבון, פחמימות, שומנים ומיקרונוטריינטים.
כל אחד מהשלבים הללו מייצג תחום נפרד של מחקר פעיל. הקטעים הבאים בוחנים את השלבים הטכניים המאתגרים ביותר בפירוט.
סיווג מזון: מעבר ל"זה סלט"
לזהות סלט מול סטייק זה פשוט עבור כל מסווג מודרני. האתגר האמיתי מתחיל כאשר המערכת צריכה להבחין בין מנות דומות ויזואלית: עוף טיקה מסאלה מול עוף חמאה, פד תאי מול אטריות שיכורות, או סלט יווני מול פאטוש. מנות אלו חולקות צבעים, מרקמים ודפוסים מבניים אך שונות באופן משמעותי במרכיבים ובצפיפות קלוריות.
למידת העברה והתאמת תחום
הגישה הסטנדרטית לסיווג מזון מתבססת על למידת העברה, טכניקה שהוגדרה על ידי יוסינסקי et al. (2014), שבה מודל שהוכשר מראש על מאגר נתונים כללי גדול כמו ImageNet מתכוונן על נתונים ספציפיים למזון. השכבות התחתונות של הרשת, שמזהות קצוות, מרקמים וצורות בסיסיות, מועברות היטב בין תחומים. השכבות הגבוהות יותר, שמקודדות משמעות סמנטית, מאומנות מחדש כדי ללמוד תכונות ספציפיות למזון כמו ההבדל בין הברק של משטח מטוגן לבין הגימור המאט של מבושל באדים.
מחקר של חסן ג'אד et al. (2016) הראה שכאשר מתכווננים את InceptionV3 על Food-101, הושגה דיוק של 88.28 אחוז, קפיצה משמעותית לעומת גישות קודמות שהשתמשו בתכונות מעוצבות ידנית. עבודות עדכניות יותר המשתמשות ב-Vision Transformers (דוסוביצקי et al., 2020) והגרסאות הספציפיות למזון שלהן דחפו את הדיוק על Food-101 מעל 93 אחוז.
סיווג רב-תיוג עבור מנות מורכבות
ארוחות אמיתיות נדירות מכילות פריט אחד בלבד. צלחת ערב טיפוסית עשויה לכלול סלמון בגריל, אספרגוס קלוי, קינואה ורוטב חמאת לימון. סיווג רב-תיוג, שבו תמונה אחת יכולה לקבל מספר תגים עצמאיים, פותר את הבעיה הזו. מחקר של וואנג et al. (2016) על ארכיטקטורות CNN-RNN לסיווג תמונות רב-תיוג קובע מסגרות שמביאות בחשבון דפוסי הופעה משותפים של תגים. בתחום המזון, זה אומר שהמודל לומד ש Rice ו-Curry מופיעים לעיתים קרובות יחד, מה שמשמש כסיגנל הקשר שמשפר את הדיוק של פריטי המזון הבודדים.
Nutrola מרחיבה זאת עם מערכת סיווג היררכית. במקום לחזות תווית שטוחה, המערכת קודם כל מסווגת את הקטגוריה הרחבה של המזון (דגן, חלבון, ירק, רוטב), ואז מצמצמת לפריט הספציפי בתוך אותה קטגוריה. גישה דו-שלבית זו מפחיתה בלבול בין פריטים דומים ויזואלית מקטגוריות שונות ומשקפת כיצד מאגרי נתונים תזונתיים מאורגנים.
הערכת מנות: האתגר התלת-ממדי
זיהוי מה המזון על הצלחת פותר רק חצי מהבעיה. מנת עוף במשקל 100 גרם מכילה 165 קלוריות. מנת 250 גרם מכילה 412 קלוריות. ללא הערכת מנות מדויקת, אפילו זיהוי מזון מושלם מייצר ספירות קלוריות לא אמינות.
הערכת עומק מונוקולרית
הערכת נפח המזון מתמונה דו-ממדית אחת דורשת מהמערכת להסיק עומק, בעיה הידועה כהערכת עומק מונוקולרית. אייגן, פושרס' ופרגוס (2014) פרסמו עבודה בסיסית שהראתה כי CNNs יכולים לחזות מפות עומק ברמת פיקסל מתמונות בודדות. מחקר עדכני יותר של ראנפטל et al. (2021) הציג את MiDaS, מודל שהוכשר על מאגרי נתונים מעורבים שמפיקים הערכות עומק יחסיות חזקות על פני סצנות מגוונות.
ליישומים בתחום המזון, הערכת עומק מאפשרת למערכת להבחין בין שכבת רוטב דקה המפוזרת על פני צלחת לבין קערה עמוקה של מרק. בשילוב עם הגיאומטריה הידועה של אובייקטים ייחודיים כמו צלחות, קערות וכלים, מפות עומק יכולות להיות מומרות להערכות נפח משוערות.
גישות גיאומטריות להערכת נפח
מחקר מאוניברסיטת טוקיו (אוקמוטו ויאנאי, 2016) הראה שניתן להעריך את נפח המזון על ידי התאמת פרימיטיבים גיאומטריים, כמו צילינדרים, חצאים ופריזמות מלבניות, לאזורי המזון המפולחים. תלולית של אורז מתאימה לחצי אליפסה. כוס חלב מתאימה לצילינדר. פרוסת לחם מתאימה לפריזמה מלבנית.
הערכות גיאומטריות אלו, בשילוב עם ידע על צפיפות נלמדת (המערכת יודעת שנפח מסוים של פירה שוקל יותר מאותו נפח של פופקורן), מייצרות הערכות משקל שהמחקר הראה שנופלות בטווח של 15 עד 20 אחוז מהאמת עבור רוב המזונות הנפוצים. Nutrola משפרת את ההערכות הללו עוד יותר באמצעות גישה אנסמבלית ייחודית המשלבת חשיבה גיאומטרית עם מודלים של רגרסיה נלמדת שהוכשרו על עשרות אלפי תמונות מזון עם משקלים ידועים.
כיול אובייקטים ייחודיים
חלק ממערכות זיהוי המזון משתמשות באובייקטים ייחודיים ידועים בסצנה כדי לכייל את הסקלה. צלחת ערב סטנדרטית יש לה קוטר של כ-26 סנטימטרים. כרטיס אשראי מודד 85.6 על 53.98 מילימטרים. כאשר המערכת מזהה אובייקטים כאלה, היא יכולה לקבוע סקלה בעולם האמיתי שמשפרת באופן משמעותי את הערכות הנפח והמשקל. מחקר של פאנג et al. (2016) באוניברסיטת פרדו הראה שכיול מבוסס צלחות הפחית את שגיאת הערכת המנות בכ-25 אחוזים בהשוואה לגישות שלא כוילו.
שכבת בסיס הנתונים המאושרת
זיהוי AI בלבד אינו מספיק כדי לספק ספירות קלוריות מדויקות. גם אם מודל משיג דיוק של 99 אחוז בזיהוי חזה עוף בגריל, הפלט התזונתי הסופי תלוי לחלוטין באיכות בסיס הנתונים שאליו הוא ממופה.
כאן גישת Nutrola שונה מרבים מהמתחרים. רוב אפליקציות המעקב אחר מזון מתבססות על בסיסי נתונים שנאספו על ידי הקהל, שבהם כל משתמש יכול להגיש מידע תזונתי. מחקרים מצאו שבסיסי נתונים של מזון שנאספו על ידי הקהל מכילים שיעורי שגיאות בין 15 ל-30 אחוז, כאשר כמה רשומות שונות מהערכים המאושרים במעבדה ביותר מ-50 אחוז עבור מקרונוטריינטים מרכזיים.
Nutrola שומרת על בסיס נתונים תזונתי מאושר ב-100 אחוז. כל רשומה נבדקת מול מקורות סמכותיים כולל USDA FoodData Central, טבלאות ההרכב של מקנז ו-וידווסון שמשמשות את שירות הבריאות הלאומי של בריטניה, וניתוחים תזונתיים שנבדקו על ידי עמיתים. זה אומר שאפילו אם שכבת הזיהוי של ה-AI מציגה שגיאה קטנה בזיהוי המזון או בהערכת המנות, הנתונים התזונתיים שאליהם היא ממפה הם אמינים.
שכבת האימות גם מטפלת בפרט עדין שהגישות של AI טהור מפספסות: שיטת ההכנה משפיעה על התוכן התזונתי. חזה עוף במשקל 150 גרם בגריל מכיל כ-165 קלוריות, אך אותו חזה מטוגן בשמן זית מכיל כ-230 קלוריות. בסיס הנתונים של Nutrola תופס את השינויים התלויים בשיטת ההכנה, ומודל הזיהוי מאומן להבחין בין שיטות בישול כאשר רמזים ויזואליים נוכחים, כמו ההבדל בין משטח בגריל למטוגן.
למידה מתמשכת ושיפור
זיהוי המזון אינו בעיה שנפתרת פעם אחת ומופעלת. המטבחים מתפתחים, מנות חדשות צצות וציפיות המשתמשים גדלות. מערכת Nutrola מיועדת לשיפור מתמשך באמצעות מספר מנגנונים המבוססים על מחקר למידת מכונה.
למידה פעילה
למידה פעילה, שהוגדרה על ידי סטלס (2009), היא אסטרטגיה שבה המודל מזהה את הדוגמאות שהוא least confident about ומעדיף את אלו לסקירה ולתיוג על ידי בני אדם. כאשר מערכת Nutrola נתקלת במנה שהיא לא יכולה לסווג בביטחון גבוה, התמונה הזו מסומנת לסקירה על ידי מומחה. לאחר תיוג, היא נכנסת לצינור האימון והמודל משתפר בדיוק במקרים שבהם הוא היה חלש ביותר.
גישה זו הרבה יותר יעילה מבחינת נתונים מאשר לאסוף תמונות אימון נוספות באקראי. מחקרים הראו באופן עקבי שלמידה פעילה יכולה להשיג דיוק מקביל של המודל עם 30 עד 60 אחוז פחות נתונים מסומנים בהשוואה לדגימה אקראית.
טיפול במזונות חדשים ובמטבחים אזוריים
אחת האתגרים המשמעותיים ביותר בזיהוי המזון היא הכיסוי של מנות אזוריות ותרבותיות ספציפיות. מודל שהוכשר בעיקר על מטבח מערבי עשוי להתקשות עם קינוחים מדרום-מזרח אסיה, תבשילים מאפריקה המערבית או מזונות מותססים סקנדינביים. Nutrola מתמודדת עם זה באמצעות קמפיינים ממוקדים לאיסוף נתונים המתמקדים במטבחים לא מיוצגים, בשילוב עם טכניקות למידה בכמה דוגמאות (וואנג et al., 2020) המאפשרות למודל ללמוד קטגוריות מזון חדשות ממספר קטן יחסית של דוגמאות.
משוב מהמשתמשים הוא קלט קריטי לתהליך הזה. כאשר משתמש מתקן מזון שזוהה לא נכון, התיקון הזה חוזר לצינור האימון. מצטבר על פני מיליוני ארוחות שנרשמו ברחבי העולם, התיקונים הללו יוצרים זרם מתמשך של נתוני אמת שמכסים בדיוק את המזונות שאנשים אמיתיים אוכלים בחיי היומיום שלהם.
איך זה מתורגם לצלחת שלך
המחקר המתואר לעיל מניב יתרונות מוחשיים שאתה חווה בכל פעם שאתה פותח את Nutrola.
רישום של שלוש שניות. כל הצינור, מעיבוד התמונה ועד חיפוש תזונתי, מתבצע בפחות משלוש שניות על סמארטפון מודרני. טכניקות אופטימיזציה של מודלים כולל קוונטיזציה (ג'ייקוב et al., 2018) וחיפוש ארכיטקטורה עצבית (זופ ו-Le, 2017) מאפשרות למודלים מורכבים לפעול ביעילות על חומרה ניידת מבלי לפגוע בדיוק.
טיפול במנות מורכבות. זיהוי רב-תיוג וסגמנטציה סמנטית מבטיחים שאין צורך לצלם כל פריט מזון בנפרד. תמונה אחת של צלחת עמוסה מפיקה פירוט תזונתי נפרד לכל רכיב.
דיוק בין-מטבחי. למידה מתמשכת ואיסוף נתונים ממוקד מבטיחים שהמערכת פועלת בין אם אתה אוכל סושי בטוקיו, טאקוס במקסיקו סיטי, אינג'רה באדיס אבבה או צלחת יום ראשון בלונדון. המודל משתפר עם כל ארוחה שנרשמת על ידי בסיס המשתמשים הגלובלי של Nutrola.
שיפור דיוק פרוגרסיבי. ככל שתשתמש ב-Nutrola יותר, כך היא משתפרת, הן עבורך באופן אישי והן עבור כל המשתמשים באופן כללי. למידה פעילה מבטיחה שהמודל מתמקד בשיפור במקרים שבהם הוא זקוק לכך ביותר.
נתוני תזונה מאושרים. בניגוד לאפליקציות שמתבססות על בסיסי נתונים שנאספו על ידי הקהל עם שיעורי שגיאה לא ידועים, כל ספירת קלוריות ש-Nutrola מחזירה מגובה בנתוני תזונה מאושרים במעבדה. ה-AI מזהה את המזון; בסיס הנתונים המאושר מבטיח שהמספרים נכונים.
שאלות נפוצות
איך ה-AI של Nutrola מזהה מזון מתמונה?
Nutrola משתמשת בצינור ראיית מחשב רב-שלבי. התמונה שלך עוברת קודם כל עיבוד מוקדם, ואז מודל זיהוי עמוק מזהה ומס segment את כל פריטי המזון על הצלחת. כל פריט מסווג באמצעות רשתות עצביות קונבולוציוניות שהותאמו על מאגרי נתונים ספציפיים למזון, גודלו מוערך באמצעות הערכת עומק והבנה וולומטרית, והתוצאה ממופה לבסיס הנתונים התזונתי המאושר של Nutrola כדי להפיק ערכי קלוריות ומקרונוטריינטים.
מהי דיוק טכנולוגיית זיהוי המזון של Nutrola?
מודלי הסיווג של Nutrola משיגים שיעורי דיוק של מעל 90 אחוזים על מדדים סטנדרטיים לזיהוי מזון, עם דיוק של מעל 95 אחוזים בשיעור העליון. עבור הערכת מנות, המערכת בדרך כלל נופלת בטווח של 15 עד 20 אחוז מהמשקל האמיתי, מה שמשווה או טוב יותר מהדיוק של תזונאים מאומנים. בשילוב עם בסיס הנתונים המאושר של Nutrola, זה מניב הערכות קלוריות אמינות בהרבה מאשר רישום ידני, אשר מחקרים מראים מדווח על צריכה נמוכה ב-10 עד 45 אחוז.
איזה מחקר ומאגרי נתונים מניעים את AI זיהוי המזון של Nutrola?
הטכנולוגיה של Nutrola מתבססת על מחקר יסודי בראיית מחשב כולל רשתות עצביות קונבולוציוניות שאושרו על ImageNet, ארכיטקטורות זיהוי אובייקטים כמו Faster R-CNN ו-DETR, ומאגרי נתונים ספציפיים למזון כולל Food-101 ו-UECFOOD-256. המערכת גם שואבת ממחקר הערכת עומק מונוקולרית עבור גודל המנות ומחקר למידה פעילה לשיפור מתמשך של המודל. כל הנתונים התזונתיים מאושרים מול מקורות סמכותיים כמו USDA FoodData Central.
האם Nutrola יכולה לזהות מספר מזונות על צלחת אחת?
כן. Nutrola משתמשת בזיהוי רב-תיוג ובסגמנטציה סמנטית כדי לזהות ולנתח בנפרד כל פריט מזון נפרד בתמונה אחת. בין אם הצלחת שלך מכילה שני פריטים או שמונה, המערכת מבודדת כל אחד, מסווגת אותו באופן עצמאי, מעריכה את גודלו ומחזירה פירוט תזונתי לכל פריט יחד עם סך הארוחה.
איך Nutrola מתמודדת עם מזונות ממטבחים ותרבויות שונות?
Nutrola משלבת נתוני אימון רחבי כיסוי עם איסוף נתונים ממוקד עבור מטבחים לא מיוצגים וטכניקות למידה בכמה דוגמאות המאפשרות למודל ללמוד קטגוריות מזון חדשות ממספר קטן יחסית של דוגמאות. תיקוני משתמשים מבסיס המשתמשים הגלובלי של Nutrola חוזרים ללא הרף לצינור האימון, ומבטיחים שהדיוק משתפר עבור המנות הספציפיות שאנשים באמת אוכלים בכל אזור ותרבות מזון.
האם זיהוי המזון של Nutrola משתפר עם הזמן?
כן. Nutrola משתמשת בלמידה פעילה, אסטרטגיית למידת מכונה שבה המערכת מזהה את התמונות שהיא least confident about ומעדיפה את אלו לסקירה על ידי מומחים ולתהליך מחדש. בשילוב עם משוב מצטבר מהמשתמשים על פני מיליוני ארוחות שנרשמו ברחבי העולם, זה אומר שהמודל משתפר באופן מתמשך. כל ארוחה שאתה רושם תורמת להפוך את הזיהוי של Nutrola ליותר מדויק עבור כל המשתמשים.
מוכנים לשנות את מעקב התזונה שלכם?
הצטרפו לאלפים ששינו את מסע הבריאות שלהם עם Nutrola!