Cal AI的准确性如何?对比USDA参考值的20种食物测试
我们对Cal AI的基于照片的卡路里估算进行了测试,使用了20种常见食物,并与USDA FoodData Central进行了对比。平均偏差:±160卡路里/天。分析了按餐类型的照片准确性、份量估算问题,以及AI视觉的不足之处。
Cal AI是一款基于照片的卡路里追踪应用,利用计算机视觉技术从食物照片中估算卡路里。 这个概念非常吸引人:只需拍下你的餐点,便能立即获得卡路里估算,无需查找数据库、扫描条形码或输入任何信息。无需手动输入、无需从列表中选择食物、也无需称量份量。
然而,基于照片的卡路里估算面临着一些根本性的技术挑战,这些挑战至今没有任何AI技术能够完全解决。二维的食物照片无法捕捉到深度、密度、隐藏的层次或来自油和酱料的隐形卡路里。问题不在于Cal AI是否完美——没有人会期待这一点——而在于它是否足够准确,以为那些试图管理营养的用户提供有意义的结果。
我们使用标准方法测试了Cal AI:选择了20种常见食物,精确称重,在正常家庭照明条件下拍照,并与USDA FoodData Central的参考值进行比较。
Cal AI的工作原理
Cal AI利用计算机视觉模型分析食物照片并估算卡路里含量。这个过程分为三个步骤:
- 食物识别。 AI识别照片中存在的食物。
- 份量估算。 AI根据视觉线索(如盘子大小、食物比例和学习到的尺寸参考)估算每种识别食物的数量。
- 卡路里计算。 将估算的份量乘以每克的卡路里值,得出总的卡路里估算。
没有一个经过验证的食物数据库与照片相对应。卡路里估算来自AI模型的训练数据以及它对视觉食物特征与卡路里含量之间关联的学习。没有条形码扫描、没有语音记录,也没有手动数据库搜索——照片是唯一的输入方式。
20种食物的准确性测试:Cal AI vs USDA参考值
每种食物都在经过校准的厨房秤上称重,正常摆盘(不分散或人为排列),并在标准厨房照明下从自然的用餐角度拍照。USDA参考值来自FoodData Central,针对精确测量的重量。
| # | 食物项目 | 重量 (g) | USDA参考 (kcal) | Cal AI估算 (kcal) | 偏差 (kcal) | 偏差 (%) |
|---|---|---|---|---|---|---|
| 1 | 烤鸡胸肉 | 150 | 248 | 220 | -28 | -11.3% |
| 2 | 糙米(熟) | 200 | 248 | 275 | +27 | +10.9% |
| 3 | 中等香蕉 | 118 | 105 | 110 | +5 | +4.8% |
| 4 | 全脂牛奶(杯) | 244 | 149 | 170 | +21 | +14.1% |
| 5 | 烤三文鱼 | 170 | 354 | 310 | -44 | -12.4% |
| 6 | 整个鳄梨 | 150 | 240 | 200 | -40 | -16.7% |
| 7 | 原味希腊酸奶(碗) | 200 | 146 | 160 | +14 | +9.6% |
| 8 | 烤红薯 | 180 | 162 | 145 | -17 | -10.5% |
| 9 | 生杏仁(小碗) | 30 | 174 | 210 | +36 | +20.7% |
| 10 | 全麦面包(2片) | 50 | 130 | 140 | +10 | +7.7% |
| 11 | 大鸡蛋(炒) | 61 | 91 | 105 | +14 | +15.4% |
| 12 | 蒸西兰花 | 150 | 52 | 45 | -7 | -13.5% |
| 13 | 橄榄油(盘子上的汤匙) | 14 | 119 | 60 | -59 | -49.6% |
| 14 | 花生酱(涂在面包上) | 32 | 190 | 155 | -35 | -18.4% |
| 15 | 切达奶酪(片) | 40 | 161 | 140 | -21 | -13.0% |
| 16 | 意大利面(熟,盘子) | 200 | 262 | 290 | +28 | +10.7% |
| 17 | 中等苹果 | 182 | 95 | 90 | -5 | -5.3% |
| 18 | 瘦牛肉(85%瘦,肉饼) | 120 | 272 | 240 | -32 | -11.8% |
| 19 | 干燕麦(碗) | 40 | 152 | 180 | +28 | +18.4% |
| 20 | 煮扁豆(碗) | 180 | 207 | 185 | -22 | -10.6% |
统计摘要
- 平均绝对偏差: 每种食物22.2 kcal
- 最大偏差: 59 kcal(橄榄油)
- 平均百分比偏差: 13.3%
- 与USDA值相差5%的食物: 20种中的2种(10%)
- 与USDA值相差10%的食物: 20种中的5种(25%)
- 零偏差的食物: 20种中的0种(0%)
每种食物的偏差显著大于数据库支持的追踪器。橄榄油——在盘子上聚集的一汤匙——被低估了近50%,这突显了从照片中估算高热量液体的根本挑战。
按餐类型的照片准确性
Cal AI的准确性在拍摄不同食物时差异显著。我们扩展测试超出了20种单一食物,以评估完整的餐点场景。
| 餐点类型 | 识别准确性 | 卡路里估算准确性 | 典型偏差 |
|---|---|---|---|
| 单一整体食物(苹果、香蕉) | ~85% | ±8% | ±8-12 kcal |
| 简单摆盘餐(蛋白质+一侧) | ~78% | ±15% | ±40-80 kcal |
| 复杂多成分盘 | ~60% | ±25% | ±80-150 kcal |
| 餐厅食物 | ~55% | ±30% | ±100-200 kcal |
| 包装食品(无条形码) | ~75% | ±18% | ±30-60 kcal |
| 碗装餐(沙拉、谷物碗) | ~65% | ±22% | ±60-120 kcal |
| 汤和液体餐 | ~50% | ±35% | ±80-180 kcal |
模式非常明显:随着餐点复杂性的增加,准确性下降。良好照明下拍摄的单一香蕉对计算机视觉来说相对简单。而一盘包含蛋白质、淀粉、蔬菜、酱汁和装饰的餐点——食物重叠、酱汁覆盖表面、份量经过造型而非测量——则极其复杂。
份量估算问题
Cal AI不准确的最大来源并不是食物识别,而是份量估算。原因如下。
3D食物的2D照片
一张照片将三维食物压缩为二维图像。一个浅宽的盘子和一个深窄的碗在外观上可能相似,但实际容纳的体积却截然不同。鸡胸肉可以是厚的或薄的,而从顶部拍摄的照片无法区分它们。
| 视觉场景 | Cal AI所见 | 实际存在 | 误差 |
|---|---|---|---|
| 高碗的米饭 | 中等圆形的白色食物 | 350g米饭(深碗) | 低估30-40% |
| 平盘上的薄米饭 | 大圆形的白色食物 | 150g米饭(平铺) | 高估20-30% |
| 厚鸡胸肉 | 矩形白色蛋白质 | 200g(厚切) | 低估15-25% |
| 薄鸡胸肉 | 相似的矩形形状 | 120g(薄切) | 高估10-20% |
目前没有任何AI模型能够通过单张照片可靠地解决这一深度感知问题。一些方法使用参考物体(如在食物旁放置硬币)或立体摄影,但Cal AI使用的是单张不受限制的照片,这限制了深度估算仅能依赖于学习到的启发式方法。
隐形卡路里问题
某些高热量成分在照片中是不可见或几乎不可见的:
- 烹饪油在煎炸或烤制过程中被食物吸收,每汤匙增加40-120卡路里,但不会留下可见痕迹。
- 黄油融入米饭、意大利面或蔬菜中,在照片中可能是不可见的。
- 酱汁和调料在生菜下、混入意大利面中或淋在蛋白质下,部分或完全隐藏。
- 融化的奶酪与下面的食物视觉上融合。
- 溶解在饮料中的糖完全不可见。
在我们的橄榄油测试中,一汤匙(119 kcal)聚集在盘子上被估算为仅60 kcal。当同样数量的橄榄油用于烹饪鸡肉并不再可见时,Cal AI估算的油的额外卡路里为0——这意味着从一汤匙烹饪油中漏掉了119 kcal。
这并不是Cal AI特定实现的缺陷,而是基于照片估算卡路里的根本限制。任何基于照片的系统都将面临隐形卡路里的挑战。
每日误差累积:±160卡路里意味着什么
在一天的饮食中,Cal AI的基于照片的估算平均每天与USDA参考总值的偏差约为±160卡路里。
- ±160 kcal/天,一周为±1,120 kcal
- 每天500 kcal的赤字可能变为340到660 kcal的赤字
- 在30天内,累计误差达到±4,800 kcal——大约相当于1.4磅体脂的误差
与数据库支持的追踪器不同,后者的误差相对一致(同样的食物条目每次返回相同的卡路里),Cal AI的误差是可变的。相同的餐点从不同角度、不同光线或不同盘子拍摄可能产生不同的卡路里估算。这种可变性使得用户更难对自己的摄入量形成准确的直觉。
对于那些随意追踪以建立对饮食模式的整体意识的人来说,±160 kcal/天可能是可以接受的——它能够正确识别出3000卡路里的一天与1500卡路里的一天。但对于任何追求特定卡路里目标以管理体重的人来说,这个误差范围足够宽,以至于掩盖了有意义的进展信号。
Cal AI的准确性
Cal AI在特定的有利条件下表现最佳。
简单、摆盘良好的单一食物餐。 一块白盘上的烤鸡胸肉、一只苹果或一碗普通燕麦粥——这些场景中AI拥有强大的训练数据,食物清晰可见。简单餐点的准确性接近±8-10%,对于快速记录来说是合理的。
一致拍摄的餐点。 如果你定期吃相似的餐点并在相似的条件下拍摄,误差会变得一致且相对可预测。这与准确性无关,更关乎精确性——数字可能不准确,但每次的误差相似,从而保留了相对信号。
速度和便利性。 Cal AI的主要价值不在于准确性——而在于速度。拍照只需3秒,而搜索数据库、选择正确条目并输入份量大小则需要30-60秒每种食物。对于那些如果不追踪就不会记录的人来说,Cal AI的减少摩擦确实具有价值。
视觉饮食日志。 这种以照片为主的方式创造了你所吃食物的视觉记录,这在卡路里准确性之外具有行为益处。研究表明,即使没有准确的卡路里数据,食物摄影也能提高饮食意识。
Cal AI的不足之处
混合盘和复杂餐点。 任何包含超过2-3种不同成分的餐点,其准确性都会迅速下降。现实中的饮食——一盘包含蛋白质、淀粉、蔬菜和酱汁的晚餐——本质上是复杂的,而这正是Cal AI的±25-30%偏差使得卡路里估算不可靠的地方。
酱汁、油和隐形卡路里。 如测试结果所示,高热量但视觉上不明显的成分被严重低估或完全漏掉。一顿家庭烹饪的餐点中使用了2汤匙橄榄油,可能仅因隐形油而低估200多卡路里。
昏暗的光线和糟糕的拍照条件。 餐厅的灯光、晚间厨房的灯光以及任何食物不清晰照明的环境都会降低识别和份量估算的准确性。AI需要清晰的视觉数据来工作。
没有失败识别的后备方案。 当Cal AI无法识别某种食物时——这发生在约20-45%的项目上,具体取决于复杂性——没有条形码扫描、没有数据库搜索,也没有语音记录可以依赖。用户只能得到一个不完整或不正确的估算,而在应用中没有其他替代方案。
没有经过验证的数据库支持。 Cal AI没有将识别的食物映射到经过验证的营养数据库。卡路里估算来自AI模型的学习关联,这意味着没有权威来源验证用于计算的每克卡路里值。如果模型学习了错误的关联(例如,高估了熟米饭的卡路里密度),那么这个错误将融入未来对该食物的每次估算中。
堆叠和分层食物。 从上方拍摄的三明治只显示了顶部的面包片。AI必须根据边缘的视觉线索猜测内部的内容。一个厚肉饼、奶酪和多种配料的汉堡,其估算将根据相机角度的可见部分而有所不同。
Cal AI与数据库支持的追踪器的比较
| 指标 | Cal AI | Nutrola | MacroFactor | FatSecret |
|---|---|---|---|---|
| 平均每日偏差 | ±160 kcal | ±78 kcal | ±110 kcal | ±175 kcal |
| 输入方式 | 仅照片 | 照片AI + 语音 + 搜索 + 条形码 | 搜索 + 条形码 | 搜索 + 条形码 |
| 食物识别 | AI视觉 | AI视觉 + 验证数据库 | 手动(策划) | 手动(众包) |
| 份量估算 | AI从照片 | AI + 手动调整 | 手动(用户称重) | 手动(用户称重) |
| 条形码扫描 | 否 | 是(3M+产品,47个国家) | 是 | 是 |
| 语音记录 | 否 | 是(约90%准确性) | 否 | 否 |
| 数据库后备 | 无 | 1.8M+经过验证的条目 | 策划数据库 | 众包数据库 |
| 记录速度 | ~3秒 | ~5-10秒 | ~30-60秒 | ~30-60秒 |
Cal AI的优势在于速度。其劣势在于,所有其他准确性指标均低于使用经过验证或策划数据库的替代品。该应用占据了一个特定的细分市场:重视便利性而非精确度的用户,如果需要搜索数据库或扫描条形码,他们可能根本不会进行追踪。
对于希望享受照片AI便利性而不牺牲数据库支持准确性的用户,Nutrola提供了照片AI识别,映射到超过180万条营养师验证的数据库,结合了照片记录的速度优势和经过验证的营养数据的准确性。Nutrola还提供语音记录和条形码扫描作为替代输入方式,当照片不实用时,这是Cal AI无法提供的。Nutrola在iOS和Android上可用,价格为€2.50/月,无广告。
常见问题解答
Cal AI能替代传统的卡路里追踪应用吗?
对于随意的饮食意识——理解某一天你吃得多还是少——Cal AI可以提供有用的大致估算。对于特定的卡路里目标、体重管理方案或任何依赖于每天100-200卡路里准确性的目标,Cal AI的±160 kcal每日偏差使其作为主要追踪工具不可靠。追求精确目标的用户更适合使用具有经过验证数据库和多种输入方式的应用。
为什么Cal AI在份量估算上存在困难?
根本挑战在于单张2D照片无法捕捉食物的三维特性——深度、密度和体积。一个深碗的汤和一个浅盘的意大利面从上方看可能相似,但实际包含的食物量却截然不同。此外,像油、黄油和糖等混入或被食物吸收的高热量成分在照片中是不可见的。这些是适用于所有基于照片的估算系统的物理限制,而不仅仅是Cal AI。
Cal AI对某些食物的准确性是否高于其他食物?
是的,差异显著。形状一致的单一整体食物(苹果、香蕉、鸡蛋)产生的估算在±5-8%范围内,与参考值相符。简单摆盘的餐点具有明显、独立的成分,准确度达到±15%。复杂的混合盘、餐厅餐点和汤的准确性降至±25-35%。餐点的视觉复杂性和分层程度越高,估算的准确性越低。
Cal AI是否会从更正中学习并随时间改进?
Cal AI的AI模型通过一般模型训练进行更新,而不是通过单个用户的更正。如果你在应用中更正了一个估算,它不会改善你账户中该特定食物的未来估算。模型的改进通过更广泛的训练数据更新发布为应用更新。这意味着特定食物类型的系统性错误将持续存在,直到模型重新训练。
Cal AI如何处理盘子上有多个项目的餐点?
AI尝试将照片分割成不同的食物区域,并分别估算每个成分。当食物在盘子上明显分开(蛋白质在一侧,蔬菜在另一侧)时,这种方法效果相对较好。当食物重叠、混合在一起或被酱汁覆盖时,准确性显著下降。对于含有4-5种不同食物的盘子,预计1-2种会被误识别或有显著错误的份量估算。