AI食谱提取的科学:NLP与计算机视觉如何解析烹饪视频

探索使AI能够从烹饪视频中提取食谱的技术流程,结合语音转文本、OCR、视觉成分识别和NLP,自动生成准确的营养数据。

Medically reviewed by Dr. Emily Torres, Registered Dietitian Nutritionist (RDN)

烹饪视频已成为分享食谱的主要形式。仅在YouTube上,每月就有超过10亿次的烹饪视频观看,而TikTok的美食内容每年产生数百亿次观看,Instagram Reels则让每位家庭厨师都有机会成为内容创作者。然而,观看食谱与了解其营养成分之间仍存在着明显的差距。

要弥补这一差距,需要一个多阶段的AI流程,结合自动语音识别、光学字符识别、计算机视觉和自然语言处理。本文将逐步解析技术流程的每个阶段,解释使其成为可能的模型和研究,并探讨这些技术如何融合,将烹饪视频转化为结构化的营养数据。

食谱提取问题:视频为何难以解析

网站上的文本食谱相对简单易解析。它们遵循可预测的结构,包括成分列表、数量和逐步说明。HTML标记和schema.org食谱注释提供了额外的机器可读结构。

而烹饪视频则面临根本不同的挑战。食谱信息分布在多个模态中,同时存在:

  • 口头叙述 描述成分、数量和技巧
  • 屏幕文本 显示成分列表、温度和时间
  • 视觉内容 展示成分的添加、混合和变化
  • 隐含知识 假设观众理解未明确说明的步骤,例如预热烤箱或冲洗米饭

没有单一模态能够包含完整的食谱。创作者可能会说“加一些橄榄油”,而屏幕上显示的倒油动作暗示大约两汤匙,随后屏幕文本又显示“2汤匙橄榄油”。提取完整食谱需要将所有这些信息融合在一起,并解决它们之间的冲突。

多模态提取流程

从原始视频到结构化营养数据的完整流程涉及五个主要阶段:

阶段 输入 技术 输出
1. 音频提取 视频文件 ASR (Whisper) 带时间戳的转录文本
2. 视觉文本提取 视频帧 OCR (PaddleOCR, EasyOCR) 带时间戳的屏幕文本
3. 视觉成分识别 视频帧 CNN/视觉变换器 (CLIP, ViT) 识别的成分和动作
4. NLP解析与融合 转录文本 + OCR + 视觉数据 变换器模型 (BERT, LLMs) 结构化食谱及数量
5. 营养数据库匹配 结构化食谱 模糊匹配 + 数据库查找 完整的营养成分分析

每个阶段都面临独特的技术挑战,并依赖于机器学习研究的不同领域。

阶段1:自动语音识别用于食谱叙述

从烹饪视频中提取食谱的第一步是将口头叙述转换为文本。这是自动语音识别(ASR)的领域。

Whisper革命

OpenAI的Whisper模型在Radford等人于2022年发布的论文中首次提出,彻底改变了食谱提取的语音转文本领域。Whisper在680,000小时的多语言和多任务监督数据上进行训练,达到了接近人类的转录准确率,适用于各种音频条件。

Whisper在烹饪视频转录中的特别价值体现在以下几个方面:

抗噪声能力。 厨房环境通常嘈杂。煎锅的滋滋声、流动的水声、切菜声和背景音乐都与叙述者的声音相竞争。Whisper在多种音频条件下的训练使其能够比以往的ASR模型更好地处理这些重叠的声音源。

多语言能力。 烹饪视频几乎以所有语言制作。Whisper支持915种语言的转录,并能够将其翻译成英语,从而使得无论原始语言如何,都能提取食谱。

标点和格式。 与早期生成平面文本流的ASR系统不同,Whisper生成带有标点和格式的转录文本,保留句子边界。这种结构对于后续的NLP解析至关重要。

单词级时间戳。 Whisper可以生成单词级的时间戳,从而实现说话内容与屏幕上显示内容之间的精确对齐。

烹饪叙述的特定挑战

即使有Whisper的能力,烹饪视频仍然面临ASR挑战,这些挑战在标准语音识别基准中并不存在:

