Update: The Blog Article is now out. Visit the turorial on Medium for further information!
Maturaarbeit 2018: This work makes usage of deep convolutional neural networks with Keras to classify images into 230 food categories and to output a matching recipe. The dataset contains >400'000 food images and >300'000 recipes from chefkoch.de.
Hardly any other area affects human well-being to a similar extent as nutrition. Every day countless of food pictures are published by users on social networks; from the first home-made cake to the top Michelin dish, the joy of the world is shared with you in case a dish is successful. It is a fact that no matter how different you may be from each other, good food is appreciated by everyone. Advances in the classification or object recognition of individual cooking ingredients are sparse. The problem is that there are almost no public edited records available.
The code (Jupyter notebooks) is provided with numerous comments in German. The process looks like this:
1βββ Data preparation
β βββ Clearing data
β βββ Data augmentation
2βββ Data Analyse und Visulation, Daten splitten (Train, Valid, Test)
3βββ Versuche mit ersten einfachen ML Modellen
β βββ Nearest Neighbor classifier (kNN)
β βββ k-Means Clustering
β βββ Support Vector Machine
4βββ Transfer Learning: Training von pre-trained CNN (Convolutional Neural Network)
β βββ AlexNet, VGG, ResNet, GoogLeNet
5βββ Training von eigenem CNN
β βββ Optimization
6βββ Ergebnisse visualisieren
7βββ Erstellen einer Android Web Applikation (still open)
This work deals with the problem of automated recognition of a photographed cooking dish and the subsequent output of the appropriate recipe. The distinction between the difficulty of the chosen problem and previous supervised classification problems is that there are large overlaps in food dishes, as dishes of different categories may look very similar only in terms of image information. The task is subdivided into smaller areas according to the motto divide and conquer: According to the current state, the largest German-language dataset of more than 300'000 recipes will be presented, with a newly developed method, according to the author's knowledge, presented by the combination of object recognition or cooking court recognition using Convolutional Neural Networks (short CNN) and the search of the nearest neighbor of the input image (Next-Neighbor Classification) in a record of over 400,000 images. This combination helps to find the correct recipe more likely, as the top-5 categories of the CNN are compared to the next-neighbor category.
The result is the product DeepChef. The web application (coming soon) expects a meal picture as input. As a result, you get the associated recipes.