现代OCR流水线有两个阶段:检测(使用CRAFT或DBNet等模型找到文字区域)和识别(使用CRNN或基于Transformer的模型读取每个区域的文字)。端到端方法(如PaddleOCR、EasyOCR)将两个阶段合并。对于结构化文档,专用模型(LayoutLM、Donut)同时理解文字内容和空间布局,能识别发票上的“合计:$42.50”与段落中的相同文字含义不同。
多模态LLM(Claude、GPT-4V、Gemini)作为视觉能力的副产品,在OCR方面变得非常出色。你可以上传图片并询问“读取这张图中的所有文字”或“从这张收据中提取表格”。对于布局混合、手写和多语言的复杂文档,视觉LLM通常优于专用OCR系统,因为它们理解上下文并能处理歧义。权衡是速度和成本——专用OCR在批量处理时快100倍。
仍然困难的问题:手写识别(特别是草书或潦草的笔迹)、退化的历史文档、复杂背景中的文字(标志、衣服、产品上的野外文字),以及复杂字符组合的文字系统(中文、阿拉伯文、天城文)。准确率因语言和文字系统差异显著——拉丁字母OCR几乎已解决,但CJK和从右到左的文字系统仍有显著的错误率。