Summary

الشبكات العصبية العميقة للتقييم الغذائي القائم على الصور

Published: March 13, 2021
doi:

Summary

الهدف من العمل المعروض في هذه المقالة هو تطوير التكنولوجيا للاعتراف الآلي للمواد الغذائية والمشروبات من الصور التي التقطتها الأجهزة المحمولة. وتتألف هذه التكنولوجيا من نهجين مختلفين – الأول يؤدي التعرف على صورة الطعام في حين أن الثاني يقوم بتجزئة الصورة الغذائية.

Abstract

نظراً للقضايا والتكاليف المرتبطة بنُهج التقييم الغذائي اليدوية، هناك حاجة إلى حلول آلية لتسهيل العمل وتسريعه وزيادة جودته. اليوم، الحلول الآلية قادرة على تسجيل المداواة الغذائية للشخص بطريقة أبسط بكثير، مثل التقاط صورة مع كاميرا الهاتف الذكي. في هذه المقالة، سوف نركز على مثل هذه النهج القائمة على الصور للتقييم الغذائي. بالنسبة لمشكلة التعرف على الصور الغذائية ، حققت الشبكات العصبية العميقة أحدث ما توصلت إليه في السنوات الأخيرة ، ونحن نقدم عملنا في هذا المجال. على وجه الخصوص ، نحن أولا وصف طريقة التعرف على صورة الطعام والمشروبات باستخدام بنية الشبكة العصبية العميقة ، ودعا NutriNet. هذه الطريقة، مثل معظم الأبحاث التي أجريت في الأيام الأولى من التعرف على صورة الطعام العميق القائم على التعلم، تقتصر على ناتج واحد لكل صورة، وبالتالي غير مناسبة للصور مع عناصر متعددة من المواد الغذائية أو المشروبات. هذا هو السبب في أن النهج التي تؤدي تجزئة صورة الطعام هي أكثر قوة بكثير ، لأنها قادرة على تحديد أي عدد من المواد الغذائية أو المشروبات في الصورة. ولذلك نقدم أيضا طريقتين لتجزئة صورة الأغذية – واحدة تقوم على شبكات التواء تماما (FCNs)، والأخرى على الشبكات المتبقية العميقة (ResNet).

Introduction

التقييم الغذائي هو خطوة حاسمة في تحديد المناطق القابلة للتنفيذ من النظام الغذائي للفرد. ومع ذلك، فإن إجراء تقييم غذائي باستخدام نُهج يدوية تقليدية يرتبط بتكاليف كبيرة. وهذه النهوج معرضة أيضا للأخطاء لأنها غالبا ما تعتمد على الإبلاغ الذاتي من جانب الفرد. ويعالج التقييم الغذائي الآلي هذه القضايا من خلال توفير طريقة أبسط لتحديد كمية الطعام المتناول وتأهيله. ويمكن لهذا النهج أن يخفف أيضاً من بعض الأخطاء الموجودة في النهج اليدوية، مثل الوجبات الفائتة، وعدم القدرة على تقييم حجم الأغذية بدقة، وما إلى ذلك. ولذلك، هناك فوائد واضحة لأتمتة التقييم الغذائي من خلال تطوير الحلول التي تحدد الأطعمة والمشروبات المختلفة وقياس كمية كمية الطعام1. ويمكن أيضاً استخدام هذه الحلول للتمكين من تقدير القيم الغذائية للمواد الغذائية والمشروبات (من الآن فصاعداً ‘المواد الغذائية’). وبالتالي ، فإن التقييم الغذائي الآلي مفيد لتطبيقات متعددة – من الاستخدامات الطبية البحتة ، مثل السماح ً وا وأخصائيي التغذية بتتبع وتحليل الوجبات الغذائية لمرضاهم بشكل أكثر سهولة ودقة ، إلى الاستخدام داخل تطبيقات الرفاه المستهدفة لعامة السكان.

التعرف تلقائيا على المواد الغذائية من الصور هو مشكلة صعبة في رؤية الكمبيوتر. ويرجع ذلك إلى الأطعمة التي عادة ما تكون الكائنات تشوه، ويرجع ذلك إلى حقيقة أن كمية كبيرة من المعلومات البصرية البند الغذائي يمكن أن تضيع أثناء إعداده. بالإضافة إلى ذلك، يمكن أن تبدو الأطعمة المختلفة مشابهة جداً لبعضها البعض، ويمكن أن يبدو نفس الطعام مختلفة إلى حد كبير على صور متعددة2. وعلاوة على ذلك، فإن دقة التعرف تعتمد على العديد من العوامل الأخرى، مثل جودة الصورة، وما إذا كان البند الغذائي قد تم عرقلته من قبل عنصر آخر، والمسافة التي التقطت منها الصورة، وما إلى ذلك. التعرف على عناصر المشروبات يمثل مجموعة خاصة به من التحديات، أهمها هو كمية محدودة من المعلومات البصرية التي تتوفر في صورة. هذه المعلومات يمكن أن يكون لون المشروبات، لون وعاء المشروبات والهيكل، وتحت ظروف الصورة المثلى، وكثافة المشروبات2.

للتعرف بنجاح على المواد الغذائية من الصور ، فمن الضروري أن تتعلم ميزات كل فئة من فئات الطعام والشراب. وقد تم ذلك عادة باستخدام مستخرجات المعالم3و4و5و6 التي تؤدي التعرف على ميزات عنصر محددة مثل اللون والملمس والحجم وما إلى ذلك، أو مزيج من هذه الميزات. وتشمل الأمثلة على هذه النازعات ميزة متعددة تعلم نواة4، وميزاتثنائية المحلية 5 وحقيبة من الميزات نموذج6. نظرا لتعقيد الصور الغذائية ، وحققت هذه النهج في الغالب دقة تصنيف منخفضة – بين 10 ٪ و 40 ٪3،4،5. والسبب في ذلك هو أن النهج اليدوي ليس قويا بما فيه الكفاية ليكون دقيقا بما فيه الكفاية. لأن مادة الطعام يمكن أن تختلف بشكل كبير في المظهر، فإنه من غير المجدي أن تشمل جميع هذه الفروق يدويا. يمكن تحقيق دقة تصنيف أعلى باستخدام مستخرجات ميزة محددة يدويًا عندما يتم تقليل عدد فئات الطعام5، أو يتم دمج ميزات صور مختلفة6، مما يشير إلى أن هناك حاجة إلى حلول أكثر تعقيدًا لهذه المشكلة.

هذا هو السبب في التعلم العميق ثبت أن تكون فعالة جدا لمشكلة التعرف على صورة الغذاء. التعلم العميق ، أو الشبكات العصبية العميقة ، مستوحاة من العقول البيولوجية ، ويسمح النماذج الحسابية المكونة من طبقات معالجة متعددة لتعلم المعالم تلقائيا من خلال التدريب على مجموعة من الصور المدخلات7،8. وبسبب هذا ، والتعلم العميق تحسنت بشكل كبير في حالة من الفن في مجموعة متنوعة من مجالات البحوث7، مع رؤية الكمبيوتر ، وبعد ذلك التعرف على الصورة الغذائية ، ويجري واحد منهم2.

على وجه الخصوص ، الشبكات العصبية التشنجية العميقة (DCNNs) هي الأكثر شعبية للتعرف على صورة الطعام – هذه الشبكات مستوحاة من النظام البصري للحيوانات ، حيث تحاول الخلايا العصبية الفردية اكتساب فهم المدخلات البصرية من خلال التفاعل مع المناطق المتداخلة في المجال البصري9. تأخذ الشبكة العصبية اللتواءية صورة الإدخال وتقوم بسلسلة من العمليات في كل من طبقات الشبكة ، وأكثرها شيوعًا هي طبقات الالتواء ، المتصلة بالكامل والطبقات المجمعة. تحتوي الطبقات اللتنائية على فلاتر قابلة للتعلم تستجيب لمعالم معينة في بيانات الإدخال، بينما تؤلف الطبقات المتصلة بالكامل بيانات الإخراج من طبقات أخرى للحصول على معرفة أعلى مستوى منها. الهدف من تجميع الطبقات هو أسفل عينة البيانات المدخل2. هناك نهجان لاستخدام نماذج التعلم العميق التي أثبتت شعبية: أخذ تعريف الشبكة العصبية العميقة القائمة10،11،يشار إليها على أنها بنية التعلم العميق في هذه المقالة ، أو تعريف بنية التعلم العميق الجديد12،13، وتدريب أي من هذه على مجموعة بيانات صورة الطعام. هناك نقاط قوة ونقاط ضعف لكلا النهجين – عند استخدام بنية التعلم العميق القائمة ، يمكن اختيار بنية ذات أداء جيد لمشاكل أخرى وضبطها للمشكلة المطلوبة ، مما يوفر الوقت ويضمن اختيار بنية مصدق عليها. ومن ناحية أخرى، فإن تحديد بنية جديدة للتعلم العميق هو أكثر كثافة للوقت، ولكنه يسمح بتطوير البنى التي يتم صنعها خصيصاً لتأخذ في الاعتبار تفاصيل المشكلة وبالتالي أداء أفضل نظرياً لهذه المشكلة.