特定领域词汇。 成分名称涵盖了全球美食中的数千种项目。像“韩式辣酱”、“扎塔尔”、“芝麻酱”或“日式面包屑”这样的术语在一般训练数据中可能并不常见。需要使用专门的食品词汇模型或后处理字典来纠正系统性的错误识别。

数量模糊性。 口头数量往往不够精确。“适量盐”、“少许醋”或“大约这么多面粉”需要超出转录的上下文解释。

语言切换。 许多烹饪创作者在叙述时会切换语言,使用英语进行一般叙述,但用母语来描述菜名或传统技巧。多语言ASR必须优雅地处理这些转换。

非语言交流。 创作者可能会指向某个成分而不命名,或者在举起一个瓶子时说“这个”。这些指示性引用需要与视觉流进行跨模态解析。

转录的后处理

原始ASR输出在用于食谱提取之前需要经过几个后处理步骤:

  1. 食品实体修正 使用特定领域字典修正常见的错误识别(例如,将“孜然”误听为“来”)
  2. 数量标准化 将口头数字和分数转换为标准化的数字格式
  3. 分段 根据时间停顿、过渡短语和动作动词边界将连续转录文本划分为逻辑食谱步骤
  4. 置信度过滤 识别并标记低置信度段以进行潜在的跨模态验证

阶段2:光学字符识别用于屏幕文本

许多烹饪视频将成分列表、测量、温度和说明以屏幕文本叠加的形式显示。这些文本通常比口头叙述更为精确,并遵循更标准化的格式。

OCR如何在视频帧上工作

从视频帧中提取文本涉及两个子任务:文本检测(找到文本在帧中的位置)和文本识别(读取文本内容)。

文本检测 定位图像中包含文本的区域。现代检测器如CRAFT(字符区域感知文本检测)和DBNet(可微分二值化网络)能够识别不同方向、大小或背景复杂度的文本。这些模型输出文本区域的边界框或多边形。

文本识别 将检测到的文本区域转换为字符字符串。基于卷积和递归神经网络的架构,通常结合CTC(连接时序分类)解码,处理裁剪后的文本区域并输出字符序列。最近的方法使用基于变换器的架构,以提高对风格化字体的准确性。

烹饪视频OCR的独特挑战

烹饪视频中的屏幕文本与大多数OCR系统优化的文档文本有显著不同:

动画文本叠加。 文本经常动态出现和消失,需要在多个帧之间进行时间聚合以捕捉完整文本。滑动动画可能会在多个帧中逐字显示文本。

装饰性字体。 食品内容创作者常常使用风格化、手写或装饰性字体,这些字体与标准OCR训练数据中的干净字体不同。对烹饪特定字体数据集进行微调可以提高识别率。

复杂背景。 文本通常叠加在显示食物、厨房和手的繁忙视觉背景上。文本与背景之间的高对比度不能被假定。文本笔画、阴影和背景模糊检测有助于隔离文本层。

多语言和混合脚本。 单个帧可能包含多种脚本的文本,例如英文测量与日文菜名并存。多脚本OCR模型或脚本检测后跟语言特定的识别流程可以处理这种变异。

时间去重和聚合

由于视频帧每秒采样多次,相同的屏幕文本将在多个连续帧中被检测到。OCR流程必须:

  1. 以适当的速率采样帧(通常为每秒1到2帧进行文本检测)
  2. 跟踪帧之间的文本区域,以识别持久文本与瞬态文本
  3. 去重重复检测的相同文本
  4. 合并来自动画文本显示的部分检测
  5. 将每个文本元素与其可见时间窗口关联,以便后续与音频和视觉数据融合

该阶段的输出是一个带时间戳的屏幕文本元素列表,每个元素都与其可见持续时间和在帧中的空间位置相关联。

阶段3:计算机视觉的视觉成分识别

除了文本,烹饪视频的视觉内容还包含有关成分、数量和准备方法的丰富信息。计算机视觉模型可以识别成分的出现,估计视觉线索中的数量,并识别烹饪动作。

使用视觉变换器和CLIP进行成分识别

现代视觉成分识别建立在两个关键进展之上:视觉变换器(ViT)和对比语言图像预训练(CLIP)。

视觉变换器 由Dosovitskiy等人在2020年提出,将变换器架构应用于图像识别。ViT将图像划分为小块,并将其作为序列处理,类似于变换器处理句子中的单词。这种方法在细粒度视觉识别任务(如成分识别)中表现尤为有效,因为在相似物品之间的细微颜色、纹理和形状差异至关重要。

