All Projects → Murgio → Food Recipe Cnn

Murgio / Food Recipe Cnn

food image to recipe with deep convolutional neural networks.

Programming Languages

python3
1442 projects

Projects that are alternatives of or similar to Food Recipe Cnn

Pytorch Image Classification
Tutorials on how to implement a few key architectures for image classification using PyTorch and TorchVision.
Stars: ✭ 272 (-39.29%)
Mutual labels:  jupyter-notebook, convolutional-neural-networks, cnn, vgg
Keras transfer cifar10
Object classification with CIFAR-10 using transfer learning
Stars: ✭ 120 (-73.21%)
Mutual labels:  jupyter-notebook, classification, convolutional-neural-networks, cnn
Deep Learning With Python
Deep learning codes and projects using Python
Stars: ✭ 195 (-56.47%)
Mutual labels:  jupyter-notebook, convolutional-neural-networks, cnn, vgg16
Simpsonrecognition
Detect and recognize The Simpsons characters using Keras and Faster R-CNN
Stars: ✭ 131 (-70.76%)
Mutual labels:  jupyter-notebook, classification, convolutional-neural-networks, recognition
Phormatics
Using A.I. and computer vision to build a virtual personal fitness trainer. (Most Startup-Viable Hack - HackNYU2018)
Stars: ✭ 79 (-82.37%)
Mutual labels:  jupyter-notebook, data-science, classification, recognition
Image classifier
CNN image classifier implemented in Keras Notebook 🖼️.
Stars: ✭ 139 (-68.97%)
Mutual labels:  jupyter-notebook, convolutional-neural-networks, cnn
Interactive machine learning
IPython widgets, interactive plots, interactive machine learning
Stars: ✭ 140 (-68.75%)
Mutual labels:  jupyter-notebook, data-science, classification
Machine Learning With Python
Practice and tutorial-style notebooks covering wide variety of machine learning techniques
Stars: ✭ 2,197 (+390.4%)
Mutual labels:  jupyter-notebook, data-science, classification
Models
DLTK Model Zoo
Stars: ✭ 101 (-77.46%)
Mutual labels:  jupyter-notebook, data-science, cnn
Style transfer
CNN image style transfer 🎨.
Stars: ✭ 210 (-53.12%)
Mutual labels:  jupyter-notebook, convolutional-neural-networks, cnn
Grad Cam Tensorflow
tensorflow implementation of Grad-CAM (CNN visualization)
Stars: ✭ 261 (-41.74%)
Mutual labels:  jupyter-notebook, convolutional-neural-networks, vgg16
Numpy neural network
仅使用numpy从头开始实现神经网络,包括反向传播公式推导过程; numpy构建全连接层、卷积层、池化层、Flatten层;以及图像分类案例及精调网络案例等,持续更新中... ...
Stars: ✭ 339 (-24.33%)
Mutual labels:  jupyter-notebook, cnn, vgg
Tianchi Medical Lungtumordetect
天池医疗AI大赛[第一季]:肺部结节智能诊断 UNet/VGG/Inception/ResNet/DenseNet
Stars: ✭ 314 (-29.91%)
Mutual labels:  jupyter-notebook, classification, vgg
Thesemicolon
This repository contains Ipython notebooks and datasets for the data analytics youtube tutorials on The Semicolon.
Stars: ✭ 345 (-22.99%)
Mutual labels:  jupyter-notebook, data-science, convolutional-neural-networks
Practical Machine Learning With Python
Master the essential skills needed to recognize and solve complex real-world problems with Machine Learning and Deep Learning by leveraging the highly popular Python Machine Learning Eco-system.
Stars: ✭ 1,868 (+316.96%)
Mutual labels:  jupyter-notebook, classification, convolutional-neural-networks
Sigmoidal ai
Tutoriais de Python, Data Science, Machine Learning e Deep Learning - Sigmoidal
Stars: ✭ 103 (-77.01%)
Mutual labels:  jupyter-notebook, data-science, convolutional-neural-networks
Numpycnn
Building Convolutional Neural Networks From Scratch using NumPy
Stars: ✭ 436 (-2.68%)
Mutual labels:  data-science, convolutional-neural-networks, cnn
Pytorch Learners Tutorial
PyTorch tutorial for learners
Stars: ✭ 97 (-78.35%)
Mutual labels:  jupyter-notebook, convolutional-neural-networks, cnn
Codesearchnet
Datasets, tools, and benchmarks for representation learning of code.
Stars: ✭ 1,378 (+207.59%)
Mutual labels:  jupyter-notebook, data-science, cnn
Pycaret
An open-source, low-code machine learning library in Python
Stars: ✭ 4,594 (+925.45%)
Mutual labels:  jupyter-notebook, data-science, classification



Deep Learning food image recognition system for cooking recipe retrieval

Demo: DeepChef

logo

Overview

Update: The Blog Article is now out. Visit this tutorial on Medium for further information!

For example usage visit this Jupyter Notebook: Core Algorithm

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.

Process

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 analysis and Visualization, Split data (Train, Valid, Test)

3│── First attempts with simple ML models
│ └── Nearest Neighbor classifier (kNN)
│ └── k-Means Clustering
│ └── Support Vector Machine

4│── Transfer Learning: Training pre-trained CNN (Convolutional Neural Network)
│ └── AlexNet, VGG, ResNet, GoogLeNet

5│── Training your own CNN
│ └── Optimization

6│── Visualize results

7└── Create a web application (DeepChef) (work in progress)

Solution

The exact solution is the following:

  1. For every recipe W it has K number of pictures. For each of the images feature vectors are extracted from a pre-trained Convolution Neural Network trained on 1000 categories in the ILSVRC 2014 image recognition competition with millions of images. The feature vectors form an internal representation of the image in the last fully connected layer before the 1000-category Softmax Layer which was removed beforehand. These feature vectors are then dimensionally reduced by PCA (Principal Component Analysis) from an N x 4096 matrix to an N x V matrix, where V < 4096. As a result, one chooses the top 5 images with the smallest Euclidean distance to the input image (Approximate nearest neighbor), i.e. the top 5 optical, just from the picture information, similar pictures to the Input image.

  2. Furthermore, a CNN is trained with C number of categories with pictures of W recipes. C has been determined dynamically using topic modeling and semantic analysis of recipe names. As a result one gets for each category a probability to which the input image could belong.

  3. The top 5 categories of the input image of the CNN (2.) are compared with the categories of the top 5 optically similar images (1.)

Abstract

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.

DeepChef



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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].