في هذه المقالة، نقدم كلا النهجين. لمشكلة التعرف على الصورة الغذائية ، قمنا بتطوير رواية DCNN العمارة ودعا NutriNet2، وهو تعديل للهندسة المعمارية المعروفة AlexNet14. هناك نوعان من الاختلافات الرئيسية مقارنة مع AlexNet: NutriNet يقبل الصور 512×512 بكسل كمدخلات (بدلاً من صور 256×256-pixel لـ AlexNet) ، و NutriNet لديه طبقة معقدة إضافية في بداية الشبكة العصبية. وقد أدخل هذان التغييران من أجل استخراج أكبر قدر ممكن من المعلومات من صور مجموعة بيانات التعرف. وجود صور ذات دقة عالية يعني أن هناك المزيد من المعلومات الموجودة على الصور ووجود طبقات أكثر التواء يعني أنه يمكن استخراج معرفة إضافية من الصور. مقارنة مع AlexNet حوالي 60 مليون معلمة ، يحتوي NutriNet على معلمات أقل: حوالي 33 مليون. هذا هو بسبب الاختلاف في الأبعاد في الطبقة الأولى متصلة بالكامل الناجمة عن طبقة إضافية2convolutional. يحتوي الشكل 1 على رسم تخطيطي لهندسة NutriNet. تم جمع صور الطعام التي تم استخدامها لتدريب نموذج NutriNet من الإنترنت – يتم وصف الإجراء في نص البروتوكول.

لمشكلة تجزئة صورة الطعام ، استخدمنا اثنين من البنى الموجودة المختلفة: الشبكات اللتواءية بالكامل (FCNs)15 والشبكات المتبقية العميقة (ResNet)16، وكلاهما يمثل حالة الفن لتجزئة الصور عندما استخدمناها لتطوير حلول تجزئة الصور الغذائية الخاصة بها. هناك العديد من المتغيرات FCN التي تم إدخالها من قبل لونغ وآخرون: FCN-32s، FCN-16s وFCN-8s15. FCN-32s إخراج خريطة بكسل على أساس التوقعات من قبل طبقة FCN النهائي، في حين أن البديل FCN-16s يجمع بين هذه التنبؤات مع تلك التي كتبها طبقة سابقة. FCN-8s يعتبر بعد آخر طبقة التنبؤات، وبالتالي قادرة على جعل التنبؤات في أجود الحبوب، وهذا هو السبب في أنها مناسبة للتعرف على صورة الغذاء. وكان FCN-8s التي استخدمناها تدريب مسبق على باسكال البصرية فئات الكائنات (باسكال VOC) مجموعة البيانات17 وتدريبهم واختبارها على صور من النسخ المتماثلة الغذاء (من الآن فصاعدا ‘الغذاء وهمية’)18 بسبب التشابه البصرية إلى الغذاء الحقيقي وبسبب عدم وجود صور مشروحة من الغذاء الحقيقي على مستوى بكسل. يتم استخدام الطعام المزيف في الدراسات السلوكية المختلفة ويتم التقاط الصور لجميع الأطباق من جميع المشاركين في الدراسة. نظرًا لأن محتويات الطعام لهذه الصور معروفة ، فإنه يجعل مجموعة بيانات الصور مفيدة للتدريب على نموذج التعلم العميق. يتم وصف خطوات معالجة مجموعة البيانات في نص البروتوكول.

وقد تم تطوير الحل القائم على ResNet في نطاق تحدي التعرف على الأغذية (FRC)19. ويستخدم تسلسل المهام الهجين (HTC)20 الأسلوب مع ResNet-10116 العمود الفقري. هذا هو نهج للدولة من بين الفن لمشكلة تجزئة الصورة التي يمكن استخدام مستخرجات ميزة مختلفة، أو العمود الفقري. واعتبرنا الشبكات الأخرى العمود الفقري كذلك ، لا سيما غيرها من المتغيرات ResNet مثل ResNet – 5016، ولكن ResNet – 101 كان الأنسب نظرا لعمقه والقدرة على تمثيل الصور المدخلات بطريقة معقدة بما فيه الكفاية. كانت مجموعة البيانات المستخدمة في تدريب نموذج HTC ResNet-101 هي مجموعة البيانات FRC مع الصور المعززة المضافة. يتم عرض هذه التعزيزات في نص البروتوكول.

تهدف هذه المقالة كمورد لخبراء التعلم الآلي الذين يبحثون عن معلومات حول أي أبنية التعلم العميق وخطوات زيادة البيانات تؤدي بشكل جيد لمشاكل التعرف على صورة الطعام وتجزئة ، وكذلك للباحثين في مجال التغذية الذين يتطلعون إلى استخدام نهجنا لأتمتة التعرف على صورة الطعام للاستخدام في التقييم الغذائي. في الفقرات أدناه، يتم عرض حلول التعلم العميق ومجموعات البيانات من حقل التعرف على الصورة الغذائية. في نص البروتوكول، نفصّل كيفية استخدام كل من النهج الثلاثة لتدريب نماذج الشبكة العصبية العميقة التي يمكن استخدامها للتقييم الغذائي الآلي. وبالإضافة إلى ذلك، يحتوي كل قسم من أقسام البروتوكول على وصف لكيفية الحصول على مجموعات البيانات المتعلقة بالصور الغذائية المستخدمة في التدريب والاختبار ومعالجتها.

حققت DCNNs بشكل عام نتائج أفضل بكثير من الطرق الأخرى للتعرف على صور الطعام وتجزئة ، وهذا هو السبب في أن الغالبية العظمى من الأبحاث الحديثة في هذا المجال تستند إلى هذه الشبكات. استخدم كاوانو وآخرون DCNNs لاستكمال النهج اليدوية21 وحقق دقة تصنيف بنسبة 72.26٪ على مجموعة البيانات UEC-FOOD10022. كريستودوليدس وآخرون استخدمها حصرا لتحقيق دقة أعلى من 84.90٪ على مجموعة بيانات المكتسبة ذاتيا23. تانو وآخرون وضعت DeepFoodCam – التطبيق الذكي للتعرف على صورة الغذاء الذي يستخدم DCNNs24. ليو وآخرون قدم النظام الذي ينفذ إنترنت من الأشياء القائمة على تقييم النظام الغذائي باستخدام DCNNs25. قدم Martinel وآخرون نهجًا قائمًا على DCNN يستغل تفاصيل صور الطعام26 وأبلغ عن دقة 90.27٪ على مجموعة البيانات الغذائية-10127. تشو وآخرون تأليف استعراض لحلول التعلم العميق في مجال الغذاء28.