CLIP 由Radford等人在OpenAI于2021年开发,通过自然语言监督学习视觉概念。CLIP在4亿个图像-文本对上进行训练,能够识别文本描述的对象,即使这些对象没有明确的标签示例。对于成分识别而言,这意味着基于CLIP的系统可以识别成分,即使它不在训练集中,只要能够将视觉外观与文本描述匹配。

CLIP在食谱提取中的实际优势在于其零样本和少样本能力。食品种类繁多,准备方式和文化表现各异。传统分类模型需要为每种成分在每种准备状态下提供标记的训练示例。而CLIP可以从其广泛的预训练中进行概括,以识别以文本形式描述的新成分。

识别烹饪动作

识别正在执行的动作与识别成分本身同样重要。动作识别告诉系统某个成分是被切、炒、搅拌还是烘焙,这直接影响最终的营养成分。

视频动作识别的研究产生了分析帧时间序列以分类动作的模型。SlowFast网络(Feichtenhofer等人,2019)以两种时间分辨率同时处理视频:慢路径捕获空间细节,而快路径捕获运动。应用于烹饪视频时,这些模型可以区分搅拌、打发、折叠和揉面,每种动作对食谱结构有不同的影响。

Food-101和Recipe1M+数据集(Marin等人,2019)在训练和评估食品特定计算机视觉模型方面发挥了重要作用。Recipe1M+包含超过100万份烹饪食谱和1300万张食品图像,为训练能够跨越不同美食和准备风格的模型提供了必要的规模。

视觉数量估计

视觉食谱提取中最具挑战性的方面之一是从视频中估计成分数量。当创作者将油倒入锅中或将面粉舀入碗中时,视觉信息中包含有关数量的线索,但将这些线索转化为精确的测量值需要复杂的空间推理。

当前的方法结合了:

  • 参考物体缩放: 使用帧中已知的物体(标准锅、量杯、切菜板)建立缩放参考
  • 从倒入动态中估计体积: 分析倒入液体的持续时间和流速以估计体积
  • 深度估计: 单目深度估计模型如MiDaS(Ranftl等人,2020)可以估计容器中成分的深度,从而帮助从2D图像中估计体积
  • 比较学习: 在已知数量的成分配对图像上训练的模型通过视觉比较学习估计数量

视觉数量估计的准确性通常低于通过语音或文本获得的明确测量,通常在20%到30%之间。然而,它提供了有用的交叉检查,并在数量未明确说明时填补空白。

阶段4:自然语言处理用于食谱解析与融合

在手中拥有转录文本、屏幕文本和视觉注释后,NLP阶段面临的任务是将这些多模态信号融合成一个一致的、结构化的食谱。

食品命名实体识别

第一个NLP任务是识别转录文本和OCR文本中的食品相关实体。这是一种特殊的命名实体识别(NER),必须识别:

  • 成分: “鸡胸肉”、“特级初榨橄榄油”、“犹太盐”
  • 数量: “两杯”、“350克”、“一撮”
  • 单位: “汤匙”、“毫升”、“中等大小”
  • 准备修饰符: “切丁”、“剁碎”、“室温”
  • 烹饪动作: “炒”、“在375度烘烤”、“煮20分钟”
  • 设备: “铸铁煎锅”、“立式搅拌机”、“烤盘”

基于变换器的NER模型在食品语料库上进行微调,能够在标准食品NER基准上实现超过90%的F1分数。FoodBase语料库(Popovski等人,2019)和TASTEset数据集提供了专门用于训练这些模型的标注食品文本。

依赖解析用于成分-数量关联

仅仅识别实体是不够的。系统必须确定哪些数量属于哪些成分。在句子“加入两杯面粉和一茶匙盐”中,系统必须正确地将“两杯”与“面粉”关联,将“一茶匙”与“盐”关联。

这需要依赖解析,它分析句子的语法结构以识别单词之间的关系。基于BERT架构的现代依赖解析器(Devlin等人,2019)能够处理烹饪指令的句法复杂性,包括复合成分描述如“新鲜挤压的柠檬汁”和嵌套修饰符如“一罐14盎司的切丁火烤番茄”。

