8,690 Views
•
13:19 min
•
March 13, 2021
DOI:
בשל הבעיות והעלויות הכרוכות בהערכה תזונתית ידנית נדרשים פתרונות אוטומטיים כדי להקל ולהאיץ את העבודה ולהגביר את איכותה. כיום, פתרונות אוטומטיים מסוגלים לתעד את צריכת התזונה של אדם בצורה הרבה יותר פשוטה, למשל על ידי צילום תמונה עם מצלמת סמארטפון. במאמר זה נתמקד בגישות מבוססות תמונה כאלה להערכה תזונתית באמצעות רשתות עצביות עמוקות, המייצגות את מצב האמנות בתחום.
בפרט, נציג שלושה פתרונות, אחד לזיהוי תמונת מזון, אחד לפילוח תמונה של העתקי מזון, או מזון מזויף, ואחד עבור פילוח תמונה של מזון אמיתי. אסוף רשימה של מזונות ומשקאות שונים שיהיו התפוקות של מודל זיהוי תמונת המזון. שמור את רשימת המזון והמשקאות בקובץ טקסט, כגון TXT או CSV.
שים לב כי קובץ הטקסט המשמש את המחברים של מאמר זה ניתן למצוא את הקבצים המשלימים תחת פריטי מזון נקודה TXT וכולל רשימה של 520 פריטי מזון סלובנית. כתוב או הורד סקריפט פייתון המשתמש ב- API לחיפוש מותאם אישית של Google כדי להוריד תמונות של כל פריט מזון מהרשימה ושומר אותן בתיקיה נפרדת עבור כל פריט מזון. שים לב כי סקריפט פייתון בשימוש על ידי המחברים של מאמר זה ניתן למצוא את הקבצים המשלימים תחת להוריד תמונות נקודה פאי.
אם סקריפט זה משמש את מפתח שמונה בקוד סקריפט פייתון ומשתנה מזהה מנוע חיפוש מותאם אישית CX שורה 28 בקוד סקריפט פייתון צריך להיות מוחלף עם ערכים ספציפיים לחשבון Google בשימוש. הפעל את סקריפט פייתון משלב 1.1.3. צור גירסה חדשה של כל תמונה מערכת נתוני תמונת המזון על-ידי סיבובה ב- 90 מעלות, באמצעות ספריית CLoDSA.
שים לב כי סקריפט פייתון המכיל את כל הפקודות CLoDSA בשימוש על ידי המחברים של מאמר זה ניתן למצוא בקובץ הכלול בקבצים משלימים תחת NutriNet מקף תחתון הגדלת נקודה פאי. צור גירסה חדשה של כל תמונה מערכת נתוני תמונת המזון על-ידי סיבובה ב- 180 מעלות, באמצעות ספריית CLoDSA. צור גירסה חדשה של כל תמונה מערכת נתוני תמונת המזון על-ידי סיבובה ב- 270 מעלות, באמצעות ספריית CLoDSA.
צור גירסה חדשה של כל תמונה מערכת נתוני תמונת המזון על-ידי היפוכה אופקית, באמצעות ספריית CLoDSA. צור גירסה חדשה של כל תמונה מערכת נתוני תמונת המזון על-ידי הוספת רעשי צבע אקראיים אליה, באמצעות ספריית CLoDSA. צור גירסה חדשה של כל תמונה מערכת נתוני תמונת המזון על-ידי התקרבות אליה ב- 25%באמצעות ספריית CLoDSA.
שמור תמונות משלבים 1.3.1 עד 1.3.6 יחד עם התמונות המקוריות בערכת נתונים חדשה של תמונת מזון. בסך הכל, שבע גרסאות לתמונת מזון. יבא את ערכת נתוני תמונת המזון משלב 1.3.7 לסביבת הספרות של NVIDI, תוך חלוקת ערכת הנתונים לקבוצות משנה של הדרכה, אימות ובדיקה.
העתק והדבק את טקסט ההגדרה של ארכיטקטורת NutriNet בספרות NVIDIA. שים לב כי הגדרת הארכיטקטורה של NutriNet ניתן למצוא בקבצים משלימים תחת NutriNet נקודה פרוטו TXT. לחלופין, הגדר אימון היפר-פרמטרים בספרות NVIDIA או השתמש בערכי ברירת המחדל.
ניתן למצוא את הפרמטרים ההיפר-פרמטרים המשמשים את מחברי מאמר זה בקובץ הכלול בקבצים המשלימים תחת NutriNet מקף תחת היפר-פרמטרים של נקודה פרוטו TXT. הפעל את האימונים של מודל NutriNet. לאחר סיום האימון, קחו את איטרציה מודל NutriNet בעל הביצועים הטובים ביותר.
מודל זה משמש לאחר מכן לבדיקת הביצועים של גישה זו. שים לב שקיימות מספר דרכים לקבוע את איטרציה המודל בעל הביצועים הטובים ביותר. עיין בטקסטים של המאמר לקבלת פרטים נוספים.
השג ערכת נתונים של תמונות מזון מזויפות. שים לב כי המחברים של מאמר זה קיבלו תמונות של מזון מזויף שנאספו בסביבת מעבדה. ביאור ידני של כל תמונת מזון ברמת הפיקסל.
כל פיקסל בתמונה חייב להכיל מידע על מחלקת המזון שאליה הוא שייך. שים לב כי ישנם כלים רבים כדי להשיג זאת. המחברים של מאמר זה השתמשו ביאור מקטע JavaScript.
התוצאה של שלב זה היא תמונת ביאור אחת עבור כל תמונה מערכת הנתונים של תמונת המזון, שבה כל פיקסל מייצג את אחת ממחלדות המזון. בצע את אותם שלבים כמו בסעיף 1.3, אך רק בתמונות מתת-הקבוצה של ערכת נתוני תמונת המזון. שים לב כי למעט שלב 1.3.5, יש לבצע את כל שלבי הגדלת הנתונים גם בתמונות ביאור תואמות.
בצע את אותם שלבים כמו בסעיף 1.4 למעט שלב 1.4.2. במקום שלב זה בצע את שלבים 2.3.2 ו- 2.3.3. שים לב כי אימון היפר פרמטרים בשימוש על ידי המחברים של מאמר זה ניתן למצוא את הקובץ הכלול בקבצים משלימים תחת FCN-8S מקף תחתון hyper-parameters נקודה proto TXT.
העתק והדבק את טקסט ההגדרה של ארכיטקטורת FCN-8S לספרות NVIDIA. הזן את משקולות מודל FCN-8S מאומנות מראש לספרות NVIDIA. שים לב שמשקלים אלה של דגמים אומנו מראש בערכת הנתונים של מחלקות האובייקטים החזותיים של פסקל וניתן למצוא אותם באינטרנט.
הורד את ערכת נתוני תמונת המזון מאתר האינטרנט של אתגר זיהוי המזון. בצע שלבים 1.3.1 עד 1.3.4. שים לב כי סקריפט פייתון המכיל את כל הפקודות CLoDSA בשימוש על ידי המחברים של מאמר זה ניתן למצוא בקובץ הכלול בקבצים משלימים תחת FRC מקף תחתון הגדלת נקודה פאי.
צור גירסה חדשה של כל תמונה מערכת נתוני תמונת המזון על-ידי הוספת טשטוש גאוסיאני אליה, באמצעות ספריית CLoDSA. צור גירסה חדשה של כל תמונה מערכת נתוני תמונת המזון על-ידי חידודה באמצעות ספריית CLoDSA. צור גירסה חדשה של כל תמונה מערכת נתוני תמונת המזון על-ידי החלת תיקון גמא עליה, באמצעות ספריית CLoDSA.
שמור תמונות משלבים 3.2.1 עד 3.2.4 יחד עם התמונות המקוריות בערכת נתונים חדשה של תמונת מזון. בסך הכל, שמונה גרסאות לתמונת מזון. שמור תמונות משלבים 3.2.2 עד 3.2.4 יחד עם התמונות המקוריות בערכת נתונים חדשה של תמונת מזון.
בסך הכל, ארבע גרסאות לתמונת מזון. שנה את הגדרת הארכיטקטורה הקיימת של HTC ResNet 101 מספריית זיהוי MM כך שתקבל את ערכות נתוני תמונת המזון משלבים 3.1.1, 3.2.5 ו- 3.2.6. באופן אופציונלי, שנה את הגדרת הארכיטקטורה HTC ResNet 101 משלב 3.3.1 כדי להגדיר היפר-פרמטרים של אימון או השתמש בערכי ברירת המחדל.
שים לב שהגדרת הארכיטקטורה של HTC ResNet 101 ששונתה נמצאת בקבצים המשלימים תחת מקף תחתון HTC ResNet 101 dot pi. הפעל את ההדרכה של דגם HTC ResNet 101 בערכות נתוני תמונת המזון משלב 3.1.1 באמצעות הספריה לזיהוי MM. לאחר השלמת האימון משלב 3.3.3, בצע את איטראציה הדגם HTC ResNet 101 בעל הביצועים הטובים ביותר וכוונן אותו על-ידי הפעלת השלב הבא של האימון בערכת נתוני תמונת המזון משלב 3.2.5.
שים לב שקיימות מספר דרכים לקבוע את איטרציה המודל בעל הביצועים הטובים ביותר. עיין בטקסטים של המאמר לקבלת פרטים נוספים. זה רלוונטי גם לשלבים הבאים.
לאחר השלמת האימון משלב 3.3.4, קח את איטרציה מודל HTC ResNet 101 בעל הביצועים הטובים ביותר וכוונן אותו על-ידי הפעלת השלב הבא של האימון בערכת נתוני תמונת המזון משלב 3.2.6. לאחר האימון משלב 3.3.5 הושלם, לקחת את ביצועים הטובים ביותר HTC ResNet 101 איטראציה מודל ולכוונן אותו על ידי הפעלת השלב הבא של אימון על ערכת נתוני תמונת מזון משלב 3.2.5. לאחר השלמת האימון משלב 3.3.6, קח את איטראציה מודל HTC ResNet 101 בעל הביצועים הטובים ביותר.
מודל זה משמש לאחר מכן לבדיקת הביצועים של גישה זו. שים לב כי שלבים 3.3.3 עד 3.3.7 הניבו את התוצאות הטובות ביותר למטרות שהוגדרו על-ידי מחברי מאמר זה. יש צורך בניסויים עבור כל ערכת נתונים כדי למצוא את הרצף האופטימלי של שלבי אימון והגדלת נתונים.
לאחר בדיקת מודל המגמה NutriNet השיג דיוק סיווג של 86.72% על ערכת נתוני הזיהוי, אשר היה סביב 2% גבוה יותר AlexNet ומעט גבוה יותר GoogLeNet, שהיו פופולריים ארכיטקטורות רשת עצבית עמוקה של אותה תקופה. כדי למדוד את הדיוק של מודל פילוח תמונת המזון המזויף FCN-8S, נעשה שימוש במדד דיוק הפיקסלים. הדיוק של מודל FCN-8S מאומן היה 92.18%הפתרון מבוסס ResNet עבור פילוח תמונת מזון הוערך באמצעות מידת הדיוק שהוגדרה באתגר זיהוי מזון.
באמצעות מדד זה השיג דגם הרכבת דיוק ממוצע של 59.2% שדורג במקום השני באתגר זיהוי המזון. בשנים האחרונות, רשתות עצביות עמוקות אומתו מספר פעמים כפתרון מתאים לזיהוי תמונות מזון. עבודתנו המוצגת במאמר זה משמשת כדי להוכיח זאת עוד יותר.
הגישה היחידה לזיהוי תמונות מזון היא פשוטה וניתן להשתמש בה ליישומים פשוטים. בעוד שגישת פילוח תמונת המזון דורשת עבודה רבה יותר בהכנת תמונות מבואר, אבל היא הרבה יותר ישימה לתמונות מהעולם האמיתי. בעתיד, המטרה שלנו תהיה להעריך עוד יותר את ההליכים המפותחים על תמונות מהעולם האמיתי.
הצעד הראשון לקראת אימות בעולם האמיתי סופק על ידי אתגר זיהוי המזון, שכלל ערכת נתונים של תמונות מזון בעולם האמיתי. אבל, עבודה נוספת צריכה להיעשות כדי לאמת גישה זו על תמונות מזון מכל רחבי העולם ובשיתוף פעולה עם דיאטנים.
מטרת העבודה המוצגת במאמר זה היא לפתח טכנולוגיה לזיהוי אוטומטי של פריטי מזון ומשקאות מתמונות שצולמו על ידי מכשירים ניידים. הטכנולוגיה מורכבת משתי גישות שונות - הראשונה מבצעת זיהוי תמונת מזון ואילו השנייה מבצעת פילוח תמונת מזון.
Read Article
Cite this Article
Mezgec, S., Koroušić Seljak, B. Deep Neural Networks for Image-Based Dietary Assessment. J. Vis. Exp. (169), e61906, doi:10.3791/61906 (2021).
Copy