Deep Learning Hackathon 48h - Cotidiano (First place Project =D )
We believe nutrition tracking should be as simple as taking a picture.
Snap & Eat is a web application that tracks the user's food intake by pictures. We use state-of-the-art deep learning techniques to recognize dishes, making instant nutrition estimates from the user's meals.
The app also suggests meals based on the user's income, and is capable of showing places nearby that serve those dishes.
The system is implemented in Pytorch using fastai lib, relying on Jupyter Notebooks for prototyping purposes. For the web app, we use Flask and Node.js.
We use an Aggregated Residual Convolutional Neural Network - ResNeXt-101 with 101 layers, pretrained on ImageNet dataset. We finetune the model on Food-101 dataset, with more than 100 thousand images of 101 types of dishes. We achieve a significant improvement on accuracy (71% in our work compared to 50.1% in Bossard et al., 2014).
For recomending new dishes, we use minimum distance in an n-dimensional space of nutritional information that describes each dish.
We provide a ready-to-go AMI of a p2 instance on AWS with all libraries and dependencies installed.
AMI ID | ami-99442ee3 | |
AMI Name | snap-n-eat-ami | |
To launch an instance based on an AMI, see the AWS Reference. Don't forget to git pull to get the the latest version of the code!
cd snapandeat
git pull origin master
To run all the services, the following four comands need to be run in the AWS instance, once in the snapandeat
directory. We recommend using tmux to organize the terminals.
python src/services/food_predictor.py
python src/services/food_descriptor.py
python src/services/top_food.py
node src/webapp/server.js
To view and edit the Jupyter Notebooks, execute:
cd /home/ubuntu/snapandeat/src/notebooks
jupyter-notebook --no-browser --ip='*'
The default password for the notebooks is snapneat
. Don't forget to change it!
According to the World Health Organization, worldwide obesity has nearly tripled since 1975. In the United States, almost 75% of the population is overweight and more than half of the population is obese (OECD). Today, many diseases that were preivously thought as hereditary are now shown to be seen conected to biological disfunction related to nutrition.
Although being healty and eating better is something the vast majority of the population want, doing so usually requires great effort and organization. The lack of an easy and simple way to track nutrition information about the food you eat can easily lead to low engagement. By providing a very easy and fun way to keep track of what the user eat, we can largely improve engagement, and directly atack on of the largest health problems in the world.
Creates a drawing surface or wraps existing SVG element. Parameters widthnumberstringwidth of surface heightnumberstringheight of surface or Parameters DOMSVGElementelement to be wrapped into Snap str
Snap 是一个用于unix系统的简单的web开发框架,采用haskell编写。Snap进行了高水平的测试并且有良好的文档。特性包括: 一个快速的HTTP服务器库 一个逻辑合理的清晰的Monad用于web编程(Monad是对有顺序的代码的结构化组织) 一个基于HTML的模板系统用于生成页面 例子: Main.hs 此例子来源于http://www.cnblogs.com/hymenz/p/3287886.html
官网 snap.svg / snap.svg doc 创建元素 Snap(...) Snap(width,height) Snap(SVGElement) Snap(array of elements) Snap(CSS query selector) Paper.el(name, attr) Creates an element on paper with a given name and no
为了简化数据库开发,缺省有效地管理数据库资源,Snap-ConnectionPool以最简单的方式,为应用供以一个有效的数据库资源管理工具。 Snap-ConnectionPool以缓冲池的机制,在一定数量上限范围内,控制管理Connection,Statement和 ResultSet。任何数据库的资源是有限的,如果被耗尽,则无法获得更多的数据服务。在大多数情况下,资源的耗尽不是由于应用的正常负
Oh Snap! 是一个简单的用于移动应用程序上的 jQuery/Zepto 消息通知库。
Snap Links Lite 是一款可以一次打开多个链接的 Chrome 扩展,其实就是 FireFox 上 Snap Links Plus 的精简版,不提供任何设置功能。 使用 Snap Links Lite 很简单,按住鼠标右键框住你要打开的链接,放下鼠标之后这些链接就会全部在新标签页中打开,非常适合阅读相关新闻、以及博客中的一些内链。虽然说目前该扩 展功能还比较简单,但我认为还是很好用的,