في الآونة الأخيرة، اقترح تشاو وآخرون شبكة خصيصا للتعرف على صورة الغذاء في تطبيقات الهاتف المحمول29. يستخدم هذا النهج شبكة “طالب” أصغر تتعلم من شبكة “معلم” أكبر. مع ذلك، تمكنوا من تحقيق دقة 84٪ على UEC-FOOD25630 ودقة 91.2٪ على مجموعة البيانات الغذائية-10127. استخدم حافظ وآخرون DCNNs لتطوير محلول التعرف على الصور فقط و ذكر دقة عالية جداً من 98.51٪31. ووصف شيمودا وآخرون طريقة جديدة للكشف عن مناطق الصفائح في صور الطعام دون استخدام شرح البكسلالحكيم 32. قدم Ciocca et al. مجموعة بيانات جديدة تحتوي على مواد غذائية من 20 صنفاً من المواد الغذائية المختلفة في 11 ولاية مختلفة (صلبة، مقطعة شرائح، معجون دسم، إلخ) وعرضت نهجها في نماذج التعرف على التدريب القادرة على التعرف على حالة الطعام، بالإضافة إلى فئة الطعام33. Knez وآخرون تقييم الأغذية حلول التعرف على الصور للأجهزة النقالة34. وأخيرا، أجرى فورتادو وآخرون دراسة عن كيفية مقارنة النظام البصري البشري بأداء DCNNs ووجد أن الاعتراف البشري لا يزال يتفوق على DCNNs بدقة 80٪ مقابل 74.5٪35. لاحظ المؤلفون أنه مع عدد قليل من فصول الطعام ، وأداء DCNNs بشكل جيد ، ولكن على مجموعة بيانات مع مئات الطبقات ، ودقة الاعتراف البشري أعلى35، مما يسلط الضوء على تعقيد المشكلة.

على الرغم من نتائجها الحديثة ، فإن التعلم العميق له عيب كبير – فهو يتطلب مجموعة بيانات كبيرة من المدخلات لتدريب النموذج. في حالة التعرف على صورة الطعام ، هناك حاجة إلى مجموعة بيانات كبيرة لصورة الطعام ، ويجب أن تشمل مجموعة البيانات هذه أكبر عدد ممكن من السيناريوهات المختلفة في العالم الحقيقي. وهذا يعني عملياً أنه بالنسبة لكل صنف من أصناف الأغذية أو المشروبات، يلزم وجود مجموعة كبيرة من الصور، كما أن هناك العديد من العناصر المختلفة قدر الإمكان التي يجب أن تكون موجودة في مجموعة البيانات. إذا لم يكن هناك صور كافية لعنصر معين في مجموعة البيانات، من غير المحتمل أن يتم التعرف على هذا العنصر بنجاح. ومن ناحية أخرى، إذا كان عدد قليل من العناصر فقط مشمولا بمجموعة البيانات، فإن الحل سيكون محدودا في نطاقه، ولا يمكنه إلا التعرف على عدد قليل من الأطعمة والمشروبات المختلفة.

وقد أتيحت في الماضي عدة مجموعات بيانات. تم تقديم مجموعة بيانات صور بيتسبرغ للوجبات السريعة (PFID)3 لتشجيع المزيد من الأبحاث في مجال التعرف على صور الطعام. جامعة الأغذية الكهربائية الاتصالات 100 (UEC-FOOD100)22 وجامعة الأغذية الكهربائية الاتصالات 256 (UEC-FOOD256)30 مجموعة بيانات تحتوي على أطباق يابانية، توسعت مع بعض الأطباق الدولية في حالة مجموعة البيانات UEC-FOOD256. تحتوي مجموعة البيانات الغذائية-101 على أطباق شعبية تم الحصول عليها من موقعويب 27. مجموعة Food-5036 واسترجاع الفيديو Food 172 (VireoFood-172)37 مجموعة بيانات هي مجموعات من الصور الغذائية القائمة على أساس صيني. تتكون مجموعة البيانات من جامعة ميلانو -بيكوكا 2016 (UNIMIB2016) من صور صواني الطعام من مقصف إيطالي38. Recipe1M هي مجموعة بيانات واسعة النطاق من وصفات الطهي وصور الطعام39. مجموعة البيانات الغذائية-47540 يجمع أربع مجموعات بيانات صورة الأغذية المنشورة سابقا27،30،36،37 في واحد. بيجين للتكنولوجيا والأعمال جامعة الغذاء 60 (BTBUFood -60) هي مجموعة بيانات من الصور المخصصة للكشف عن الغذاء41. وفي الآونة الأخيرة، أتيحت مجموعة البيانات ISIA Food-50042 من الصور الغذائية المتنوعة. وبالمقارنة مع مجموعات البيانات الأخرى المتاحة للجمهور عن صور الطعام، فإنه يحتوي على عدد كبير من الصور، مقسمة إلى 500 صنف غذائي، ويهدف إلى دفع تطوير حلول التعرف على الأغذية متعددة الوسائط42.

Protocol