跨模态融合:解决冲突与填补空白

NLP阶段中最具技术挑战性的方面是将来自所有三种模态(音频、文本、视觉)的信息融合成一个一致的食谱。这种融合必须处理:

一致性强化。 当转录文本说“两汤匙酱油”,屏幕文本显示“2汤匙酱油”,视觉流显示深色液体被倒入时,所有三个来源一致,系统的置信度很高。

冲突解决。 当转录文本说“一杯糖”,但屏幕文本显示“3/4杯糖”时,系统必须决定信任哪个来源。通常,屏幕文本被优先考虑用于精确测量,因为创作者通常将文本叠加作为对其叙述的修正或澄清。

填补空白。 当叙述者说“根据个人口味调味”而未具体说明数量时,系统可以结合视觉对调味动作的估计与数据库中该菜肴类型的典型调味数量推断出合理的值。

时间对齐。 在模态之间匹配信息需要时间对齐。时间戳为2:34的口头成分引用应与从2:30到2:40可见的屏幕文本和同一时间窗口的视觉成分识别匹配。动态时间扭曲和基于注意力的对齐机制处理语音、文本和视觉事件之间的不精确同步。

大语言模型用于食谱结构化

最近的大语言模型(LLMs)的进展引入了一种强大的新方法来进行食谱结构化。与其为NER、依赖解析和融合构建单独的模型,不如让LLM处理组合的转录和OCR输出,并在一次性处理的过程中生成结构化食谱。

该模型接收包含转录文本、OCR文本和视觉观察描述的提示,并指示输出以定义格式的结构化食谱。LLMs在这项任务中表现出色,因为它们编码了关于烹饪的广泛世界知识,包括典型成分数量、常见成分组合和标准准备技术。

这种方法有几个优势:

  • 它自然地处理模糊性,依赖于世界知识
  • 它解决共指(例如,理解“它”在“三句之前提到的酱汁中”的指代)
  • 它可以根据烹饪知识推断未说明的步骤
  • 它将成分名称标准化为适合数据库查找的规范形式

主要限制在于LLM输出需要验证。必须通过与源模态和营养数据库约束的交叉引用来防止幻觉,即模型生成看似合理但不正确的信息。

阶段5:营养数据库匹配与计算

最后一个阶段将结构化食谱转化为完整的营养成分分析。这需要将每个提取的成分与全面的营养数据库中的条目匹配,并计算每份的营养值。

匹配挑战

从烹饪视频中提取的成分名称很少与数据库条目完全匹配。视频可能提到“一大把婴儿菠菜”,而数据库中包含“生菠菜”的条目,单位为克。匹配系统必须处理:

  • 同义词解析: “香菜”和“香菜叶”是同一种成分
  • 准备状态映射: “烤杏仁”与“生杏仁”的营养成分不同
  • 品牌和品种标准化: “Barilla通心粉”映射到“干通心粉”,并进行品牌特定的调整
  • 口语到技术翻译: “一根黄油”映射到“盐黄油,113克”
  • 单位转换: “一杯面粉”必须使用成分特定的密度值转换为克,因为一杯面粉大约重120克,而一杯糖大约重200克

模糊字符串匹配算法如Levenshtein距离和TF-IDF余弦相似度提供了基线匹配。更先进的方法使用基于嵌入的相似度,其中提取的成分文本和数据库条目都使用Sentence-BERT(Reimers和Gurevych,2019)模型编码为向量表示,并选择嵌入空间中最接近的匹配。

营养数据库及其覆盖范围

几个主要的营养数据库为营养计算提供基础:

数据库 覆盖范围 维护单位 主要优势
USDA FoodData Central 370,000+种食品 美国农业部 综合营养成分分析
Open Food Facts 3,000,000+种产品 社区贡献者 全球包装食品覆盖
COFID(McCance和Widdowson) 3,000+种食品 英国食品标准局 英国特定食品成分
澳大利亚食品成分数据库 2,500+种食品 澳大利亚新西兰食品标准局 区域食品覆盖

一个强大的食谱提取系统查询多个数据库,并在条目不同时应用置信度加权平均。对于在标准数据库中找不到的食品,系统可以通过将食品分解为其组成成分并汇总它们的个体贡献来估算营养成分。

处理烹饪转化

