光学字符识别(OCR)是一种从图像、扫描文档或文本照片中提取文本的技术,将像素转换为机器可读且可编辑的字符。它处于计算机视觉和自然语言处理的交汇点,因为一个可用的系统必须既能在图像中定位和分割字形,又能将其解释为语言中的符号。OCR是模式识别最早具有商业价值的应用之一,比现代深度学习时代早了几十年。
历史
早期的OCR系统可追溯至20世纪50年代和60年代,当时诸如David Shepard的“Gismo”和Ray Kurzweil为盲人设计的阅读机(1976年)等设备使用模板匹配和手工设计的特征来识别印刷字体。在20世纪80年代和90年代,诸如Tesseract(最初由惠普开发,后来由谷歌开源)等OCR软件依赖于统计分类器和特征提取流水线,这些流水线主要基于符号人工智能和经典机器学习,而非后来占据主导地位的分层表示学习。到20世纪90年代,对清晰打字文本的识别精度已达到商业可用水平,但手写体和杂乱场景在接下来的二十年中仍是难题。
深度学习时代
卷积神经网络以及后来的循环和序列到序列架构的引入显著提升了OCR精度,尤其是对手写体和嵌入自然场景(如街道标志或产品标签)中的文本。结合CNN进行视觉特征提取与LSTM或注意力机制解码器的架构在2010年代中期成为标准。与计算机视觉的许多领域一样,其进展追踪了从手工设计流水线向在大规模标注数据集上训练的端到端神经网络的更广泛转变。
视觉语言模型时代
自2020年代初以来,基于Transformer架构构建的通用视觉语言模型和多模态系统已吸收了OCR的大部分功能。具备视觉能力的模型(包括Gemini和GPT-4的变体)可以在更广泛的视觉理解任务中读取图像中嵌入的文本,无需专门的OCR流水线,并且在混合了文本与图表、表格或上下文手写体的文档上往往优于专门的OCR系统。这模糊了OCR作为独立任务与通用文档理解之间的界限,尽管专用OCR引擎仍广泛用于高吞吐量、低延迟或离线文档处理场景,在这些场景中,大型多模态模型可能成本更高或速度更慢。
应用与评估
OCR支撑着文档数字化、可搜索PDF生成、车牌识别、收据和发票处理、邮政邮件分拣、面向盲人和低视力用户的无障碍工具,以及将文本输入搜索引擎和大型语言模型训练语料库的摄取流水线。系统通常根据字符错误率和单词错误率在扫描或拍摄文本的基准数据集上进行评估;性能因语言、文字、打印质量和手写风格而异,其中草书手写体和低资源文字仍是相对薄弱的环节。作为组件任务,OCR质量通常在专门的文档和场景文本数据集上报告,而非通用基准。
局限性
OCR错误可能传播到下游系统(如搜索索引或自动化数据录入),并且存在利用视觉相似字符来规避基于OCR过滤器的专门攻击。隐式执行OCR的多模态模型也可能产生与源图像相似但不匹配的文本幻觉,这是一种不同于经典OCR分割错误的失败模式。