为什么长文档会拖慢传统OCR?
核心问题在于,大多数现代OCR模型是逐字生成文本的,并且会持续维护一个“记忆”(称为KV缓存),记录到目前为止生成的所有内容。随着文档变长,这个缓存不断增大,既占用内存,又拖慢每个新字符的生成速度。这与人类形成鲜明对比——人类在抄写长文本时并不会变慢[1]。正因如此,标准OCR模型处理一页纸可能毫无问题,但面对一本50页的书就会力不从心。
一篇论文恰好指出了这一问题:随着输出序列变长,累积的KV缓存导致内存消耗增加,生成速度也逐渐变慢[1]。这是任何解决方案都必须应对的根本挑战。
研究人员如何解决长文档问题?
目前主要有两大策略:一是让内存使用量不随长度变化,二是同时生成多个词元,而非逐个生成。第一种方法在名为“Unlimited OCR”的模型中得到了体现,它用“参考滑动窗口注意力”取代了标准注意力机制,使KV缓存在整个解码过程中保持恒定大小[1]。这使得模型能在标准32K词元限制下,单次前向传播即可转录数十页内容——在实际能力上实现了巨大飞跃。
第二种策略利用扩散模型并行生成文本块。名为DODO的模型正是采用这一方法,其推理速度比自回归基线模型快达5倍,同时保持了接近最先进的准确率[3]。关键在于,OCR是一项确定性任务——视觉输入决定了输出——因此无需按顺序生成。然而,这种方法需要精心设计,以避免在OCR严格且要求精确匹配的场景中产生错误[3]。
扩展能力是否适用于所有类型的文档?
答案取决于文档的状况和语言。对于干净、现代的文档,新架构表现良好。但对于退化严重的历史文档,准确率会下降,你需要额外的预处理。一个名为PreP-OCR的流水线将图像修复与OCR后校正相结合,在涵盖英语、法语和西班牙语的13,831页真实历史文档中,与对原始图像直接进行OCR相比,字符错误率降低了63.9%至70.3% [2]。这表明,扩展到长文档不仅仅是架构问题——还涉及处理输入质量的问题。
同样地,对于像梵语这样单词极长的语言,标准OCR也面临困难。一种基于注意力机制的LSTM专用模型在具有挑战性的印度语文本上实现了15.97%的词错误率和3.71%的字符错误率[4]。这表明,尽管长度问题正在得到解决,但语言特有的挑战依然存在,而“一刀切”的方法可能并不适用于所有语料库。
关于这些来源
这个回答基于4项研究(1篇同行评审,3篇预印本),发表于2020年至2026年间,其中3篇为2024年或之后发表。这些研究是从4项通过质量筛选的研究中选出的最相关成果,而这些研究又源自从超过5亿篇论文的数据库中检索到的66篇文献。
本文引用的文献
无限OCR作品
无限OCR引入了参考滑动窗口注意力机制,使KV缓存保持恒定,从而在32K token限制下,单次前向传播即可转录数十页内容,并且该技术同样适用于语音识别和翻译任务。
PreP-OCR:面向文档图像恢复与OCR精度增强的完整流程
PreP-OCR,一种结合图像修复与OCR后校正的两阶段流程,在涵盖英语、法语和西班牙语的13,831页真实历史文献中,将字符错误率降低了63.9%至70.3%。
DODO:离散OCR扩散模型
DODO,一种离散扩散OCR模型,通过分块生成文本来避免同步错误,其推理速度比自回归基线模型快达5倍,同时保持接近最先进的准确率。
面向包含任意长度单词的古典印度文献OCR系统
针对梵语的注意力机制长短期记忆网络(LSTM)OCR系统,在具有挑战性的印度语文本上实现了15.97%的词错误率和3.71%的字符错误率,有效解决了任意长词的问题。
