mAP ו-IoU: מבט מעמיק על מדדי הראייה הממוחשבת להכרה במזון
עד כמה מדויקת ההכרה במזון על ידי AI? אנו מפרקים את המדדים החשובים, mAP ו-IoU, מסבירים מה הם אומרים על דיוק מעקב הקלוריות שלך, ומראים כיצד הארכיטקטורות המודרניות מתמודדות עם הבעיה הקשה ביותר ב-AI למזון: פריטים חופפים על צלחת אחת.
כאשר אפליקציית תזונה טוענת שה-AI שלה יכול "לזהות את המזון שלך מתמונה", מה זה אומר במונחים מדודים? עד כמה מדויקת ההכרה? כיצד המערכת מתמודדת עם צלחת שמכילה שישה פריטים שונים שנוגעים זה בזה? וכיצד משווים בין מערכות זיהוי מזון שונות?
התשובות טמונות בשני מדדים שהקהילה החוקרת בתחום הראייה הממוחשבת משתמשת בהם להעריך מודלים לזיהוי אובייקטים: mAP (mean Average Precision) ו-IoU (Intersection over Union). המספרים הללו קובעים אם AI למזון הוא באמת מדויק או רק מרשים בהדגמה.
הבנת IoU: המדד הבסיסי
Intersection over Union מודד עד כמה תיבת הגבול או מסכת הסגמנטציה המנוגדת חופפת עם האמת המוחלטת, המיקום והצורה האמיתיים של פריט המזון כפי שסומן על ידי אנוטטור אנושי.
החישוב פשוט:
IoU = שטח החפיפה / שטח האיחוד
ערך IoU של 1.0 משמעו שהניב תואם באופן מושלם את האמת המוחלטת. ערך IoU של 0.0 משמעו שאין חפיפה כלל. בפועל, הסף הסטנדרטי לזיהוי "נכון" בהכרה במזון הוא IoU של 0.5 או יותר, כלומר לפחות 50 אחוז חפיפה בין האזור המנוגד לאזור המזון האמיתי.
מדוע IoU חשוב לתזונה
IoU משפיע ישירות על הערכת המנות. אם תיבת הגבול של המודל תופסת רק 60 אחוז מהאורז בצלחת שלך (IoU מתחת לסף הדיוק לסגמנטציה מדויקת), הערכת המנה תהיה נמוכה. מצד שני, אם תיבת הגבול גדולה מדי וכוללת חלק מהקארי הסמוך, הערכת הקלוריות של האורז תתנפח על ידי הפרופיל התזונתי של הקארי.
לצלחות פשוטות עם פריט מזון אחד במרכז התמונה, IoU יחסית קל לאופטימיזציה. האתגר מתגבר באופן דרמטי עם צלחות מורכבות ורבות פריטים.
הבנת mAP: המדד ברמת המערכת
Mean Average Precision מאגד את דיוק הזיהוי לכל קטגוריות המזון ורמות הביטחון לניקוד אחד. הוא עונה על השאלה: בכל סוגי המזון שהמודל יכול לזהות, עד כמה הוא מזהה ומסווג אותם בצורה אמינה?
החישוב כולל:
- דיוק: מתוך כל הזיהויים שהמודל ביצע, כמה היו נכונים?
- זכירה: מתוך כל פריטי המזון האמיתיים הנוכחים, כמה מצא המודל?
- דיוק ממוצע (AP): השטח מתחת לעקומת הדיוק-זכירה עבור קטגוריית מזון אחת
- mAP: הממוצע של ערכי AP בכל קטגוריות המזון
מודל עם mAP@0.5 של 0.85 מזהה ומסווג נכון 85 אחוז מפריטי המזון בסף IoU 0.5 בכל הקטגוריות. mAP@0.5:0.95 הוא מדד מחמיר יותר שממוצע את הביצועים על פני ספי IoU מ-0.5 עד 0.95, ומעניש מודלים שמגיעים לזיהויים רופפים אך נכשלו בסגמנטציה מדויקת.
הפער בין הדגמה למציאות
רוב ההדגמות של AI למזון מציגות תמונות של פריט אחד, מוארות היטב, מלמעלה: קערת ראמן, צלחת סושי, סלט. בתנאים הללו, מודלים מודרניים משיגים ציוני mAP@0.5 מעל 0.90. המספר הזה צונח משמעותית בתנאים אמיתיים.
גורמים שמפחיתים את ה-mAP בפועל:
- פריטים חופפים מרובים: צלחת של אורז, דאל, סבזי ורוטי שנוגעים זה בזה
- חסימה חלקית: פריט מזון אחד מוסתר חלקית מאחורי אחר
- תאורה משתנה: תאורה עמומה במסעדה מול תאורה בהירה במטבח
- זוויות לא סטנדרטיות: תמונות שצולמו מהצד ולא ישירות מלמעלה
- דמיון חזותי: אורז חום וקינואה, או סוגים שונים של דאל, שנראים כמעט זהים
ה-mAP בהכרה במזון בעולם האמיתי נופל בדרך כלל ב-10 עד 20 נקודות מתחת לביצועים בבדיקות מבוקרות.
בעיית הצלחת עם פריטים מרובים
האתגר המגדיר בהכרה במזון הוא לא לזהות פריט מזון אחד בנפרד. מדובר בזיהוי חמישה או שישה פריטים שונים על צלחת אחת שבהם הם נוגעים, חופפים וממוזגים זה בזה.
שקול ת'אלי הודי טיפוסי: אורז, שני קארים, דאל, רייטה, פפד וחריף, כולם מוגשים על צלחת אחת עם פריטים שנוגעים זה בזה. או מגש מקסיקני עם אורז, שעועית, גואקמולה, סalsa, שמנת חמוצה וטורטייה. כל פריט צריך להיות מזוהה בנפרד והערכת המנה שלו צריכה להתבצע באופן עצמאי.
סגמנטציה סמנטית מול סגמנטציה של מופעים
ישנן שתי גישות עיקריות לפתרון הבעיה הזו, וההבחנה חשובה.
סגמנטציה סמנטית מקצה לכל פיקסל בתמונה קטגוריית מזון. כל הפיקסלים שהם "אורז" מסומנים כאורז, וכל הפיקסלים שהם "קארי" מסומנים כקארי. זה עובד טוב עבור פריטים מופרדים בבירור אך נכשל כאשר קיימות שתי מופעים מאותה קטגוריה (שני קארים שונים באותה צלחת) או כאשר הגבולות מעורפלים.
סגמנטציה של מופעים מזהה כל פריט מזון כישות נפרדת, גם אם שני פריטים שייכים לאותה קטגוריה. זו הגישה הנדרשת לניתוח מדויק של צלחות עם פריטים מרובים, מכיוון שהיא מאפשרת למערכת להעריך את גודל המנה של כל פריט בנפרד.
ארכיטקטורות סגמנטציה מודרניות כמו Mask R-CNN והדור הבא שלהן מייצרות גם תווית סיווג וגם מסכת פיקסלים לכל פריט מזון מזוהה. האיכות של מסכות אלו קובעת ישירות את דיוק הערכת המנות.
ביצועי מדד: היכן אנו עומדים
תחום ההכרה במזון משתמש בכמה מדדים סטנדרטיים להערכת ביצועי המודל. הנה כיצד המצב הנוכחי מתפקד.
Food-101
המדד המקורי להכרה במזון בקנה מידה גדול, מכיל 101 קטגוריות מזון עם 1,000 תמונות כל אחת. המודלים המובילים הנוכחיים משיגים דיוק סיווג מעל 95 אחוז ב-Food-101. עם זאת, Food-101 הוא מדד סיווג (פריט מזון אחד לתמונה), ולא מדד זיהוי, ולכן הוא לא בודק תרחישי צלחות מרובות פריטים.
UECFOOD-256
מאגר נתונים של 256 קטגוריות עם אנוטציות תיבת גבול, המאפשר הערכת זיהוי. מודלים מהשורה הראשונה משיגים mAP@0.5 של כ-0.78 עד 0.82 על מאגר נתונים זה, מה שמשקף את הקושי המוגבר בזיהוי קטגוריות מרובות.
Nutrition5k
מדד עדכני יותר שמז pairing תמונות מזון עם נתונים תזונתיים אמיתיים שנמדדו באמצעות ניתוח מעבדה. מאגר נתונים זה מאפשר הערכה מקצה לקצה: לא רק "האם המודל זיהה את המזון נכון?" אלא "האם הוא ייצר הערכת קלוריות מדויקת?" הביצועים ב-Nutrition5k חושפים את ההשפעה המצטברת של שגיאות זיהוי על דיוק התזונה.
ISIA Food-500
מאגר נתונים בקנה מידה גדול עם 500 קטגוריות מזון שנלקחו ממטבחים מגוונים ברחבי העולם. הוא חושף את בעיית ההטיה התרבותית בהכרה במזון: מודלים שהוכשרו בעיקר על מאגרי נתונים מערביים מראים ירידות דיוק משמעותיות בקטגוריות מזון אסייתיות, אפריקאיות ודרום אמריקאיות.
אבולוציית הארכיטקטורה: מ-CNN ל-Vision Transformer
הארכיטקטורות של המודלים המשמשות להכרה במזון התפתחו משמעותית, וכל דור שיפר את הטיפול בפריטים מרובים על צלחת.
משפחת YOLO (YOLOv5 עד YOLOv10)
משפחת המודלים YOLO (You Only Look Once) שמה דגש על מהירות. YOLOv8 והגרסאות המאוחרות יותר משיגות mAP@0.5 של 0.75 עד 0.82 במדדי זיהוי מזון תוך כדי ביצוע חישובים בפחות מ-50 מילישניות על חומרה מודרנית. זה הופך אותן מתאימות ליישומים ניידים בזמן אמת שבהם המשתמש מצפה לתוצאות בתוך 1 עד 2 שניות לאחר צילום התמונה.
המסחר הוא שהמודלים של YOLO יכולים להיתקל בקשיים עם פריטים חופפים הדוקים שבהם ההגדרה המדויקת של הגבולות היא קריטית להערכת המנות.
Vision Transformers (ViT, DINOv2)
ארכיטקטורות מבוססות טרנספורמר מעבדות תמונות כסדרות של פצלים ומשתמשות במנגנוני תשומת לב עצמית כדי לתפוס הקשר גלובלי. עבור הכרה במזון, זה אומר שהמודל יכול להשתמש ברמזים הקשריים, אם אורז נוכח, קארי סביר יותר שיהיה בקרבת מקום, כדי לשפר את הזיהוי של פריטים מעורפלים.
Vision Transformers משיגים mAP גבוה יותר על צלחות מורכבות עם פריטים מרובים בהשוואה לגישות מבוססות CNN, במיוחד עבור פריטים עם גבולות מעורפלים. העלות היא דרישות חישוביות גבוהות יותר וזמן חישוב איטי יותר.
גישות היברידיות
המערכות המובילות כיום משלבות חציית תכנים מבוססת CNN עם מנגנוני תשומת לב מבוססי טרנספורמר. הארכיטקטורות ההיברידיות הללו משיגות mAP@0.5 מעל 0.85 בזיהוי מזון מרובה פריטים תוך שמירה על מהירויות חישוב מעשיות ליישומים ניידים.
צינור ההכרה של Nutrola משתמש בארכיטקטורה היברידית ששומרת על דיוק הזיהוי עם זמן תגובה של פחות מ-2 שניות שהמשתמשים מצפים לו.
מהזיהוי לתזונה: צינור הדיוק
הפלט הסופי של מערכת הכרה במזון אינו תיבת גבול או מסכת סגמנטציה. מדובר בהערכה של קלוריות ומקרו. הדיוק של ההערכה הזו תלוי בצינור שלבים, לכל אחד מהם יש שיעור שגיאה משלו.
- זיהוי וסיווג: האם פריט המזון זוהה נכון? (נמדד על ידי mAP)
- איכות הסגמנטציה: האם מסכת הפיקסלים צמודה מספיק להערכת המנות המדויקת? (נמדד על ידי IoU)
- הערכת נפח: בהתבסס על המסכה, כמה מזון יש שם בפועל? (נמדד מול משקלים אמיתיים)
- מיפוי תזונתי: בהתבסס על המזון המזוהה ונפח המוערך, מה הקלוריות והמקרו? (נמדד מול נתוני תזונה מאומתים במעבדה)
שגיאות בכל שלב מצטברות. מודל שמזהה פריט מזון נכון 90 אחוז מהזמן עם הערכות מנות מדויקות בטווח של 15 אחוז יפיק הערכות קלוריות עם שיעור שגיאה מצטבר רחב יותר ממה ששני המדדים הבודדים מציעים.
זו הסיבה שמדדי הבדיקות בלבד לא מספרים את הסיפור המלא. בסיס הנתונים התזונתי ורכיבי הערכת הנפח חשובים באותה מידה, והם המקום שבו מערכות תזונה מיועדות מבדילות את עצמן ממודלים כלליים להכרה במזון.
מה המשמעות של מדדים אלו עבור המעקב שלך
למשתמש הסופי, ההשלכות המעשיות של המדדים הללו הן פשוטות.
ארוחות עם פריט אחד (קערת שיבולת שועל, שייק חלבון, פרי) מזוהות עם דיוק גבוה על ידי רוב מערכות ה-AI למזון המודרניות. שיעור השגיאה הוא בדרך כלל בטווח של 5 עד 10 אחוזים מהתוכן הקלורי האמיתי.
צלחות עם פריטים מרובים קשות יותר. צפו לדיוק בטווח של 10 עד 20 אחוז עבור פריטים מופרדים היטב ו-15 עד 25 אחוז עבור פריטים חופפים או מעורבים. כאן, קלט מולטי-מודלי (הוספת פרטים קוליים או טקסטואליים) משפר משמעותית את התוצאות.
מזונות מעורבים מורכבים (תבשילים, קאסרולות, קארים) נשארים האתגר הקשה ביותר. כאן, המערכת מסתמכת במידה רבה על זיהוי ברמת המנה וחיפוש בבסיס הנתונים במקום ניתוח ברמת המרכיב. בסיס נתונים מאומת עם רשומות ספציפיות למנה הופך להיות חשוב יותר מדיוק הזיהוי.
המסלול לשיפור ברור: כל דור של ארכיטקטורות מודלים סוגר את הפער בין ביצועים מבוקרים לדיוק בעולם האמיתי. אך השיפורים המשמעותיים ביותר בימינו מגיעים לא רק ממודלים טובים יותר לזיהוי, אלא משילוב של AI חזותי עם נתוני תזונה מאומתים וקלט משתמש מולטי-מודלי.
שאלות נפוצות
מה זה mAP בהכרה במזון AI?
Mean Average Precision (mAP) הוא המדד הסטנדרטי להערכת עד כמה מדויק מודל זיהוי אובייקטים מזהה וממוקם פריטים בתמונות. בהכרה במזון, mAP מודד עד כמה AI מזהה ומסווג בצורה נכונה פריטי מזון שונים בכל הקטגוריות שהוא הוכשר עליהן. mAP גבוה מצביע על ביצועי זיהוי טובים יותר. המדד מתחשב גם בדיוק (האם הזיהויים היו נכונים) וגם בזכירה (האם כל הפריטים נמצאו), ומספק מדד כולל של דיוק המערכת. מודלים מהשורה הראשונה בהכרה במזון משיגים ציוני mAP@0.5 בין 0.78 ל-0.88 במדדים סטנדרטיים.
עד כמה מדויק מעקב הקלוריות של AI מתמונות?
הדיוק משתנה משמעותית לפי מורכבות הארוחה. עבור ארוחות עם פריט אחד ועם מזון ברור, ה-AI המודרני משיג הערכות קלוריות בטווח של 5 עד 10 אחוזים מהערכים האמיתיים. עבור צלחות עם פריטים מרובים ומופרדים היטב, הדיוק נופל ל-10 עד 20 אחוז. מנות מעורבות מורכבות וארוחות עם מרכיבים מוסתרים כמו שמני בישול מציגות את האתגר הגדול ביותר, עם שגיאות פוטנציאליות של 20 עד 30 אחוז אם נשענים רק על ניתוח תמונה. מערכות שמשלבות זיהוי תמונה עם הקשר שסופק על ידי המשתמש לגבי שיטות הכנה ומרכיבים מוסתרים משיגות את הדיוק הטוב ביותר בעולם האמיתי.
מה ההבדל בין סגמנטציה סמנטית לסגמנטציה של מופעים ב-AI למזון?
סגמנטציה סמנטית מסמנת כל פיקסל בתמונה עם קטגוריית מזון אך אינה מבחינה בין מופעים נפרדים מאותה קטגוריה. סגמנטציה של מופעים מזהה כל פריט מזון כישות נפרדת עם מסכה משלה, גם אם מספר פריטים חולקים את אותה קטגוריה. עבור מעקב קלוריות, סגמנטציה של מופעים היא חיונית מכיוון שהיא מאפשרת למערכת להעריך את גודל המנה של כל פריט בנפרד. ללא סגמנטציה של מופעים, צלחת עם שני קארים שונים תתפס כשטח קארי אחד, מה שיביא להערכה תזונתית לא מדויקת.
מדוע מדדי AI למזון לא משקפים את הביצועים בעולם האמיתי?
מדדים סטנדרטיים כמו Food-101 ו-UECFOOD-256 משתמשים בתמונות שנבחרו בקפידה שמציגות לרוב תמונות מוארות היטב, של פריט אחד, מלמעלה. תמונות מזון בעולם האמיתי מצולמות בתנאי תאורה משתנים, בזוויות לא אחידות, עם פריטים חופפים מרובים, ולעיתים עם חסימות חלקיות. בנוסף, מאגרי הנתונים של הבדיקות הם בעיקר ממערב, מה שאומר שמודלים שנבדקו עליהם עשויים להציג דיוק מוגזם שאינו מתפשט למטבחים מגוונים ברחבי העולם. ה-mAP בעולם האמיתי נופל בדרך כלל ב-10 עד 20 נקודות מתחת לביצועי הבדיקות בשל הפערים הללו.
איזו ארכיטקטורה של מודל עובדת הכי טוב להכרה במזון?
התוצאות הטובות ביותר כיום מגיעות מארכיטקטורות היברידיות שמשלבות חציית תכנים מבוססת CNN עם מנגנוני תשומת לב מבוססי טרנספורמר. מודלים טהורים מבוססי CNN כמו משפחת YOLO מציעים חישוב מהיר המתאים לאפליקציות ניידות, בעוד ש-Vision Transformers מספקים דיוק טוב יותר על צלחות מורכבות עם פריטים מרובים. גישות היברידיות מאזן בין שני היתרונות, משיגות mAP@0.5 מעל 0.85 בזיהוי מזון מרובה פריטים תוך שמירה על זמני חישוב של פחות מ-2 שניות הנדרשים לשימוש מעשי בנייד. הבחירה בארכיטקטורה תלויה גם בהקשר הפריסה: אפליקציות ניידות מעדיפות מודלים קלים יותר, בעוד שעיבוד מבוסס ענן יכול לנצל ארכיטקטורות טרנספורמר גדולות יותר.
מוכנים לשנות את מעקב התזונה שלכם?
הצטרפו לאלפים ששינו את מסע הבריאות שלהם עם Nutrola!