1. التعرف على صورة الغذاء مع NutriNet الحصول على مجموعة بيانات صورة الطعام جمع قائمة من الأطعمة والمشروبات المختلفة التي ستكون مخرجات نموذج التعرف على صورة الطعام. ويفضل قائمة متنوعة من الأطعمة والمشروبات الشعبية، لأن ذلك سيسمح بالتدريب على نموذج قوي للتعرف على صورة الطعام. احفظ قائمة الطعام والمشروبات في ملف نصي (على سبيل المثال، “txt” أو “csv”).ملاحظة: يمكن العثور على الملف النصي المستخدم من قبل مؤلفي هذه المقالة في الملفات التكميلية (‘food_items.txt’) ويتضمن قائمة بـ 520 من العناصر الغذائية السلوفينية. اكتب أو قم بتنزيل برنامج نصي Python43 الذي يستخدم برنامج Google Custom Search API44 لتنزيل صور كل عنصر غذائي من القائمة وحفظها في مجلد منفصل لكل عنصر غذائي.ملاحظة: يمكن العثور على البرنامج النصي Python المستخدمة من قبل مؤلفي هذه المقالة في الملفات التكميلية (‘download_images.py’). إذا تم استخدام هذا البرنامج النصي، مفتاح المطور (متغير ‘developerKey’، سطر 8 في رمز البرنامج النصي بيثون) ومعرف محرك البحث المخصص (متغير ‘cx’، سطر 28 في رمز البرنامج النصي بيثون) تحتاج إلى استبداله مع القيم الخاصة بحساب جوجل المستخدمة. تشغيل البرنامج النصي بيثون من الخطوة 1.1.3 (على سبيل المثال، مع الأمر: ‘download_images.py بيثون’). (اختياري) تنظيف مجموعة بيانات صورة الطعام تدريب نموذج الكشف عن الصور الغذائية بنفس الطريقة كما في القسم 1.4، باستثناء استخدام ناتجين فقط (الغذاء، غير الغذائي) بدلا من قائمة المخرجات من الخطوة 1.1.1.ملاحظة: استخدم مؤلفو هذه المقالة صورًا مجمعة من مواقع الويب الخاصة بالوصفات ومجموعة بيانات ImageNet45 لتدريب نموذج الكشف عن الصور الغذائية. منذ التركيز هنا هو على التعرف على صورة الغذاء وهذه هي خطوة اختيارية لتنظيف مجموعة البيانات الاعتراف، يتم حذف مزيد من التفاصيل. وبدلاً من ذلك، يمكن العثور على مزيد من التفاصيل حول هذا النهج في Mezgec وآخرون2. تشغيل نموذج الكشف من الخطوة 1.2.1 على مجموعة بيانات صورة الطعام التي هي نتيجة الخطوة 1.1.4. حذف كل صورة تم تمييزها على أنها غير غذائية بواسطة نموذج الكشف من الخطوة 1.2.1. تحقق يدويًا من مجموعة بيانات صور الطعام للحصول على صور أخرى خاطئة أو منخفضة الجودة، وأخرى مكررة للصور. حذف الصور الموجودة في الخطوة 1.2.4. زيادة مجموعة بيانات صورة الطعام إنشاء نسخة جديدة من كل صورة من مجموعة بيانات صورة الطعام عن طريق تدويره بنسبة 90 درجة باستخدام مكتبة CLoDSA46 (خطوط 19 إلى 21 في البرنامج النصي بايثون المضمن).ملاحظة: يمكن العثور على البرنامج النصي Python الذي يحتوي على كافة الأوامر CLoDSA المستخدمة من قبل مؤلفي هذه المقالة في ملف مضمن في الملفات التكميلية (‘nutrinet_augmentation.py’). إذا تم استخدام هذا البرنامج النصي، يجب استبدال مسار الإدخال (متغير ‘INPUT_PATH’، السطر 8 في رمز البرنامج النصي Python) و “مسار الإخراج” (متغير ‘OUTPUT_PATH’، سطر 11 في رمز البرنامج النصي Python) بمسارات إلى المجلدات المطلوبة. إنشاء نسخة جديدة من كل صورة من مجموعة بيانات صورة الطعام عن طريق تدويره بنسبة 180 درجة باستخدام مكتبة CLoDSA (خطوط 19 إلى 21 في البرنامج النصي بايثون المضمّن). إنشاء نسخة جديدة من كل صورة من مجموعة بيانات صورة الطعام عن طريق تدويره بنسبة 270 درجة باستخدام مكتبة CLoDSA (خطوط 19 إلى 21 في البرنامج النصي بايثون المضمن). إنشاء نسخة جديدة من كل صورة من مجموعة بيانات صورة الطعام عن طريق التقليب أفقيا باستخدام مكتبة CLoDSA (خطوط 23 و 24 في البرنامج النصي بايثون وشملت). إنشاء نسخة جديدة من كل صورة من مجموعة البيانات صورة الغذاء عن طريق إضافة الضوضاء اللون عشوائي إليها باستخدام مكتبة CLoDSA (خطوط 26 و 27 في البرنامج النصي بايثون وشملت). إنشاء نسخة جديدة من كل صورة من مجموعة البيانات صورة الغذاء عن طريق التكبير إليها بنسبة 25 ٪ باستخدام مكتبة CLoDSA (خطوط 29 و 30 في البرنامج النصي بايثون وشملت). حفظ الصور من الخطوات 1.3.1-1.3.6، جنبا إلى جنب مع الصور الأصلية (الخطين 16 و 17 في النص بايثون المدرجة)، في مجموعة بيانات جديدة صورة الغذاء (في المجموع، 7 المتغيرات لكل صورة الغذاء). ويتم ذلك عن طريق تنفيذ الأمر في سطر 32 من البرنامج النصي Python المضمنة. أداء التعرف على صورة الطعام استيراد مجموعة بيانات صورة الطعام من الخطوة 1.3.7 إلى NVIDIA DIGITS البيئة47، تقسيم مجموعة البيانات إلى مجموعات فرعية للتدريب والتحقق والاختبار في واجهة المستخدم NVIDIA DIGITS. نسخ ولصق نص تعريف هندسة NutriNet2 في NVIDIA DIGITS كشبكة مخصصة.ملاحظة: يمكن العثور على نص تعريف هندسة NutriNet في الملفات التكميلية (‘nutrinet.prototxt’). (اختياري) تعريف مقياس الحساسية الفائقة للتدريب في واجهة المستخدم NVIDIA DIGITS.ملاحظة: المقاييس الفائقة هي معلمات يتم استخدامها لتعريف عملية التدريب قبل البدء. يمكن العثور على مقياس المقاييس الفائقة المستخدم من قبل مؤلفي هذه المقالة في ملف مضمن في الملفات التكميلية (‘nutrinet_hyperparameters.prototxt’). بينما هناك حاجة إلى التجريب لكل مجموعة بيانات للعثور على مقياس المقاييس الفائقة الأمثل ، يحتوي الملف على تكوين مقياس سباراميت الذي يمكن نسخه إلى واجهة مستخدم NVIDIA DIGITS. وعلاوة على ذلك، NVIDIA DIGITS يملأ المقاييس الفوقية مع القيم الافتراضية التي يمكن استخدامها كخط أساس. ولذلك فإن هذه الخطوة اختيارية. تشغيل التدريب من طراز NutriNet. بعد اكتمال التدريب ، خذ أفضل أداء NutriNet نموذج التكرار. ثم يتم استخدام هذا النموذج لاختبار أداء هذا الأسلوب.ملاحظة: هناك عدة طرق لتحديد أفضل أداء نموذج التكرار. وهناك طريقة مباشرة للقيام بذلك هي كما يلي. NVIDIA DIGITS مخرجات رسم بياني من مقاييس الدقة لكل عصر التدريب. تحقق من الحقبة التي حققت أقل قيمة خسارة لمجموعة التحقق من الصحة لمجموعة بيانات صورة الطعام – يمكن اعتبار هذا التكرار النموذجي أفضل أداء. خطوة اختيارية في تحديد أفضل أداء نموذج التكرار هو لمراقبة كيف قيمة الخسارة للتدريب المجموعة الفرعية التغييرات من عصر إلى عصر وإذا كان يبدأ في الانخفاض بشكل مستمر في حين أن قيمة الخسارة للتحقق من صحة يبقى نفسه أو يرتفع باستمرار، تأخذ الحقبة السابقة لهذا الانخفاض في قيمة فقدان التدريب، كما أن يمكن أن تشير عندما نموذج بدأت overfitting على الصور التدريب. 2. تجزئة صورة الطعام مع FCNs الحصول على مجموعة بيانات الصور المزيفة للأغذية الحصول على مجموعة بيانات من الصور المزيفة الغذاء. يتم جمع صور وهمية الغذاء من قبل الباحثين إجراء الدراسات السلوكية باستخدام النسخ المتماثلة الغذاء.ملاحظة: تلقى مؤلفو هذه المقالة صورًا لطعام مزيف تم جمعها في بيئة معملية18. إضافة تعليقات توضيحية يدويًا إلى كل صورة طعام على مستوى البكسل – يجب أن يحتوي كل بكسل في الصورة على معلومات حول فئة الطعام التي ينتمي إليها. نتيجة هذه الخطوة هي صورة توضيحية واحدة لكل صورة من مجموعة بيانات صورة الطعام، حيث يمثل كل بكسل أحد فئات الطعام.ملاحظة: هناك العديد من الأدوات لتحقيق هذا – المؤلفين من هذه المقالة تستخدم جافا سكريبت الجزء المشروح48. زيادة مجموعة بيانات الصور المزيفة للأغذية تنفيذ نفس الخطوات كما هو الحال في القسم 1.3، ولكن فقط على الصور من مجموعة فرعية للتدريب من مجموعة بيانات صورة الطعام.ملاحظة: باستثناء الخطوة 1.3.5، يجب تنفيذ كافة خطوات زيادة البيانات على صور التعليق التوضيحي المقابلة أيضاً. إذا تم استخدام البرنامج النصي من القسم 1.3، يجب استبدال مسار الإدخال (متغير ‘INPUT_PATH’، السطر 8 في رمز البرنامج النصي بايثون43) و “مسار الإخراج” (متغير ‘OUTPUT_PATH’، سطر 11 في رمز البرنامج النصي Python) إلى استبداله بمسارات إلى المجلدات المطلوبة. بالإضافة إلى ذلك، تعيين المشكلة (متغير ‘PROBLEM’، سطر 6 في رمز البرنامج النصي بيثون) إلى ‘instance_segmentation’ ووضع التعليق التوضيحي (متغير ‘ANNOTATION_MODE’، سطر 7 في رمز البرنامج النصي بيثون) ووضع الإخراج (متغير ‘OUTPUT_MODE’، سطر 10 في رمز البرنامج النصي بيثون) إلى ‘كوكو’. إجراء تجزئة صور وهمية- طعام تنفيذ نفس الخطوات كما في المقطع 1.4، مع استثناء من الخطوة 1.4.2. بدلاً من تلك الخطوة تنفيذ الخطوات 2.3.2 و 2.3.3.ملاحظة: المقاييس الفائقة هي معلمات يتم استخدامها لتعريف عملية التدريب قبل البدء. يمكن العثور على مقياس المقاييس التدريبية المستخدمة من قبل مؤلفي هذه المقالة للخطوة الاختيارية 1.4.3 في ملف مضمن في الملفات التكميلية (‘fcn-8s_hyperparameters.prototxt’). في حين أن هناك حاجة إلى التجريب لكل مجموعة بيانات للعثور على المجموعة المثلى من المقاييس الفائقة ، يحتوي الملف على تكوين مقياس فرط يمكن نسخه إلى واجهة المستخدم NVIDIA DIGITS47. وعلاوة على ذلك، NVIDIA DIGITS يملأ المقاييس الفوقية مع القيم الافتراضية التي يمكن استخدامها كخط أساس. نسخ ولصق نص تعريف15 هندسة FCN-8s في بيئة NVIDIA DIGITS كشبكة مخصصة.ملاحظة: نص تعريف بنية FCN-8s متاح للجمهور على GitHub49. أدخل المسار إلى الأوزان طراز FCN-8s المدربة مسبقًا في واجهة المستخدم NVIDIA DIGITS.ملاحظة: تم تدريب أوزان النماذج هذه مسبقًا على مجموعة بيانات17 من طراز باسكال VOC ويمكن العثور عليها على الإنترنت49. 3. تجزئة صورة الطعام مع HTC ResNet الحصول على مجموعة بيانات صورة الطعام تحميل مجموعة البيانات صورة الغذاء من موقع FRC19. زيادة مجموعة بيانات صورة الطعام تنفيذ الخطوات 1.3.1-1.3.4.ملاحظة: يمكن العثور على البرنامج النصي43 بيثون التي تحتوي على كافة الأوامر CLoDSA46 المستخدمة من قبل مؤلفي هذه المقالة في ملف مضمن في الملفات التكميلية (‘frc_augmentation.py’). إذا تم استخدام هذا البرنامج النصي، يجب استبدال مسار الإدخال (متغير ‘INPUT_PATH’، السطر 8 في رمز البرنامج النصي Python) و “مسار الإخراج” (متغير ‘OUTPUT_PATH’، سطر 11 في رمز البرنامج النصي Python) بمسارات إلى المجلدات المطلوبة. إنشاء نسخة جديدة من كل صورة من مجموعة البيانات صورة الغذاء عن طريق إضافة طمس غاوسية إليها باستخدام مكتبة CLoDSA (خطوط 26 و 27 في البرنامج النصي بايثون وشملت). إنشاء نسخة جديدة من كل صورة من مجموعة البيانات صورة الغذاء عن طريق شحذ باستخدام مكتبة CLoDSA (خطوط 29 و 30 في البرنامج النصي بايثون وشملت). إنشاء نسخة جديدة من كل صورة من مجموعة بيانات صورة الطعام عن طريق تطبيق تصحيح غاما عليه باستخدام مكتبة CLoDSA (الخطان 32 و 33 في البرنامج النصي Python المضمن). حفظ الصور من الخطوات 3.2.1-3.2.4، جنبا إلى جنب مع الصور الأصلية (الخطين 16 و 17 في النص بايثون المدرجة)، في مجموعة بيانات جديدة صورة الغذاء (في المجموع، 8 المتغيرات لكل صورة الغذاء). ويتم ذلك عن طريق تنفيذ الأمر في سطر 35 من البرنامج النصي Python المضمنة. حفظ الصور من الخطوات 3.2.2-3.2.4، جنبا إلى جنب مع الصور الأصلية (الخطين 16 و 17 في النص بايثون المدرجة)، في مجموعة بيانات جديدة صورة الغذاء (في المجموع، 4 المتغيرات لكل صورة الغذاء). ويتم ذلك عن طريق حذف الأسطر 19 إلى 24 من البرنامج النصي بايثون المضمنة وتنفيذ الأمر في سطر 35. تنفيذ تجزئة صورة الطعام تعديل تعريف بنية 16 20 RESNet-101 HTC الموجودة من مكتبة MMDetection50 في المقاطع “إعدادات النموذج” و “إعدادات مجموعة البيانات” لملف تعريف البنية بحيث يقبل مجموعات بيانات صورة الطعام من الخطوات 3.1.1 و 3.2.5 و 3.2.6. (اختياري) تعديل تعريف بنية HTC ResNet-101 من الخطوة 3.3.1 لتعريف مقياس hyperparameters التدريبي: حجم الدفعة في قسم “إعدادات مجموعة البيانات” ونوع حل الحلول ومعدل التعلم في القسم “محسن” وسياسة التعلم في قسم “سياسة التعلم” وعدد عهود التدريب في قسم “إعدادات وقت التشغيل” لملف تعريف البنية.ملاحظة: يمكن العثور على ملف تعريف بنية HTC ResNet-101 المعدلة في الملفات التكميلية (‘htc_resnet-101.py’). المقاييس الهايبربرية هي المعلمات التي تستخدم لتحديد عملية التدريب قبل بدايتها. في حين أن هناك حاجة إلى التجريب لكل مجموعة بيانات للعثور على المجموعة المثلى من المقاييس الفائقة ، يحتوي الملف بالفعل على تكوين مقياس فرط يمكن استخدامه دون تعديل. ولذلك فإن هذه الخطوة اختيارية. تشغيل التدريب من HTC ResNet-101 نموذج على مجموعة البيانات صورة الغذاء من الخطوة 3.1.1 باستخدام مكتبة MMDetection (على سبيل المثال، مع الأمر: ‘بيثون mmdetection / أدوات / القطار.py htc_resnet-101.py’). بعد اكتمال التدريب من الخطوة 3.3.3، خذ أفضل أداء HTC ResNet-101 نموذج التكرار وصقلها عن طريق تشغيل المرحلة التالية من التدريب على مجموعة البيانات صورة الغذاء من الخطوة 3.2.5.ملاحظة: هناك عدة طرق لتحديد أفضل أداء نموذج التكرار. وهناك طريقة مباشرة للقيام بذلك هي كما يلي. مكتبة MMDetection إخراج قيم مقاييس الدقة لكل عصر التدريب في واجهة سطر الأوامر. تحقق من الحقبة التي حققت أقل قيمة خسارة لمجموعة التحقق من الصحة لمجموعة بيانات صورة الطعام – يمكن اعتبار هذا التكرار النموذجي أفضل أداء. خطوة اختيارية في تحديد أفضل أداء نموذج التكرار هو لمراقبة كيف قيمة الخسارة للتدريب المجموعة الفرعية التغييرات من عصر إلى عصر وإذا كان يبدأ في الانخفاض بشكل مستمر في حين أن قيمة الخسارة للتحقق من صحة يبقى نفسه أو يرتفع باستمرار، تأخذ الحقبة السابقة لهذا الانخفاض في قيمة فقدان التدريب، كما أن يمكن أن تشير عندما نموذج بدأت overfitting على الصور التدريب. بعد اكتمال التدريب من الخطوة 3.3.4، خذ أفضل أداء HTC ResNet-101 نموذج التكرار وصقله عن طريق تشغيل المرحلة التالية من التدريب على مجموعة البيانات صورة الغذاء من الخطوة 3.2.6.ملاحظة: راجع ملاحظة الخطوة 3.3.4. بعد اكتمال التدريب من الخطوة 3.3.5، خذ أفضل أداء HTC ResNet-101 نموذج التكرار وصقلها من خلال تشغيل مرة أخرى المرحلة التالية من التدريب على مجموعة البيانات صورة الغذاء من الخطوة 3.2.5.ملاحظة: راجع ملاحظة الخطوة 3.3.4. بعد اكتمال التدريب من الخطوة 3.3.6، خذ أفضل أداء HTC ResNet-101 تكرار نموذج. ثم يتم استخدام هذا النموذج لاختبار أداء هذا الأسلوب.ملاحظة: راجع ملاحظة الخطوة 3.3.4. أسفرت الخطوات 3.3.3-3.3 عن أفضل النتائج للأغراض التي حددها مؤلفو هذه المقالة. ويلزم إجراء تجارب لكل مجموعة بيانات للعثور على التسلسل الأمثل للخطوات التدريبية وتك المعزّزة للبيانات.

