日益富足的时代,人们的关注点从温饱转向饮食健康。再加上身处以 “瘦” 为美的环境中,不知有多少男女的一日三餐是经过严格计算之后决定的。
且不说人们控制饮食的执行力如何,在清晰记住或查阅每种食物单位重量的营养含量、目测重量、再计算面前食物各种营养物质总量这一环节,已经使一部分人失去耐心。
对此,德国卡尔斯鲁厄理工学院的 Robin Ruede 及其团队本月初发表的题为《在富含营养信息的新型大规模食谱数据集上进行多任务学习,来预测食物热量》(Multi-Task Learning for Calorie Prediction on a Novel Large-Scale Recipe Dataset Enriched with Nutritional Information)的论文中提到的计算机识别方法,或许能够帮助人们轻松完成计算食物营养物质含量的第一步,直达控制饮食的最关键环节。
图 | 在多任务设置中进行训练的模型,可推断卡路里、成分和营养素如蛋白质等
事实上,使用计算机视觉技术估算图片中食物热量的技术早就有所应用,但 Robin Ruede 团队表示,现有的基于图像视觉计算食物热量的大多数产品通常需要手动输入份量大小甚至指定配料,耗时且不够准确,而且计算过程繁琐。
已有技术通常采用多阶段方法完成,将图像按像素方向细分为食物和非食物,然后将属食物的图像分类到固定的类别集,下一阶段进行食物体积、重量估算以及营养信息预测,再通过上一阶段估算出的信息与数据库数据进行匹配来预测卡路里,最后,使用元数据(例如 GPS 位置和用户的食物偏好)来改善预测结果。
而 Robin Ruede 团队提出,要 “从一顿饭的图像以端到端的方式直接预测食物热量”,他们引入了一个框架,通过使用短语嵌入将食物成分及质量、与已建立的数据库中大量菜肴食谱图像数据进行对比匹配,从而实现端到端地估算一张图片中食物的卡路里、脂肪、蛋白质以及其他营养物质含量。
图 | 该团队识别面包热量的案例
据了解,为准确获取图片中食物营养成分信息、并自动测算食物卡路里值,Robin Ruede 及其团队将卡路里估算与蛋白质、碳水化合物、脂肪以及多种成分含量的分类预测结合,对 308000 张图像(食物照片、成分和说明)中的 70000 多个食谱(包括各种沙拉、披萨、蛋糕、汤等),与食品项目数据库中的结构化信息进行匹配,并基于数据库中大规模的菜谱配方中各成分含量值,来估算一张图片中食物的热量及其他营养物质含量的方法。
在确保估算数据的精确性上,Robin Ruede 团队以图像食谱配方中出现的成分为基础进行估算,用户提供的图片中出现的卡路里、脂肪、蛋白质等每一个成分、及其质量,都会映射到估算程序完全结构化的数据中,从而为生成估算的相应结果数值备用。
具体来说,他们提到的端到端的方式,是用单一模型替代多阶段处理,仅需要指定原始输入和最终输出,将单个网络应用于输入网络,神经网络可自动识别内部相关信息,并直接估计所需的最终输出,无需进行不同子任务的模型流水线训练。
关键词: 视觉估算卡路里