我们分析了1000万张食物照片:AI最常误识别的20种食物
来自Nutrola的AI食物识别系统的原始数据揭示了哪些食物最难被计算机视觉正确识别,为什么它们会让算法困惑,以及我们如何提高准确性。
AI食物识别背后的数据
基于AI的食物识别技术彻底改变了营养追踪的方式。用户只需拍照,计算机视觉便能自动识别食物,省去了在数据库中查找和猜测份量的麻烦。Nutrola的Snap & Track功能每月处理数百万张食物图片,用户在50多个国家依赖这一功能作为主要的记录方式。
然而,AI食物识别并不完美。一些食物始终能让最先进的计算机视觉模型感到困惑。为了了解这项技术的优势与不足,我们分析了在2025年1月至2026年1月期间通过Nutrola的Snap & Track系统处理的1000万张食物照片。我们将AI的识别结果与用户的修正、人工验证和营养师的评审进行了比较,以计算每种食物的准确率并识别出系统性误识别的模式。
以下是我们的发现。
方法论
我们的分析包括来自53个国家的Nutrola用户提交的10,247,831张食物照片。对于每张照片,我们跟踪了以下信息:
- 初始AI识别: AI以最高置信度识别出的食物
- 用户修正率: 用户将AI识别更改为其他食物的频率
- 营养师验证: 随机抽取50,000张图片,由合格的营养师审核,以建立独立于用户修正的真实准确性
- Top-1准确率: AI的最高置信度识别是否正确
- Top-3准确率: 正确食物是否出现在AI的三种最高置信度预测中
总体而言,Nutrola的Snap & Track在所有食物类别中实现了87.3%的Top-1准确率和94.1%的Top-3准确率。这些数据与最新的食物识别模型的已发布基准一致,通常在Food-101和ISIA Food-500等标准数据集上报告80-90%的Top-1准确率。
然而,不同食物类型的准确性差异显著。有些类别的Top-1准确率超过95%,而其他类别则低于60%。
最常误识别的20种食物
完整排名
| 排名 | 食物 | Top-1准确率 | Top-3准确率 | 最常见误识别 | 误识别时的卡路里误差 |
|---|---|---|---|---|---|
| 1 | 蒸粗麦粉 | 52.1% | 71.4% | 昆诺阿、麦片、米饭 | +/- 15-40 kcal 每份 |
| 2 | 原味希腊酸奶 | 55.8% | 78.2% | 酸奶油、拉布内、普通酸奶 | +/- 30-80 kcal 每份 |
| 3 | 花椰菜米 | 57.3% | 74.6% | 白米、蒸粗麦粉 | +110-150 kcal 每份 |
| 4 | 味噌汤 | 58.9% | 76.1% | 其他汤类、出汁 | +/- 20-60 kcal 每份 |
| 5 | 扁面包种类 | 59.4% | 73.8% | Naan、罗蒂、皮塔饼、玉米饼 | +/- 50-150 kcal 每片 |
| 6 | 巴西莓碗 | 61.2% | 79.5% | 奶昔碗、混合浆果碗 | +/- 100-200 kcal 每碗 |
| 7 | 火鸡培根 | 62.0% | 80.1% | 猪肉培根 | +40-70 kcal 每份 |
| 8 | 天贝 | 63.4% | 77.9% | 豆腐(硬) | +/- 30-80 kcal 每份 |
| 9 | 西葫芦面条 | 64.1% | 81.3% | 普通意大利面、粉丝 | +150-200 kcal 每份 |
| 10 | 茄子酱 | 64.8% | 79.7% | 鹰嘴豆泥 | +30-60 kcal 每份 |
| 11 | 白鱼片 | 65.2% | 82.4% | 鸡胸肉、其他白鱼种类 | +/- 20-50 kcal 每份 |
| 12 | 蛋白质煎饼 | 66.1% | 83.0% | 普通煎饼 | +80-150 kcal 每份 |
| 13 | 燕麦奶 | 67.3% | 84.2% | 普通牛奶、杏仁奶、豆奶 | +/- 30-80 kcal 每杯 |
| 14 | 深色叶菜(熟) | 67.9% | 85.1% | 菠菜、羽衣甘蓝、甘蓝、瑞士甜菜 | +/- 5-15 kcal 每份 |
| 15 | 无糖甜点 | 68.4% | 80.6% | 同类甜点的普通版本 | +100-250 kcal 每份 |
| 16 | 谷物碗 | 69.1% | 83.7% | 谷物基础类型的误识别 | +/- 40-100 kcal 每份 |
| 17 | 植物性肉类 | 69.8% | 84.9% | 真正的肉类 | +/- 30-80 kcal 每份 |
| 18 | 饺子 | 70.2% | 85.6% | 云吞、饺子、波兰饺子、尼泊尔饺子 | +/- 20-60 kcal 每个 |
| 19 | 混合咖喱菜肴 | 70.5% | 82.3% | 咖喱类型和基础的混淆 | +/- 50-150 kcal 每份 |
| 20 | 隔夜燕麦 | 71.0% | 86.2% | 普通燕麦、奇亚布丁 | +/- 50-120 kcal 每份 |
为什么这些食物会让AI困惑:五种模式
模式一:外观相似但卡路里差异大的食物
最常见的误识别来源是那些外观几乎相同但营养成分差异显著的食物。蒸粗麦粉和昆诺阿是我们排名第一的误识别食物,在照片中几乎无法区分,尤其是与蔬菜或酱汁混合时。然而,昆诺阿每份的卡路里大约比蒸粗麦粉多20%,并且蛋白质含量也显著更高。
同样,花椰菜米和白米在照片中几乎没有区别,但卡路里差异巨大:花椰菜米每杯约25 kcal,而白米则超过200 kcal。当AI将花椰菜米误识别为白米时,卡路里记录可能会增加150卡路里或更多。
原味希腊酸奶、酸奶油和拉布内则是另一组视觉相似的食物。三者都是白色、奶油状,通常盛在碗中。全脂希腊酸奶每杯大约含130 kcal,而酸奶油则约含445 kcal。这里的误识别可能会严重扭曲用户的每日摄入计算。
模式二:相似食物的地区变种
扁面包在我们的排名中位列第五,因为这一类别涵盖了各文化中视觉相似但营养成分不同的食物。标准的小麦面粉玉米饼(约120 kcal)在照片中与Naan(约260 kcal)相似,尤其是部分折叠或卷起时。罗蒂(约100 kcal)和巴拉塔(约260 kcal,由于油/黄油层叠而增加)看起来几乎无法区分,但卡路里却相差超过一倍。
饺子(排名第18)也面临同样的挑战。日本的饺子、中国的饺子、波兰的饺子、尼泊尔的饺子和格鲁吉亚的饺子在形状上相似(面皮包裹馅料),但在大小、面皮厚度、馅料成分和制作方法(蒸、煎、煮)上差异显著。
Nutrola在这方面的优势在于其覆盖了50多个国家。AI模型基于来自每个主要饮食传统的食物图像进行训练,拥有比主要基于西方食物摄影训练的模型更广泛的视觉词汇。然而,类别内的区分仍然具有挑战性。
模式三:模仿原版的替代食物
饮食替代品的兴起创造了一类新的识别挑战。火鸡培根模仿猪肉培根,植物性汉堡模仿牛肉汉堡,西葫芦面条模仿意大利面,蛋白质煎饼模仿普通煎饼,无糖甜点模仿其含糖版本。
这些替代品的设计初衷就是要看起来像它们所替代的食物。这是出于消费者满意度的考虑,但这给视觉识别系统带来了根本性的问题。卡路里的影响可能是巨大的:普通煎饼平均每个含175 kcal,而蛋白质煎饼通常每个含90-110 kcal。西葫芦面条每杯约含20 kcal,而熟意大利面则为220 kcal。
在我们的数据集中,替代食物的Top-1准确率平均为66.7%,而非替代食物的Top-1准确率为89.2%。在这方面,背景信号(用户饮食偏好、过去的记录模式)可以提供帮助,Nutrola的AI也结合了这些信号以提高预测准确性。
模式四:液体和半液体食物
汤、奶昔碗和饮料的识别难度通常高于固体食物。味噌汤(排名第4)是一种清汤,里面有可见的豆腐和海藻块,容易与其他亚洲汤混淆。巴西莓碗(排名第6)与其他浆果奶昔碗在视觉特征上相似,但根据基础混合和配料的不同,卡路里含量差异很大。
液体食物的挑战在于关键的营养信息在照片中是看不见的。两杯看起来相同的液体可能含有从10 kcal(黑咖啡)到400 kcal(高卡路里奶昔)不等的卡路里。Nutrola通过在检测到液体食物时向用户提出后续问题来解决这一问题:“这是普通版本还是低卡版本?”“这是什么品牌?”
模式五:含有隐藏成分的混合菜肴
咖喱菜肴(排名第19)和谷物碗(排名第16)代表了一个更广泛的挑战:多成分菜肴,其中营养成分显著的成分隐藏在视线之外。泰式绿咖喱可能使用椰奶(每份增加200多卡路里)或较轻的汤底。谷物碗的卡路里含量在于基础是昆诺阿、白米、糙米还是法罗,这些可能被配料覆盖。
混合菜肴占Nutrola用户记录的所有餐食的约35%,但却占据了52%的显著卡路里估算错误(定义为超过菜肴真实卡路里含量15%的错误)。
Nutrola如何提高准确性
迭代模型训练
Nutrola中的每个用户修正都反馈到AI模型的训练流程中。当用户将“昆诺阿”更改为“蒸粗麦粉”时,该修正及原始图像将被添加到训练数据集中。在我们分析的12个月期间,这一持续学习过程将整体Top-1准确率从82.6%提高到87.3%,提升了4.7个百分点。
| 季度 | Top-1准确率 | Top-3准确率 | 平均卡路里误差 |
|---|---|---|---|
| 2025年第一季度 | 82.6% | 90.3% | 47 kcal |
| 2025年第二季度 | 84.1% | 91.8% | 41 kcal |
| 2025年第三季度 | 85.9% | 93.2% | 36 kcal |
| 2025年第四季度 | 86.8% | 93.9% | 33 kcal |
| 2026年第一季度(部分) | 87.3% | 94.1% | 31 kcal |
背景信号
Nutrola的AI并不是在真空中识别食物。它结合了背景信号以提高准确性:
- 用户饮食档案: 如果用户表示他们遵循植物性饮食,模型会提高对植物性替代品(如豆腐代替鸡肉、燕麦奶代替牛奶、植物性汉堡代替牛肉)的置信度。
- 用餐时间: 早餐时拍摄的图像更可能包含早餐食物。这看似显而易见,但对于模糊项目(如隔夜燕麦与奇亚布丁)显著提高了准确性。
- 地理位置: 在东京拍摄的照片更可能是味噌汤而不是意大利杂菜汤。Nutrola为50多个国家的用户服务,并在用户许可的情况下使用一般位置信息来调整食物识别的先验。
- 过去的记录模式: 如果用户经常记录花椰菜米,模型会学习到在视觉输入模糊时,该用户更可能吃花椰菜米而不是白米。
多图像识别
在2025年,Nutrola推出了从不同角度拍摄同一餐食的功能。对于复杂菜肴和模糊食物,第二个角度可以解决识别的不确定性。在测试中,多角度识别将20种最常误识别食物的Top-1准确率提高了8.2个百分点。
置信度阈值和用户提示
当AI的置信度得分低于75%时,Nutrola会向用户展示前三个候选项,而不是自动记录最高结果。用户可以点击正确的识别或输入食物名称。这种透明的方法确保低置信度的识别在影响卡路里追踪准确性之前被捕捉并纠正。
误识别的卡路里影响
并非所有的误识别影响都相同。将羽衣甘蓝与菠菜混淆(排名第14)每份的卡路里影响为5-15 kcal,营养上并不显著。而将花椰菜米与白米混淆(排名第3)或西葫芦面条与意大利面混淆(排名第9)可能引入150-200 kcal的误差,足以显著影响每日卡路里预算。
我们计算了数据集中误识别的加权卡路里影响:
| 卡路里误差范围 | 所有误识别的百分比 | 实际影响 |
|---|---|---|
| 少于25 kcal | 38.2% | 微不足道 |
| 25-75 kcal | 29.6% | 较小 |
| 75-150 kcal | 19.7% | 中等,随时间显著 |
| 150-250 kcal | 9.1% | 显著,可能影响每日目标 |
| 超过250 kcal | 3.4% | 重大,相当于一小餐 |
所有误识别的中位卡路里误差为42 kcal,这在大多数营养追踪目的中属于误差范围。然而,分布的尾部(12.5%的误识别引入150+ kcal的误差)是AI食物识别最有改进空间的地方。
用户如何改善AI准确性
拍摄清晰、光线充足的照片。 AI在良好照明和清晰的俯视图下表现最佳。昏暗的餐厅照片和极端角度平均降低准确性6个百分点。
尽可能分开食材。 如果你的餐食有不同的成分(蛋白质、谷物、蔬菜),将它们分开摆放有助于AI单独识别每个项目,而不是将整个盘子视为一个混合菜肴。
使用修正功能。 你所做的每一个修正都能改善AI的表现,既为你自己,也为整个Nutrola社区。首次使用的前两周内进行修正的用户,长期准确率提高了11%,因为模型学习了他们的特定饮食模式。
指定替代品。 如果你经常食用替代食物(如花椰菜米、植物性肉类、无糖选项),请在Nutrola饮食偏好中注明。AI将在预测中更重视这些替代品。
尝试多角度照片。 对于复杂菜肴,从不同角度拍摄第二张照片可以消除模糊。这对于碗装食物、汤和混合菜肴特别有用,因为关键成分可能被配料遮盖。
展望未来
在过去三年中,AI食物识别的准确性显著提高,且这一趋势没有减缓的迹象。Nutrola的Snap & Track模型每月处理的食物照片数量超过了大多数已发布学术数据集的总量,每一次交互都使系统变得更加智能。
我们在2026年底的目标是实现所有食物类别的Top-1准确率达到90%,以及当前20种最常误识别食物的75%。通过持续的模型改进、来自我们在50多个国家不断增长的用户基础的扩展训练数据,以及多角度识别和背景信号等功能,我们相信这些目标是可以实现的。
我们的目标并不是完全取代人类判断,而是让食物记录变得如此快速和准确,以至于营养追踪的摩擦几乎消失。我们尚未达到这一点,但在经历了1000万张照片后,我们距离这一目标比一年前更近了。