无痛减肥黑科技:拍照识热量

简介: 一直以来,横亘在减肥塑身的志士仁人面前的除了坚定的意志还有一道很难逾越的坎:每天的摄入热量怎么算? 对于统计每天步数和大致热量消耗的设备,我们有手环、watch、手机;但每天的热量摄入,怎么计算呢? 每次就餐带上纸、笔、记算器,不太现实。

一直以来,横亘在减肥塑身的志士仁人面前的除了坚定的意志还有一道很难逾越的坎:每天的摄入热量怎么算?

对于统计每天步数和大致热量消耗的设备,我们有手环、watch、手机;但每天的热量摄入,怎么计算呢? 每次就餐带上纸、笔、记算器,不太现实。用热量计算app,需要手动输入每样食品吃了多少克,没有厨房称的帮助下,对大多数人来说,要感知50g和75g的区别比较困难。

当AI作为一个形容词,几乎可以应用在任何领域的时候,减肥这个领域,似乎还没有被充分开垦。


iDST数据实验室的算法同学,正致力于做一个小小的改变:

帮助用户,通过拍一张照片,识别照片里包含的食材和对应的营养成份;通过选择对应的份量,还可以算出大致热量。

到目前为止,已实现对大部分常见的食物:中餐各式菜肴、面点、水果、饮料的识别,覆盖了几千种南北食材。目前,该模型已经上线内测,我们也会努力尝试成为减肥界的一股清流。

ps,如果正在减肥的同学想抢先上手尝试,请直接拉到页面底部试用~

 

让手机镜头,识别面前的每一种食物,输出它们的营养、热量和做法,我们是怎么做的?

一、数据收集和处理:

首先是大量的数据收集和知识库的建设。
我们通过各类网站:搜索引擎、点评和外卖、淘宝商品和用户评价、获取了几千万张食物相关的图片。
根据解析到的实体标签以及映射到后台的知识库,把所有的图片分成对应为后台食材的3000个左右的叶子类。从实拍集和训练效果的角度,保证每一个叶子类有至少2000张以上的训练数据。

二、训练框架和方法:

食材识别的难点在哪里?

与通常的图像分类算法相比,通过拍照识别食材并估算热量是一个异常艰巨的任务。因为烹调食品是一个复杂且漫长的过程,期间各种食材会经历多种物理和化学甚至生物变化。

例如,刀工会使得食材发生物理变化。即使是标准的刀工,也会将原先的食材加工为片、丁、丝、条、茸、段、麦穗型、梳子型、菊花形、米状、末等完全不同的形状。即便是同样的片状,还会细分为指甲片、柳叶片、月牙片、骨牌片、象眼片、马牙片、秋叶片等不同的模样。形状的多变无疑增加了识别的难度。

烹饪中的化学反应进一步增加了识别的难度。例如,随着烹饪过程中化学反应的发生,食材的颜色通常会发生变化,有些食材的颜色会与烹饪之前有很大的反差。

有些食材例如蛋白质会从液态变为固态,有些水溶性的食材会从固态变为液态。涉及到发酵等生物反应的烹饪过程时,食材会进一步变的面目全非。

在实际的识别过程中,有些食材只露出小小的一角,而有些菜,如水煮鱼,看到的是上面的鱼片,用户会希望模型还有对应的知识,即鱼片的下面,其实铺满了豆芽。

由此,食材的识别和通常的图片识别和分类算法相比,有更多的困难。

我们的方法

针对食材识别的问题,我们的方法是:使用深度学习的方法,将黑盒的神经网络与白盒的烹饪领域知识结合起来,同时确保训练数据的数量和质量。

我们综合评估了:GoogleNet, AlexNet, VGG, GoogleNet+BatchNorm 以及Caffe和TensorFlow,从Top5 ACC (输出的前5个结果的准确率)的角度,上述框架没有存在显著的差异性。目前我们采用的是Caffe以及GoogleNet 和 ImageNet,更多的是从工程的可伸缩性,支持并发部署的角度来考虑的。


三、挑战和业界评测:

在饮食领域的图像识别和分类上面,业内一直有关注和研究,比如下面的paper:

Deep Learning Based Food Recognition 
DeepFood: Deep Learning-based Food Image Recognition for Computer-aided Dietary Assessment 
ChineseFoodNet: A large-scale Image Dataset for Chinese Food Recognition 
NutriNet: A Deep Learning Food and Drink Image Recognition System for Dietary Assessment
ChinFood1000: A Large Benchmark Dataset for Chinese Food Recognition
Learning Cross-modal Embeddings for Cooking Recipes and Food Images

对上述paper中的方法进行比较,基本上是 基于AlexNet,Vgg,Gnet,ResNet,今年CVPR的DenseNet做修改,细节有差异。

从数据集和分类目标两个层面,在启动之初,我们就站在比目前业界更高的起点上。 

上面是几个用于做公开测评的通用数据集的数据情况,我们可以看到上述通用测试集的分类较少,每一个分类的样本数量相对均匀。从千万级的数据规模和过千的分类数量上看, 我们的数据规模是比较庞大的。

从分类目标上,我们首先识别食材(而非菜名),进而解析出营养成分和热量,从场景上能够较完整地反映用户健康和饮食习惯。从食材的数量和烹饪方式上看,中餐的识别相较于西餐要困难,识别食材又比菜名更困难。

识别效果评测,目前业内的最好成绩是:

数据集名称

分类数量

数据集大小

准确率

备注

Food-101

101

101,000

88.28%

基于GoogleNet

UEC FOOD 100

100

9,060

81.45%

日餐为主

UEC FOOD 256

256

31,397

76.17%

基于GoogleNet

UNIMIB 2016

65

3616

86.39%

基于AlexNet

Paper作者自有集

