![]()
美国成年人平均每天要花23分钟记录饮食,但73%的人会在两周内放弃。不是懒,是传统卡路里计算工具太反人类——你拍张照,它告诉你"这是意大利面",然后让你自己猜吃了多少克。
Meta的Segment Anything模型(SAM)和OpenAI的GPT-4o Vision正在改变这个局面。一个负责"切",一个负责"算",能把手机照片变成带克重的营养报告。这不是概念验证,是已经跑通的工程方案。
为什么传统方案总在"瞎猜"
视觉卡路里估算的核心难题是分割(Segmentation)。AI得先知道牛排的边界在哪、土豆泥的轮廓是什么,才能分别计算热量。做不到这一点,所有数字都是幻觉。
早期方案用简单分类模型,把整盘食物塞进一个标签。结果一份"小份沙拉"和"全家桶"可能被识别成同一个东西。用户手动输入重量?那跟用纸笔记录没区别。
SAM的出现解决了像素级分割。这个2023年发布的模型能零样本识别任意物体的边界,不需要针对食物重新训练。给它一张餐桌照片,它能生成每个菜品的独立遮罩。
但光有分割不够。SAM不知道那把叉子是标准餐叉还是儿童餐具,也不懂盘子直径20cm还是30cm。没有参照系,体积估算还是拍脑袋。
两段式架构:手眼配合
完整 pipeline 分两步走。第一步SAM做像素手术,把每个食物项切成独立图层;第二步GPT-4o Vision当大脑,结合餐具尺寸、摆放透视、食材密度推算实际重量。
技术实现上,后端用FastAPI接收React Native App上传的照片。SAM在GPU上跑推理,生成包含分割像素和边界框的掩码数据。这些结构化信息跟原图一起送进GPT-4o,模型输出带上下文的营养估算。
关键设计在prompt工程。开发者强制GPT-4o关注视觉参照物——叉子长度、盘子弧度、食物堆叠高度。模型被要求用这些线索建立空间比例,而不是凭空编造克数。
代码层面,SAM加载ViT-H版本检查点,自动掩码生成器处理整图分割。返回的masks数组包含每个分割区域的像素坐标和置信度分数,为后续体积计算提供几何基础。
![]()
从"这是什么"到"有多少"
GPT-4o的多模态能力在这里体现为跨模态推理。它不只是在看图,是在做三维重建——从二维照片反推深度信息,再结合食材密度数据库换算热量。
举个例子:同样一碗米饭,俯拍和平拍的视觉体积完全不同。模型需要识别拍摄角度,修正透视畸变,才能给出靠谱估算。这种推理链条,纯视觉分类模型根本玩不转。
最终输出是结构化JSON,包含蛋白质、脂肪、碳水、总卡路里的分项数据。App端可以直接渲染成用户熟悉的营养标签格式。
整个流程的延迟取决于SAM的分辨率和GPT-4o的token长度。实测中,标准餐盘照片的分割+推理可以在5秒内完成,足够支撑实时使用场景。
产品经理视角:为什么现在能成
这个方案两年前不可能实现。SAM的零样本分割能力2023年才发布,GPT-4o的多模态推理是今年才成熟。技术栈的拼图刚刚凑齐。
更关键的是成本结构。SAM可以本地部署或调用API,GPT-4o的vision定价已经降到每千token几美分。单次查询成本控制在0.1美元以内,对健康管理App来说是可接受的单位经济模型。
对比传统方案:人工营养师咨询每小时50-200美元,商业食物秤+手动记录的用户留存率不到15%。AI pipeline 把边际成本压到接近零,同时把用户体验拉到"拍照即得"的级别。
但别急着喊颠覆。这个方案对标准化餐食(快餐、预制菜)效果最好,对复杂家常菜(炒菜、炖汤)的精度还在验证中。油脂分布、烹饪方式造成的密度变化,都是待解决的边缘案例。
开发者社区已经在讨论下一步:用深度摄像头补充三维信息,或者训练轻量级模型替代云端GPT-4o调用。硬件端,iPhone的LiDAR和安卓的ToF传感器都在候选名单上。
一个值得关注的信号是:MyFitnessPal、Lose It!等传统巨头至今没有上线类似功能。是技术债务太重,还是用户数据隐私的顾虑?这个空白期给了创业公司窗口。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.