Representative Results

تم اختبار NutriNet ضد ثلاثة أبنية التعلم العميق شعبية في ذلك الوقت: أليكس نت14, GoogLeNet51 و ريسنت16. كما تم اختبار معلمات التدريب المتعددة لجميع الهياكل لتحديد القيم المثلى2. ومن بين هذه الخيارات اختيار نوع حل الحلول، الذي يحدد كيفية تقليل وظيفة الخسارة. هذه الوظيفة هي مقياس الجودة الأساسي لتدريب الشبكات العصبية كما أنها أكثر ملاءمة للتحسين أثناء التدريب من دقة التصنيف. اختبرنا ثلاثة ملل: هبوط الانحدار العشوائي (SGD)52، التدرج المعجل Nesterov (NAG)53 و خوارزمية التدرج التكيفي (AdaGrad)54. المعلمة الثانية هي حجم المجموعة، والتي تحدد عدد الصور التي تتم معالجتها في نفس الوقت. عمق بنية التعلم العميق تحديد قيمة هذه المعلمة، كما تتطلب أعمق العمارات مساحة أكبر في ذاكرة GPU – نتيجة لهذا النهج كان ملء تماما مع الذاكرة مع الصور لجميع بنيات، بغض النظر عن العمق. المعلمة الثالثة هي معدل التعلم ، الذي يحدد السرعة التي يتم بها تغيير معلمات الشبكة العصبية أثناء التدريب. تم تعيين هذه المعلمة في انسجام مع حجم المجموعة، حيث أن عدد الصور المعالجة المتزامنة يفرض معدل التقارب. وقد تم تدريب نماذج AlexNet باستخدام حجم دفعة من 256 صورة ومعدل تعلم أساسي قدره 0.02؛ واستخدمت NutriNet حجم دفعة من 128 صورة ومعدل 0.01؛ صور GoogLeNet 64 ومعدل 0.005؛ و ResNet 16 الصور ومعدل 0.00125. تم تثبيت ثلاثة معلمات أخرى لجميع البنيات: سياسة معدل التعلم (خطوة إلى أسفل)، حجم الخطوة (30٪) وغاما (0.1). تصف هذه المعلمات بشكل مشترك كيف يتغير معدل التعلم في كل حقبة. والفكرة وراء هذا النهج هو أن يتم تخفيض معدل التعلم تدريجيا لضبط النموذج كلما اقترب من قيمة الخسارة المثلى. وأخيراً، تم تثبيت عدد عهود التدريب أيضاً إلى 150 لكل أبنية التعلم العميق2. وكانت أفضل نتيجة بين جميع المعلمات التي تم اختبارها التي حققت NutriNet دقة تصنيف 86.72٪ على مجموعة بيانات الاعتراف، والتي كانت أعلى بنحو 2٪ من أفضل نتيجة لـ AlexNet وأعلى قليلاً من أفضل نتيجة لـ GoogLeNet. وكان أفضل أداء الهندسة المعمارية عموما ResNet (بنحو 1 ٪) ، ولكن وقت التدريب ل ResNet هو أعلى بكثير مقارنة NutriNet (بعامل من خمسة تقريبا) ، وهو أمر مهم إذا كانت النماذج باستمرار إعادة تدريب لتحسين دقة وعدد المواد الغذائية يمكن التعرف عليها. حققت نوترنيت، أليكس نت وغوغلينت أفضل نتائجها باستخدام حلّل AdaGrad، في حين أن أفضل طراز من ResNet استخدم حلّل NAG. NutriNet كما تم اختبارها على مجموعة البيانات صورة UNIMIB2016 صورة الغذاء المتاحة للجمهور38. تحتوي مجموعة البيانات هذه على 3,616 صورة لـ 73 مادة غذائية مختلفة. حققت NutriNet دقة اعتراف بنسبة 86.39٪ على مجموعة البيانات هذه ، متفوقًا قليلاً على نتيجة التعرف على خط الأساس لمؤلفي مجموعة البيانات ، والتي كانت 85.80٪. بالإضافة إلى ذلك، تم اختبار NutriNet على مجموعة بيانات صغيرة من 200 صورة في العالم الحقيقي من 115 مادة مختلفة من المواد الغذائية والمشروبات، حيث حققت NutriNet دقة أعلى 5٪. لتدريب FCN-8s وهمية الغذاء صورة تجزئة نموذج، استخدمنا آدم55 كنوع حلاء، كما وجدنا أنه يؤديها على النحو الأمثل لهذه المهمة. تم تحديد معدل التعلم الأساسي منخفض جداً – إلى 0.0001. والسبب في انخفاض العدد هو حقيقة أنه يمكن معالجة صورة واحدة فقط في كل مرة، وهو ما يعد نتيجة لعملية التصنيف على مستوى البكسل. متطلبات ذاكرة وحدة معالجة الرسومات لهذا الأسلوب أكبر بكثير من تصنيف مستوى الصورة. وبالتالي، كان لا بد من أن يكون معدل التعلم منخفضاً بحيث لا تتغير البارامترات بسرعة كبيرة وتتلاقى إلى قيم أقل مثالية. وقد تم تحديد عدد عهود التدريب إلى 100، في حين تم تعيين سياسة معدل التعلم وحجم الخطوة وغاما على التنحي، 34٪ و 0.1 على التوالي، لأن هذه المعلمات أنتجت النماذج الأكثر دقة. تم إجراء قياسات دقة نموذج FCN-8s باستخدام قياس دقة البكسل15، وهو مشابه لدقة التصنيف لشبكات التعلم العميقة التقليدية ، والفرق الرئيسي هو أن الدقة يتم حسابها على مستوى البكسل بدلاً من مستوى الصورة: حيث السلطة الفلسطينية هو مقياس دقة بكسل، نij هو عدد من بكسل من فئة توقعت أن تنتمي إلى فئة j و t ط= Σj نij هو العدد الإجمالي للبكسل من فئة في تسميات الأرض الحقيقة1. بمعنى آخر، يتم حساب قياس دقة البكسل عن طريق قسمة وحدات البكسل المتوقعة بشكل صحيح على إجمالي عدد البيكسلات. وكانت الدقة النهائية للنموذج FCN-8s المدربين 92.18٪. ويبين الشكل 2 ثلاث صور نموذجية من مجموعة بيانات الصور المزيفة للأغذية (واحدة من كل مجموعة فرعية للتدريب والتحقق والاختبار)، إلى جانب تسميات التنبؤ الأرضية والنموذج المقابلة. تم تعيين المعلمات لتدريب HTC20 ResNet-101 نموذج لتجزئة صورة الطعام على النحو التالي: كان نوع حل الحلول المستخدمة SGD لأنه تفوقت على أنواع أخرى من الحلول. تم تعيين معدل التعلم الأساسي إلى 0.00125 وحجم الدفعة إلى صورين. تم تعيين عدد من العهود التدريبية إلى 40 في مرحلة التدريب، وتم تنفيذ مراحل التدريب المتعددة – أولا على مجموعة البيانات FRC الأصلي دون صور معززة، ثم على مجموعة البيانات FRC المعززة 8x و 4x المعززة عدة مرات بطريقة متناوبة، في كل مرة أخذ النموذج الأفضل أداء وصقله في مرحلة التدريب التالية. ويمكن الاطلاع على مزيد من التفاصيل عن مراحل التدريب في القسم 3-3 من نص البروتوكول. وأخيراً، استخدمت سياسة التعلم التدريجي، مع وجود عهود ثابتة عندما انخفض معدل التعلم (الحقبة 28 و35 لمرحلة التدريب الأولى). ومن الأمور المهمة التي يجب ملاحظتها أنه في حين أن هذا التسلسل من مراحل التدريب قد أسفر عن أفضل النتائج في اختبارنا في نطاق FRC، فإن استخدام مجموعة بيانات أخرى قد يتطلب تسلسلًا مختلفًا لتحقيق أفضل النتائج. تم تقييم هذا الحل القائم على ResNet لتجزئة صورة الطعام باستخدام مقياس الدقة التالي19: حيث P هو الدقة، TP هو عدد من التنبؤات الإيجابية الحقيقية من قبل نموذج تجزئة صورة الغذاء، FP هو عدد من التنبؤات الإيجابية الكاذبة و IoU هو تقاطع عبر الاتحاد، الذي يتم حساب مع هذه المعادلة: حيث تمثل منطقة التداخل عدد التنبؤات من قبل النموذج الذي يتداخل مع الحقيقة الأرضية، ومنطقة الاتحاد يمثل العدد الإجمالي للتنبؤات من قبل النموذج جنبا إلى جنب مع الحقيقة الأرض، سواء على مستوى بكسل ولكل فئة الغذاء الفردية. يتم استخدام استدعاء كإجراء ثانوي ويتم حساب بطريقة مماثلة، وذلك باستخدام الصيغة التالية19: حيث R هو استدعاء و FN هو عدد من التنبؤات السلبية كاذبة من قبل نموذج تجزئة صورة الغذاء. ثم يتم متوسط تدابير الدقة والتذكر عبر جميع الطبقات في الحقيقة الأرضية. وباستخدام هذه التدابير، حقق نموذجنا دقة متوسطة بلغت 59.2٪ ومتوسط نسبة استدعاء 82.1٪، والتي احتلت المرتبة الثانية في الجولة الثانية من تحدي التعرف على الأغذية19. وكانت هذه النتيجة 4.2٪ وراء المركز الأول و 5.3٪ قبل المركز الثالث من حيث متوسط مقياس الدقة. ويتضمن الجدول 1 نتائج المشاركين في المسابقة من بين أفضل 4 مشاركين. الشكل 1: الرسم التخطيطي لـ NutriNet بنية الشبكة العصبية العميقة. وقد نُشر هذا الرقم في Mezgec et al.2. الرجاء النقر هنا لعرض نسخة أكبر من هذا الرقم. الشكل 2: صور من مجموعة بيانات الصور المزيفة للأغذية. الصور الأصلية (يسار) ، وتسميات الحقيقة الأرضية التي تحمل علامة يدويًا (الوسط) والتنبؤات من طراز FCN-8s (يمين). وقد نُشر هذا الرقم في Mezgec et al.1. الرجاء النقر هنا لعرض نسخة أكبر من هذا الرقم. اسم الفريق وضع متوسط الدقة متوسط الاستدعاء rssfete 1 63.4% 88.6% simon_mezgec 2 59.2% 82.1% أريمبو 3 53.9% 73.5% كامنة 4 48.7% 71.1% الجدول 1: نتائج القمة 4 من الجولة الثانية من تحدي الاعتراف الغذائي. ويؤخذ متوسط الدقة كمقياس الأداء الأساسي ومتوسط الاستدعاء كمقياس ثانوي. وتؤخذ النتائج من المتصدرين المسابقة الرسمية19. ملفات تكميلية. الرجاء النقر هنا لتحميل هذا الملف.