520

220,000

86.72%

 

Paper作者实拍集

520

200

55%

 

从目前结果上看,我们的效果远远领先于MIT的CSAIL和业内在食物(中餐)上识别能力。


四、拍食物有什么用 

对大家日常饮食有什么用? 

当食物的营养和热量识别,简化成只需要轻点拍摄这一步之后,我们可以帮助用户记录日常的饮食摄入。

有了日常记录以后,可以从膳食结构角度,帮助用户分析摄入的营养和食材的均衡情况,基于中国居民膳食指南,同时参考美国、日本等居民膳食指南,给出饮食建议。这就是营养师口中的“营养干预”,帮助减肥、增脂、增肌都是这个范畴。

You are what you eat,人的健康除了先天、环境因素之外,最大的影响因子就是饮食习惯。

从模型训练和算法的角度,当学会识别食材以后,后续将学会识别菜谱名称,从而告诉你做法,以及,从千万个淘宝和天猫商品中,根据菜谱为你选出:主料、辅料、佐料。

从此以后,正确的美食打开方式应该是:

输入菜肴名称,看完菜谱做法以后,根据算法为你准备好的:主料、辅料、佐料,轻触点击,一键加入购物车。等着食材送上门以后一显身手吧。

切换成线下,到菜市场买菜也没问题,打开手机,拍一拍面前的生鲜食材,它叫什么,营养元素和热量,有哪些做法,可以搭配哪些食材一起烹饪,即时为你呈现。

 

作为iDST图像识别能力的输出,拍美食是“万物识别”项目的一部分,目标是致力于让AI使我们的生活越来越美好。如果希望体验上述技术,快捷传送门:

亲问app二维码

目录
相关文章
|
人工智能 算法框架/工具 Anolis
Anolis OS 23 基于 AMD 实例的 AI 推理优化实践 | 龙蜥技术
如何使用龙蜥社区容器镜像加速 AI 应用推理部署?
|
12月前
|
人工智能 API 开发者
FastAPI开发者福音!FastAPI-MCP:将FastAPI秒变MCP服务器的开源神器,无需配置自动转换!
FastAPI-MCP是一款能将FastAPI应用端点自动转换为符合模型上下文协议(MCP)的开源工具,支持零配置自动发现接口并保留完整文档和模式定义。
5609 113
FastAPI开发者福音!FastAPI-MCP:将FastAPI秒变MCP服务器的开源神器,无需配置自动转换!
|
XML JSON Java
Logback 与 log4j2 性能对比:谁才是日志框架的性能王者?
【10月更文挑战第5天】在Java开发中,日志框架是不可或缺的工具,它们帮助我们记录系统运行时的信息、警告和错误,对于开发人员来说至关重要。在众多日志框架中,Logback和log4j2以其卓越的性能和丰富的功能脱颖而出,成为开发者们的首选。本文将深入探讨Logback与log4j2在性能方面的对比,通过详细的分析和实例,帮助大家理解两者之间的性能差异,以便在实际项目中做出更明智的选择。
1515 3
|
4月前
|
传感器 数据采集 监控
【开源免费】基于 STM32F103C8T6 单片机的智能家居系统设计与实现
基于STM32F103C8T6与ESP8266的智能家居系统,实现温控采集、OLED显示、MQTT上云及APP远程控制。涵盖传感器节点、控制节点与WiFi网关,支持实时监控与远程操作,模块化设计,扩展性强,低成本高稳定性,适用于物联网学习与智能家居开发实践。
|
消息中间件 SQL 数据可视化
最接地气的.NET微服务框架 - Wing
最接地气的.NET微服务框架 - Wing
525 0
|
12月前
|
机器学习/深度学习 JSON 监控
国内最大的MCP中文社区来了,4000多个服务等你体验
国内最大的MCP中文社区MCPServers来了!平台汇聚4000多个服务资源,涵盖娱乐、监控、云平台等多个领域,为开发者提供一站式技术支持。不仅有丰富的中文学习资料,还有详细的实战教程,如一键接入MCP天气服务等。MCPServers专注模块稳定性和实用性,经过99.99% SLA认证,是高效开发的理想选择。立即访问mcpservers.cn,开启你的开发之旅!
13961 16
|
运维 Devops jenkins
自动化运维:打造高效DevOps流水线
【8月更文挑战第44天】本文将通过深入浅出的方式,带你构建一个自动化的DevOps流水线,提升开发和部署效率。从基础概念到实际操作,我们一步步剖析如何实现代码提交、自动测试、构建、部署的全过程自动化。你将学会使用Jenkins、Git、Docker等工具,并结合Shell脚本编写,完成一个完整的自动化流程。文章末尾附有完整的示例代码,助你快速上手实践。
|
机器学习/深度学习 算法 搜索推荐
外卖平台推荐算法的优化与实践
外卖平台推荐算法的优化与实践
|
消息中间件 存储 负载均衡
2024消息队列“四大天王”:Rabbit、Rocket、Kafka、Pulsar巅峰对决
本文对比了 RabbitMQ、RocketMQ、Kafka 和 Pulsar 四种消息队列系统,涵盖架构、性能、可用性和适用场景。RabbitMQ 以灵活路由和可靠性著称;RocketMQ 支持高可用和顺序消息;Kafka 专为高吞吐量和低延迟设计;Pulsar 提供多租户支持和高可扩展性。性能方面,吞吐量从高到低依次为
6154 1
|
供应链 数据可视化 搜索推荐
电商管理:从传统到数字化的转变
在数字化时代,电商管理涵盖供应链、客户关系、数据管理和营销推广等多个关键领域。本文探讨了这些领域的策略及挑战,并介绍了板栗看板这一创新工具如何助力电商企业实现高效运营和可持续发展。
346 19