准确的营养计算与近似计算之间的关键细微差别在于考虑烹饪转化。当食物被烹饪时,其营养成分会发生变化:

  • 水分损失: 肉类在烹饪过程中损失20%到35%的重量,从而使每克熟食中的营养成分浓缩
  • 脂肪吸收: 油炸食品会吸收烹饪油,增加的卡路里并不包含在生成分的营养分析中
  • 营养成分降解: 热敏感的维生素如维生素C和B族维生素在烹饪过程中会降解
  • 淀粉明胶化: 烹饪改变淀粉类食品的血糖指数
  • 脂肪渗出: 烹饪肥肉会导致脂肪渗出,从而减少所食用部分的卡路里含量

USDA提供了不同烹饪方法下常见营养成分的保留因子。将这些因子应用于生成分的营养值,可以更准确地估算最终熟菜的营养成分。

Nutrola的营养引擎结合了这些烹饪转化模型,根据视频分析流程中识别的烹饪方法调整生成分数据库的值。当系统检测到鸡肉是被烤而不是油炸时,它会应用适当的水分损失和脂肪保留因子,以生成准确的卡路里估算。

Nutrola如何实现这一流程

Nutrola将这一多阶段技术流程转化为实际的消费者体验。当用户分享烹饪视频或粘贴食谱视频链接时,Nutrola的后台会通过上述提取流程处理视频,并返回一个结构化的食谱及完整的营养数据。

实际实施涉及多个工程决策,以平衡准确性、速度和用户体验:

选择性帧采样。 Nutrola的系统并不处理每一帧,而是识别出显著视觉变化发生的关键帧,例如新成分的出现、烹饪动作的变化或屏幕文本的更新。这将计算成本降低了80%到90%,同时捕捉到相关的视觉信息。

置信度评分。 每个提取的元素都带有一个置信度评分,该评分源于模态之间的一致性。通过语音、文本和视觉识别确认的成分获得高置信度。仅由一种模态检测到的成分则会被标记以供用户验证。

用户纠正循环。 当系统对某个成分或数量不确定时,它会向用户展示其最佳估计,并提供纠正的选项。这些纠正会反馈到模型中,随着时间的推移提高提取的准确性,形成一个人机协作的学习过程。

基于数据库的验证。 提取的食谱会根据营养合理性约束进行验证。如果系统提取的数量会导致该菜肴类型的卡路里计数不合理,它会标记该提取进行审核。

这种方法将观看烹饪视频的被动体验转化为可操作的营养数据,直接融入用户的日常追踪中。用户无需手动搜索每种成分和估算份量,而是直接从视频内容中获得完整的营养分析。

研究前沿:未来的方向

多模态食谱提取领域正在快速发展。几个研究方向有望进一步提高准确性和能力。

端到端多模态模型

当前的流程在融合之前分别处理每种模态。新兴的多模态架构可以在单一模型中同时处理视频、音频和文本。谷歌的Gemini和类似的多模态基础模型可以直接摄取视频,并在没有明确中间表示的情况下进行跨模态推理。这些模型承诺简化流程并改善跨模态推理,尽管它们需要显著的计算资源。

程序理解

当前系统提取的是一个平面的成分和步骤列表。未来的系统将构建更丰富的程序表示,捕捉食谱的图结构:哪些步骤依赖于其他步骤,哪些成分在何时使用,以及如何组合中间结果。这种程序理解能够通过跟踪成分在每个步骤中的转变来提高营养计算的准确性。

个性化营养估算

随着食谱提取系统处理的数据越来越多,它们可以学习个别创作者的模式。一个分析了同一创作者100个视频的系统会了解到,当该创作者说“少许橄榄油”时,他们通常使用大约一汤匙。这种个性化校准显著提高了数量估计的准确性。

文化和区域食品知识

将食谱提取扩展到全球美食的多样性需要深入的文化食品知识。了解在埃塞俄比亚烹饪中“配有wot的injera盘”遵循特定比例惯例,或越南美食中的“pho碗”具有典型成分比例,可以让系统在未提供明确数量时做出合理估计。

常见问题解答

AI从烹饪视频中提取食谱的准确性与手动阅读文本食谱相比如何?

