初学文档处理或多模态应用时,常会碰到 OCR、VLM、ASR 这几个缩写。它们都和"把信息变成文字或答案"有关,但分工完全不同。笔者用一句话先概括:OCR 负责抄字,VLM 负责看懂画面并推理,ASR 负责把声音转成文字。
flowchart LR A"声音" -->|ASR| B"文字" C"图片中的文字" -->|OCR| D"文字 + 坐标" E"整张图片(物体 + 文字 + 布局)" -->|VLM| F"回答 / 摘要 / JSON" D --> G"后续 LLM 解析" F --> H"需校验,抑制幻觉"
01 | OCR:字符级精准提取
OCR 全称 Optical Character Recognition,即光学字符识别。它的目标是字符级精准提取:检测文字框、识别每个字符,输出文本和坐标。
OCR 知道"写了什么",但不知道"是什么意思",也不会推理。它的输出通常包含原文、坐标框和置信度,确定性强。速度上,OCR 通常比 VLM 快,轻量模型在 CPU 上也能运行,单张小图可到毫秒级;实际耗时取决于模型、图片分辨率和批量,成本也随部署方式变化。在干净印刷文档上,它的准确率更高,字符更稳。
典型例子有 PaddleOCR、Tesseract、阿里云文字识别。
02 | VLM:看懂画面并理解文字
VLM 全称 Vision-Language Model,即视觉语言模型。它的目标是图像加文本的联合语义理解、问答和推理。文字只是画面信息的一部分,VLM 还能理解图表、布局、物体和关系。
VLM 既能读字,也能算、判断、解释、摘要、看图问答。输出可以是自然语言、JSON 或摘要,但它容易幻觉,编造不存在的文字。速度上,VLM 较慢,需要 GPU,达到秒级,按 token 计费,成本高很多。它的输出可能受采样参数、模型版本等因素影响,同样图片两次结果未必完全一致,不利于强审计。
典型例子有 Qwen-VL、LLaVA、GPT-4o Vision、Claude Vision。
flowchart TB subgraph OCR"OCR:字符级提取" O1"检测文字框" --> O2"识别每个字符" --> O3"输出文本 + 坐标 + 置信度" end subgraph VLM"VLM:联合语义理解" V1"理解整张图:文字、图表、布局、物体、关系" --> V2"问答 / 推理 / 摘要" --> V3"输出自然语言 / JSON" end O3 -->|"知道写了什么,不知道意思"| X"无视觉上下文" V3 -->|"能算、判断、解释"| Y"存在幻觉风险"
03 | 一张发票就能分清
拿一张发票图片举例。OCR 会把图片里所有文字、金额、日期、二维码文字全部抠出来,附带每个字的坐标,但它不知道哪个是总金额。
VLM 则可以针对"这张发票价税合计多少?开票方是谁?"这类问题给出答案,也能辅助判断是不是专票、备注有没有问题,但结果仍需校验。
再比如一张数学卷子截图:OCR 把题目文字全部提取出来;VLM 能读题,直接算出答案并讲解步骤。
flowchart LR IMG"发票 / 试卷截图" --> OCRP"OCR" IMG --> VLMP"VLM" OCRP --> R1"全部文字 + 坐标\
不知哪个是总金额" VLMP --> R2"直接回答提问\
需校验,可能幻觉"
04 | 什么时候选谁
优先用 OCR 的场景:大批量扫描归档、电子书、票据入库、车牌识别、身份证识别;只需要拿到原始文字,后续交给 LLM 解析;强合规、审计、需要字符坐标、低延迟、高吞吐的场景。经典做法是 OCR 转文本,再由 LLM 提取字段。
优先用 VLM 的场景:图文混排、截图代码、图表、流程图、手写笔记、试卷批改;需要看图问答、跨视觉元素推理;小批量、多变版式,不想维护大量模板和规则。
生产环境常用混合流水线:先用低成本 OCR 拿全文和坐标;按业务设定置信度阈值,对低置信区域、复杂表格或图表再路由给 VLM 做校验、提取和推理;关键业务用 OCR 文本做交叉校验,并保留回退到 OCR 结果或人工复核的路径,以压制 VLM 幻觉。
flowchart TB S"输入图片" --> OCRS"低成本 OCR:全文 + 坐标" OCRS --> J{"置信度是否达标?"} J -->|"达标"| OK"采用 OCR 文本" J -->|"低置信 / 复杂表格 / 图表"| V"路由给 VLM:校验、提取、推理" V --> C"用 OCR 文本交叉校验" C --> D{"校验通过?"} D -->|"通过"| OUT"输出结果" D -->|"不通过"| FB"回退 OCR 结果或人工复核" OK --> OUT
05 | 容易踩的坑
第一,不要迷信 VLM 万能读文档。对需要一字不差的档案、票据存证,VLM 不如 OCR 稳,可能凭空造字。
第二,不要用 OCR 去做理解。OCR 识别出来的文字是一堆字符串,没有视觉上下文。
第三,现在有一类面向文档的模型和工具,例如 Donut、Nougat、MinerU,偏向文字提取与结构化理解的结合,但定位和实现各不相同,使用时仍需关注幻觉风险。
06 | 和 ASR 串起来看
ASR 是声音转文字,像耳朵;OCR 是图片里的文字转文字,像抄写员;VLM 是整张图片加问题转回答,像眼睛加大脑。三者各司其职,选对工具,才能把文档和多媒体处理做稳。
flowchart LR ASR"ASR\
耳朵" -->|"声音 → 文字"| T1"文字" OCR"OCR\
抄写员" -->|"图片文字 → 文字"| T2"文字 + 坐标" VLM"VLM\
眼睛 + 大脑" -->|"图片 + 问题 → 回答"| T3"回答 / 推理"
关注我,和AI一起成长~