Discussion

في السنوات الأخيرة، تم التحقق من الشبكات العصبية العميقة عدة مرات كحل مناسب للاعتراف صور الغذاء10،11،12،21،23،25،26،29،31،33. عملنا المقدمة في هذه المقالة يعمل على مزيد من إثبات هذا1،2. نهج التعرف على صورة الأغذية أحادية الإخراج هو واضح ويمكن استخدامه لتطبيقات بسيطة حيث من المتوقع الصور مع واحد فقط من المواد الغذائية أو المشروبات2.

يبدو نهج تجزئة صورة الطعام مناسبًا بشكل خاص للاعتراف بالصور الغذائية بشكل عام ، دون أي قيود على عدد المواد الغذائية1. لأنه يعمل عن طريق تصنيف كل بكسل الفردية من الصورة، وأنها قادرة على التعرف ليس فقط على أي عدد من المواد الغذائية في الصورة، ولكن أيضا تحديد مكان وجود عنصر الغذاء، فضلا عن مدى حجمها. ويمكن بعد ذلك استخدام هذا الأخير لإجراء تقدير الوزن الغذائي، لا سيما إذا كان يستخدم مع كائن مرجعي أو كاميرا ثابتة المسافة.

كان هناك بعض العمل المنجز فيما يتعلق بتوافر مجموعات البيانات صورة الغذاء3,22,27,30,36,37,38,39,40,41,42, ونحن نأمل أن يتم عمل المزيد في المستقبل, خاصة عندما يتعلق الأمر بتجميع مجموعات البيانات صورة الغذاء من مختلف المناطق في جميع أنحاء العالم, والتي من شأنها أن تمكن من وضع حلول أكثر قوة. حاليا، دقة التلقائية حلول التعرف على صورة الغذاء لم تصل بعد إلى دقة مستوى الإنسان35، وهذا من المرجح في جزء كبير منه بسبب استخدام مجموعات البيانات صورة الغذاء من حجم غير كاف والجودة.

