Переклад зображення в рецепт із глибокими згортковими нейронними мережами Муріза Серіфовича До даних
Муріз Серіфович
9 вересня 2018 · 13 хв читання
У цій статті ми розглянемо, як тренувати глибокі згорткові нейронні мережі разом із Keras класифікувати зображення за категоріями продуктів та вивести відповідний рецепт. Набір даних містить> 800 000 зображень продуктів та> 300 000 рецептів від chefkoch.de.

Постійно будь-яка інша сфера впливає на самопочуття людини так само, як харчування. Щодня незліченні фотографії продуктів харчування публікуються від користувачів у соціальних мережах; від першого домашнього торта до верхньої страви Мішлен, радість ділиться з вами у випадку, якщо блюдо було успішно приготовано.
Фактом є те, що як би ви не відрізнялися один від одного, гарна їжа цінується всіма.
Досягнення класифікації окремих інгредієнтів для приготування є мізерними. Проблема в тому, що загальнодоступних відредагованих записів майже немає. Ця робота стосується проблеми автоматизованого розпізнавання сфотографованого страви для приготування та подальший вихід відповідного рецепта. Відмінність між складністю обраної проблеми та попередніми контрольованими проблемами класифікації полягає в тому, що страви з їжею мають велике перекриття (це також схожість між класами)), оскільки страви різних категорій можуть виглядати дуже схожими лише з точки зору інформації про зображення.
Підручник поділено на менші частини у відповідності з девізом "розділяй і володарюй":
Згідно з поточним станом, найбільший набір даних на німецькій мові з понад 300 000 рецептів буде зібраний та проаналізований. Потім буде представлено нещодавно розроблений метод, згідно з відомими автором: поєднання розпізнавання об’єктів або розпізнавання судів з використанням згорткових нейронних мереж (короткий CNN) та пошук найближчих сусідів (Класифікація наступного сусіда) в записі з понад 800 000 зображень. Ця комбінація допомагає швидше знайти правильний рецепт, оскільки топ-5 категорій CNN порівнюються з категорією наступних сусідів із рангованою кореляцією. Підходи, засновані на кореляції рангу, такі як Кендалл Тау по суті вимірюють ймовірність того, що два елементи будуть в однаковому порядку в двох рейтингових списках. Математично Кендалл Тау обчислюється як
- N = Загальна кількість пар
- C = Кількість збіжних пар
- D = Кількість суперечливих пар
Точний конвеєр виглядає так:
- Для кожного рецепта W є К кількість картинок. Для кожного з цих зображень виділяються вектори функцій із попередньо підготовленої нейромережі Convolution, підготовленої за 1000 категоріями в конкурсі ILSVRC 2014 на розпізнавання зображень з мільйонами зображень. Вектори функцій формують внутрішнє представлення зображення в останньому повністю зв’язаному шарі перед шаром Softmax 1000-категорії, який було попередньо видалено. Потім ці вектори характеристик розмірно зменшуються за допомогою PCA (аналіз основних компонентів) з N x 4096 матриця до N x 512 матриця. Як результат, вибирається 5 найкращих зображень із найменшою евклідовою відстанню до вхідного зображення (приблизний найближчий сусід), тобто 5 найкращих оптичних, лише за інформацією про зображення, подібні до вхідного зображення.
- Крім того, CNN проходить навчання з C кількість категорій із зображеннями W рецепти. C. було визначено динамічно з використанням моделювання тем та семантичного аналізу назв рецептів. В результаті ми отримуємо для кожної категорії ймовірність, до якої могло належати вхідне зображення.
- Категорії топ-k із CNN (2.) порівнюються з категоріями з оптично подібних зображень топ-k (1.) з кореляцією Кендалла Тау.