Оцінка калорійності на основі зображень за допомогою глибокого навчання
Фото Чарльза 🇵🇭 на Unsplash

За даними ВООЗ, майже 20% смертей у всьому світі пов'язані з нездоровим харчуванням. 39% дорослих у віці 18 років і старше мали надмірну вагу в 2016 році, а 13% страждали ожирінням. Більшість населення світу живе в країнах, де надмірна вага та ожиріння вбивають більше людей, ніж недостатню.
Проблема тут полягає не в тому, щоб мати достатню кількість їжі, а в тому, що люди не знають, що є в їх раціоні. Якщо люди можуть оцінити споживання калорій, використовуючи зображення своєї їжі, вони можуть легко визначитися з кількістю калорій, яку вони хочуть спожити. Калькулятор калорій на основі зображень, побудований за допомогою глибокого навчання, може бути зручним додатком для відстеження того, що містить дієта людини
Якби люди знали, скільки калорій містить їхня їжа, тоді ця проблема буде дещо контрольована.
Запропоноване рішення
Люди часто фотографують свою їжу, перш ніж їсти, і розміщують її в соціальних мережах, ну а рішення полягає саме в цьому процесі. Ми пропонуємо оцінити вміст калорій у наданому користувачем зображенні шляхом визначення їжі та оцінки кількості за допомогою глибокого навчання.
Для оцінки калорій нам потрібне точне виявлення об'єкта в поєднанні з точним IoU (перетин над об'єднанням). Вражаючої кількості IoU можна досягти за допомогою виявлення одиночного знімка, яке також швидше, ніж аналоги, але проблема полягає в сегментації. Ми не можемо наблизити суму до результату Bounding Box, нам потрібна більша точність. Отже, рішенням буде використання сегментації екземплярів.
Як це було зроблено?
По-перше, нам потрібні були деякі дані, щоб відповідати моделі Mask-R-CNN для розпізнавання зображень за допомогою машинного навчання. Дані потрібно було позначити межами та класами для кожного продукту на тарілці. Подивившись деякий час, я знайшов набір зображень продуктів харчування, підготовлений Університет Мілано-Бікокка, Італія відповідно до наших вимог, набір даних називався UNIMIB-2016. Після деякої попередньої обробки набір зображень продуктів харчування був готовий до навчання за допомогою Mask R-CNN.
Ідентифікація продукту харчування
Щоб визначити, що є на тарілці, нам потрібно сегментувати дане зображення продуктів харчування на можливі категорії продуктів. Сегментація екземпляру класифікує окремий піксель на даному зображенні за можливими класами, тобто. продукти в нашому випадку. З огляду на проблему сегментації екземплярів, архітектура Mask R-CNN буде відповідним рішенням. Mask R-CNN робить зображення і видає три виходи, маски ідентифікованих елементів, обмежувальні поля та класи для кожної виявленої маски. Маски - це двійкові кодовані одноканальні матриці розміру вхідного зображення, які позначають межі ідентифікованого об'єкта.
Mask R-CNN розроблений на базі Faster R-CNN, який є регіональною згортковою нейронною мережею. Змотна нейронна мережа (ConvNet/CNN) - це алгоритм глибокого навчання, який може приймати вхідне зображення, призначати важливість (зважувані ваги та упередження) різним аспектам/об'єктам зображення та може диференціювати один тип зображення від іншого. Щоб мати можливість виявлення об’єкта, нам потрібно знати клас об’єкта, а також розмір та розташування обмежувального вікна. Звичайно для кожного зображення існує розсувне вікно для пошуку у кожній позиції на зображенні, як показано нижче. Це просте рішення. Однак різні об'єкти або навіть однакові предмети можуть мати різне співвідношення сторін та розміри залежно від розміру об'єкта та відстані від камери. А різні розміри зображення також впливають на ефективний розмір вікна. Цей процес буде надзвичайно повільним, якщо ми використаємо CNN для глибокого навчання для класифікації зображень у кожному місці.