في المستقبل، سيكون هدفنا هو مواصلة تقييم الإجراءات المتقدمة بشأن الصور في العالم الحقيقي. بشكل عام، تحتوي مجموعات البيانات في هذا المجال على صور يتم التقاطها في بيئات خاضعة للرقابة أو صور تم تحسينها يدويًا للتعرف عليها. هذا هو السبب في أنه من المهم جمع مجموعة بيانات كبيرة ومتنوعة من صور الطعام في العالم الحقيقي لتشمل جميع المواد الغذائية والمشروبات المختلفة التي قد يرغب الأفراد في التعرف عليها. الخطوة الأولى نحو ذلك تم توفيرها من خلال تحدي التعرف على الأغذية، والتي تضمنت مجموعة بيانات من صور الطعام في العالم الحقيقي19، ولكن هناك حاجة إلى مزيد من العمل للتحقق من صحة هذا النهج على صور الطعام من جميع أنحاء العالم وبالتعاون مع أخصائيي التغذية.

Disclosures

The authors have nothing to disclose.

Acknowledgements

ويود المؤلفون أن يشكروا تمارا بوتشر من جامعة نيوكاسل، أستراليا، على تقديمها مجموعة بيانات صور الطعام المزيفة. وقد دعم هذا العمل برنامج البحث والابتكار في أفق 2020 التابع للاتحاد الأوروبي (أرقام المنح 863059 – FNS-Cloud، 769661 – SAAM)؛ ووكالة البحوث السلوفينية (منحة رقم P2-0098). لم يكن للاتحاد الأوروبي ووكالة البحوث السلوفينية أي دور في تصميم أو تحليل أو كتابة هذه المقالة.

Materials

HARDWARE
NVIDIA GPU NVIDIA N/A An NVIDIA GPU is needed as some of the software frameworks below will not work otherwise. https://www.nvidia.com
SOFTWARE
Caffe Berkeley AI Research N/A Caffe is a deep learning framework. https://caffe.berkeleyvision.org
CLoDSA Jónathan Heras N/A CLoDSA is a Python image augmentation library. https://github.com/joheras/CLoDSA
Google API Client Google N/A Google API Client is a Python client library for Google's discovery based APIs. https://github.com/googleapis/google-api-python-client
JavaScript Segment Annotator Kota Yamaguchi N/A JavaScript Segment Annotator is a JavaScript image annotation tool. https://github.com/kyamagu/js-segment-annotator
MMDetection Multimedia Laboratory, CUHK N/A MMDetection is an object detection toolbox based on PyTorch. https://github.com/open-mmlab/mmdetection
NVIDIA DIGITS NVIDIA N/A NVIDIA DIGITS is a wrapper for Caffe that provides a graphical web interface. https://developer.nvidia.com/digits
OpenCV Intel N/A OpenCV is a library for computer vision. https://opencv.org
Python Python Software Foundation N/A Python is a programming language. https://www.python.org
PyTorch Facebook AI Research N/A PyTorch is a machine learning framework. https://pytorch.org
Ubuntu OS Canonical N/A Ubuntu 14.04 is the OS used by the authors and offers compatibility with all of the software frameworks and tools above. https://ubuntu.com