当前的多模态提取流程在成分识别上实现了85%到92%的准确率,在数量提取上实现了75%到85%的准确率,与视频创作者编写的真实食谱相比。主要的错误来源是当创作者未明确说明测量时的数量估计。相比之下,人类观众的手动转录准确率约为90%到95%,这意味着AI提取在这一任务上正接近人类水平。Nutrola的实施包括对低置信度提取的用户验证步骤,这在实践中将有效准确率提高到95%以上。

当烹饪视频未明确说明成分数量时会发生什么?

当口头或屏幕文本中未明确说明数量时,系统会依次使用一系列估计方法。首先,它尝试通过视频帧进行视觉数量估计,使用深度估计和参考物体缩放。其次,它咨询该菜肴类型的典型数量知识库。最后,它使用相同菜肴的先前提取食谱的统计平均值。所得估计会被标记为低置信度,Nutrola会向用户提示该数量是估计的而非明确说明的。

AI能否从非英语的烹饪视频中提取食谱?

可以。现代ASR模型如Whisper支持915种语言的转录,OCR系统处理多种脚本,包括拉丁文、CJK、斯拉夫文、阿拉伯文和天城文。NLP解析层可以在多种语言中运行,尽管对于训练数据最多的语言,准确性通常最高。Whisper还可以将非英语语音直接翻译成英语,使得下游流程即使在其他语言的视频中也能以英语进行。Nutrola支持从超过30种语言的视频中提取食谱。

系统如何处理创作者在拍摄过程中进行替换或错误的食谱?

视频分析的时间特性实际上有助于处理这种情况。当创作者说“我本来打算用黄油,但我只有橄榄油”时,系统的NLP层识别出修正,并在最终食谱中使用橄榄油而不是黄油。同样,当创作者添加成分后又说“其实这太多了,让我拿掉一些”时,系统会跟踪这一修正。处理完整转录的基于注意力的模型能够通过识别与修订相关的语篇模式来识别这些自我修正。

从视频中提取食谱与从网页提取食谱有什么不同?

网页食谱提取主要依赖于结构化数据解析。大多数食谱网站使用schema.org食谱标记,提供机器可读的成分列表、数量和说明。视频食谱提取则根本上更具挑战性,因为信息是非结构化的,并分布在音频、视觉和文本模态中,必须进行融合。然而,视频提取的优势在于捕捉准备细节和视觉数量线索,这在文本食谱中是缺失的。许多创作者在叙述中分享的提示、替代品和上下文信息在书面食谱中从未出现。

烹饪方法检测如何影响提取食谱的营养准确性?

烹饪方法检测对营养准确性有显著影响。将鸡胸肉在油中炸与将其烤制相比,前者大约增加60到100卡路里,因为油的吸收。煮蔬菜可能会减少其维生素C含量30%到50%。AI流程使用动作识别模型识别烹饪方法(烤、炸、烘焙、蒸、原料准备),并相应地应用USDA营养保留因子。这种考虑烹饪方法的计算通常比仅使用生成分值提高10%到15%的卡路里估算准确性。

结论

从烹饪视频中提取食谱是人工智能在处理非结构化、多模态现实世界信息方面的一个缩影。这需要在嘈杂厨房中有效工作的语音识别、能够识别数百种成分的计算机视觉、能够读取复杂背景上风格化文本的OCR,以及能够将所有这些信息融合成一致营养图景的NLP。

本文描述的流程,从基于Whisper的转录到基于CLIP的视觉识别,再到基于LLM的食谱结构化,代表了当前的最先进技术。每个组件都建立在多年来机器学习研究的基础上,从CNN和RNN的基础工作到统一NLP和计算机视觉的变换器革命。

Nutrola对这一流程的实施将这些研究进展带入日常使用。通过自动从用户已经观看的烹饪视频中提取食谱,它消除了发现食谱与理解其营养影响之间的差距。最终结果是一个营养追踪体验,满足用户的需求,将被动的视频消费转化为主动的营养意识,而无需手动数据输入。

随着多模态AI模型的不断改进,食谱提取的准确性和速度将不断提高。将手机指向任何烹饪内容并立即获得完整的营养分析的愿景不再是一个研究愿望,而是一项正在运作的技术,随着基础科学的每一次进步而不断完善。

准备好改变您的营养追踪方式了吗?

加入成千上万已通过 Nutrola 改变健康之旅的用户!