• Stars
    star
    156
  • Rank 239,589 (Top 5 %)
  • Language
    Jupyter Notebook
  • License
    MIT License
  • Created about 3 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Take a photo of food and learn about it.

Nutrify - take a photo of food and learn about it

Note: Nutrify is a work in progress. Expect plenty of errors and bugs.

Updates

  • 18 Jan 2023 - Wrote a blog post and made a YouTube video about Nutrify's data engine (the driving force behind making the FoodVision model better)

Sign up for email updates.

What's the goal?

To build a Pokédex for food!

To do so, we're going to need lots of food images...

You can start uploading/labelling your food images via Nutrify's Food Image Collector app.

Streaming progress on Twitch/making videos about it on YouTube.

End goal: take a photo of food an learn about it (nutrition information, where it's from, recipes, etc).

Something like this (a data flywheel/engine for food images):

Status: making a small application to collect large amounts of food images.

What's in this repo?

TODO: document this better (will likely do a big refactor once the data engine for classification is fleshed out)

  • images/ - folder with misc images for the project
  • data_exploration/ - notebooks & data exploring the USDA FoodData Central data (this has info about the nutrition content of foods)
  • food_image_collector.py - Streamlit-powered app that collects photos and uploads them to a Google Storage bucket and stores metadata in Google Sheets (these are private), see the workflow below.
  • save_to_gsheets.py - Small utility script that saves a bunch of metadata about an uploaded image to a Google Sheet (this will likely move into a dedicated utils/ folder later on.
  • utils.py - Series of helper functions used in food_image_collector.py, for example, upload_blod(), a function that uploads a photo to Google Storage.
  • requirements.txt - A text file with the dependency requirements for this project.

Image uploading workflow

The script food_image_collector.py is currently hosted using Streamlit Cloud. It does this:

Master plan

As of: 15 March 2022

Note: this is very likely to change.

Stage 1 (done)

Build food image collection app, need a way to store images at large scale, images: object storage (Google Storage), info about images: relational database (PostgreSQL).

Stage 2 (done, see: https://github.com/mrdbourke/nutrify/releases/tag/v0.1.3)

Build small prototype computer vision app to take a photo of ~100 different types of foods and return back their nutrition information (this'll be done via a public nutrition API, if you know of one, please let me know).

Stage 3 (up to here)

Merge inputs to stage 1 and stage 2 into a database (start linking together the data flywheel, more images get taken, models get improved, more images, better models, more images, better models, etc).

Stage 4

Upgrade stage 1, 2, 3 to work with world's 100 most commonly eaten foods (start with top of the Pareto curve and then start working backwards towards the tail).

Stage 5

Repeat the above until almost every food you can eat is covered.

Log

  • 18 Jan 2022 - Nutrify iOS app well on the way, data engine for image classification well under way, full code coming soon
  • 14 Mar 2022 - added macronutrient details for ~100 foods, see release notes
  • 17 Jan 2022 - cleaned up the data by removing duplicates/fixing some low performing classes (see the update comment)
  • 14 Jan 2022 - Nutrify can now identify 100 foods (see release notes)
  • 22 Dec 2021 - Nutrify can now identify 78 foods

More Repositories

1

machine-learning-roadmap

A roadmap connecting many of the most important concepts in machine learning, how to learn them and what tools to use to perform them.
7,121
star
2

pytorch-deep-learning

Materials for the Learn PyTorch for Deep Learning: Zero to Mastery course.
Jupyter Notebook
6,701
star
3

tensorflow-deep-learning

All course materials for the Zero to Mastery Deep Learning with TensorFlow course.
Jupyter Notebook
4,709
star
4

zero-to-mastery-ml

All course materials for the Zero to Mastery Machine Learning and Data Science course.
Jupyter Notebook
2,449
star
5

cs329s-ml-deployment-tutorial

Code and files to go along with CS329s machine learning model deployment tutorial.
Jupyter Notebook
573
star
6

m1-machine-learning-test

Code for testing various M1 Chip benchmarks with TensorFlow.
Jupyter Notebook
482
star
7

pytorch-apple-silicon

Setup PyTorch on Mac/Apple Silicon plus a few benchmarks.
Jupyter Notebook
356
star
8

your-first-kaggle-submission

How to perform an exploratory data analysis on the Kaggle Titanic dataset and make a submission to the leaderboard.
Jupyter Notebook
216
star
9

airbnb-amenity-detection

Repo for 42 days project to replicate/improve Airbnb's amenity (object) detection pipeline.
Jupyter Notebook
156
star
10

mac-ml-speed-test

A few quick scripts focused on testing TensorFlow/PyTorch/Llama 2 on macOS.
Jupyter Notebook
86
star
11

food-not-food

Machine Learning powered app to decide whether a photo is food or not.
Jupyter Notebook
54
star
12

python-list-comprehensions-tutorial

This is the code to go along with the Python list comprehensions video by Daniel Bourke on YouTube.
Jupyter Notebook
43
star
13

mrdbourke

34
star
14

learn-transformers

Work in progress. Simple repository to learn Transformers (and transformers).
Jupyter Notebook
28
star
15

old_blog

My dev's blog
HTML
21
star
16

rag-resources

A collection of curated RAG (Retrieval Augmented Generation) resources.
21
star
17

charlie-walks

Website code for Charlie Walks: A Novel by Daniel Bourke
HTML
12
star
18

Udacity_DLND_Projects

All of my projects from the Udacity Deep Learning Foundations Nanodegree.
Jupyter Notebook
12
star
19

coursera_bioinformatics_and_genetic_algorithm_experiment

Code relating to the Coursera Bioinformatics Specialization as well as my own genetic algorithm experiment.
Jupyter Notebook
11
star
20

AIND-Machine-Translation

The code and other files related to the Udacity Artificial Intelligence Nanodegree Machine Translation project.
Jupyter Notebook
10
star
21

twitch-ml-deploy

Deploying a ML model in the browser using TensorFlow JS
JavaScript
8
star
22

Sentiment-Analysis-with-Keras

Materials and code relating to Learning Intelligence 25.
Jupyter Notebook
8
star
23

AIND-VUI-Capstone

Code and other files related to the Udacity Artificial Intelligence Nanodegree Deep Neural Network Speech Recognizer.
HTML
7
star
24

udacity-AIND

All of my files and projects associated with Term 1 of the Udacity Artificial Intelligence Nanodegree.
HTML
5
star
25

LearnPythonTheHardWay

All of the exercises from the Learn Python the Hard Way book from Zed Shaw.
Python
5
star
26

pytorch-resnet-twitch

PyTorch implementation(s) of various ResNet models from Twitch streams.
Jupyter Notebook
5
star
27

udacityDLfoundationsP2

Second project of the Udacity Deep Learning Foundations Nanodegree
HTML
5
star
28

nutrify-ai-grant-application

Nutrify application to aigrant.org
HTML
4
star
29

AIND-NLP

Materials relating to the Udacity AIND NLP classes.
Jupyter Notebook
3
star
30

modal-test

testing modal.com
Python
2
star
31

Treehouse

Projects from my Treehouse Coursework
2
star
32

hello-world

Github practice
2
star
33

food-data-central-database-creation-with-supabase

JavaScript
2
star
34

html-search-bar

Simple HTML search bar to search through a JavaScript array of JSON.
JavaScript
2
star
35

iOS-Retro-Calculator

Retro/Space
1
star
36

test-data-size-repo

1
star
37

ios-course-super-cool-app

Basic-iOS-app
1
star
38

blog-starter-test-1

🚀⚡️ Blazing fast blog built with Gatsby and Cosmic JS 🔥
JavaScript
1
star