References

  1. Mezgec, S., Eftimov, T., Bucher, T., Koroušić Seljak, B. Mixed Deep Learning and Natural Language Processing Method for Fake-Food Image Recognition and Standardization to Help Automated Dietary Assessment. Public Health Nutrition. 22 (7), 1193-1202 (2019).
  2. Mezgec, S., Koroušić Seljak, B. NutriNet: A Deep Learning Food and Drink Image Recognition System for Dietary Assessment. Nutrients. 9 (7), 657 (2017).
  3. Chen, M., et al. PFID: Pittsburgh Fast-Food Image Dataset. Proceedings of the ICIP 2009. , 289-292 (2009).
  4. Joutou, T., Yanai, K. A Food Image Recognition System with Multiple Kernel Learning. Proceedings of the ICIP 2009. , 285-288 (2009).
  5. Yang, S., Chen, M., Pomerlau, D., Sukthankar, R. Food Recognition using Statistics of Pairwise Local Features. Proceedings of the CVPR 2010. , 2249-2256 (2010).
  6. Anthimopoulos, M. M., Gianola, L., Scarnato, L., Diem, P., Mougiakakou, S. G. A Food Recognition System for Diabetic Patients Based on an Optimized Bag-of-Features Model. IEEE Journal of Biomedical and Health Informatics. 18 (4), 1261-1271 (2014).
  7. LeCun, Y., Bengio, Y., Hinton, G. Deep Learning. Nature. 521, 436-444 (2015).
  8. Deng, L., Yu, D. Deep Learning: Methods and Applications. Foundations and Trends in Signal Processing. 7 (3-4), 197 (2014).
  9. Hubel, D. H., Wiesel, T. N. Receptive Fields, Binocular Interaction and Functional Architecture in the Cat’s Visual Cortex. The Journal of Physiology. 160 (1), 106-154 (1962).
  10. Singla, A., Yuan, L., Ebrahimi, T. Food/Non-Food Image Classification and Food Categorization using Pre-Trained GoogLeNet Model. Proceedings of the MADiMa’16. , 3-11 (2016).
  11. Yanai, K., Kawano, Y. Food Image Recognition using Deep Convolutional Network with Pre-Training and Fine-Tuning. Proceedings of the ICMEW 2015. , 1-6 (2015).
  12. Liu, C., et al. DeepFood: Deep Learning-Based Food Image Recognition for Computer-Aided Dietary Assessment. Proceedings of the ICOST 2016. , 37-48 (2016).
  13. De Sousa Ribeiro, F., et al. An End-to-End Deep Neural Architecture for Optical Character Verification and Recognition in Retail Food Packaging. Proceedings of the ICIP 2018. , 2376-2380 (2018).
  14. Krizhevsky, A., Sutskever, I., Hinton, G. ImageNet Classification with Deep Convolutional Neural Networks. Proceedings of the NIPS’12. , 1097-1105 (2012).
  15. Long, J., Shelhamer, E., Darrell, T. Fully Convolutional Networks for Semantic Segmentation. Proceedings of the CVPR 2015. , 3431-3440 (2015).
  16. He, K., Zhang, X., Ren, S., Sun, J. Deep Residual Learning for Image Recognition. Proceedings of the CVPR 2016. , 770-778 (2016).
  17. Bucher, T., vander Horst, K., Siegrist, M. Fruit for Dessert. How People Compose Healthier Meals. Appetite. 60 (1), 74-80 (2013).
  18. Food Recognition Challenge. AICrowd Available from: https://www.aicrowd.com/challenges/food-recognition-challenge (2020)
  19. Chen, K., et al. Hybrid Task Cascade for Instance Segmentation. Proceedings of the CVPR 2019. , 4974-4983 (2019).
  20. Kawano, Y., Yanai, K. Food Image Recognition with Deep Convolutional Features. Proceedings of the UbiComp 2014. , 589-593 (2014).
  21. Matsuda, Y., Hoashi, H., Yanai, K. Recognition of Multiple-Food Images by Detecting Candidate Regions. Proceedings of the ICME 2012. , 25-30 (2012).
  22. Christodoulidis, S., Anthimopoulos, M. M., Mougiakakou, S. G. Food Recognition for Dietary Assessment using Deep Convolutional Neural Networks. Proceedings of the ICIAP 2015. , 458-465 (2015).
  23. Tanno, R., Okamoto, K., Yanai, K. DeepFoodCam: A DCNN-Based Real-Time Mobile Food Recognition System. Proceedings of the MADiMa’16. , 89-89 (2016).
  24. Liu, C., et al. A New Deep Learning-Based Food Recognition System for Dietary Assessment on An Edge Computing Service Infrastructure. IEEE Transactions on Services Computing. 11 (2), 249-261 (2017).
  25. Martinel, N., Foresti, G. L., Micheloni, C. Wide-Slice Residual Networks for Food Recognition. Proceedings of the IEEE WACV 2018. , 567-576 (2018).
  26. Bossard, L., Guillaumin, M., Van Gool, L. Food-101-Mining Discriminative Components with Random Forests. Proceedings of the ECCV’14. , 446-461 (2014).
  27. Zhou, L., Zhang, C., Liu, F., Qiu, Z., He, Y. Application of Deep Learning in Food: A Review. Comprehensive Reviews in Food Science and Food Safety. 18, 1793-1811 (2019).
  28. Zhao, H., Yap, K. -. H., Kot, A. C., Duan, L. JDNet: A Joint-Learning Distilled Network for Mobile Visual Food Recognition. IEEE Journal of Selected Topics in Signal Processing. 14 (4), 665-675 (2020).
  29. Kawano, Y., Yanai, K. Automatic Expansion of a Food Image Dataset Leveraging Existing Categories with Domain Adaptation. Proceedings of the ECCV’14. , 3-17 (2014).
  30. Hafiz, R., Haque, M. R., Rakshit, A., Uddin, M. S. Image-Based Soft Drink Type Classification and Dietary Assessment System using Deep Convolutional Neural Network with Transfer Learning. Journal of King Saud University – Computer and Information Sciences. , (2020).
  31. Shimoda, W., Yanai, K. Weakly-Supervised Plate and Food Region Segmentation. Proceedings of the ICME 2020. , 1-6 (2020).
  32. Ciocca, G., Micali, G., Napoletano, P. State Recognition of Food Images using Deep Features. IEEE Access. 8, 32003-32017 (2020).
  33. Knez, S., Šajn, L. Food Object Recognition using a Mobile Device: Evaluation of Currently Implemented Systems. Trends in Food Science & Technology. 99, 460-471 (2020).
  34. Furtado, P., Caldeira, M., Martins, P. Human Visual System vs Convolution Neural Networks in Food Recognition Task: An Empirical Comparison. Computer Vision and Image Understanding. 191, 102878 (2020).
  35. Chen, M. -. Y., et al. Automatic Chinese Food Identification and Quantity Estimation. SA’12 Technical Briefs. , 1-4 (2012).
  36. Chen, J., Ngo, C. -. W. Deep-Based Ingredient Recognition for Cooking Recipe Retrieval. Proceedings of the MM’16. , 32-41 (2016).
  37. Ciocca, G., Napoletano, P., Schettini, R. Food Recognition: A New Dataset, Experiments, and Results. IEEE Journal of Biomedical and Health Informatics. 21 (3), 588-598 (2017).
  38. Salvador, A., et al. Learning Cross-Modal Embeddings for Cooking Recipes and Food Images. Proceedings of the IEEE CVPR 2017. , 3020-3028 (2017).
  39. Ciocca, G., Napoletano, P., Schettini, R. CNN-Based Features for Retrieval and Classification of Food Images. Computer Vision and Image Understanding. 176-177, 70-77 (2018).
  40. Cai, Q., Li, J., Li, H., Weng, Y. BTBUFood-60: Dataset for Object Detection in Food Field. Proceedings of the IEEE BigComp 2019. , 1-4 (2019).
  41. Min, W., et al. ISIA Food-500: A Dataset for Large-Scale Food Recognition via Stacked Global-Local Attention Network. Proceedings of the MM’20. , 393-401 (2020).
  42. . Python Available from: https://www.python.org (2020)
  43. Google Custom Search API. Google Available from: https://developers.google.com/resources/api-libraries/documentation/customsearch/v1/python/latest/customsearch_v1.cse.html (2020)
  44. . CLoDSA Available from: https://github.com/joheras/CLoDSA (2020)
  45. NVIDIA DIGITS. NVIDIA Available from: https://developer.nvidia.com/digits (2020)
  46. . JavaScript Segment Annotator Available from: https://github.com/kyamagu/js-segment-annotator (2020)
  47. . Fully Convolutional Networks for Semantic Segmentation Available from: https://github.com/shelhamer/fcn.berkeleyvision.org (2020)
  48. . MMDetection Available from: https://github.com/open-mmlab/mmdetection (2020)
  49. Szegedy, C., et al. Going Deeper with Convolutions. Proceedings of the CVPR 2015. , 1-9 (2015).
  50. Bottou, L. Large-Scale Machine Learning with Stochastic Gradient Descent. Proceedings of the COMPSTAT’2010. , 177-186 (2010).
  51. Nesterov, Y. A Method of Solving a Convex Programming Problem with Convergence Rate O(1/k2). Doklady Akademii Nauk SSSR. 27, 372-376 (1983).
  52. Duchi, J., Hazan, E., Singer, Y. Adaptive Subgradient Methods for Online Learning and Stochastic Optimization. Journal of Machine Learning Research. 12, 2121-2159 (2011).
  53. Kingma, D. P., Ba, J. Adam: A Method for Stochastic Optimization. arXiv Preprint. , (2017).

Play Video

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).

View Video