PP-OCRv6 搬上中世纪手稿:免费午餐是真的,但菜单和你想的不一样
💡 一句话总结:kraken 的作者亲自把 PP-OCRv6(0.68M-15.86M)搬到历史手写文本识别上和经典 CRNN 掰手腕,结论有条件:从零训练别换,CRNN 更好;有异构大规模预训练语料,PP-OCRv6 small 是干净升级,微调后 medium 还能在主战场击败 9B 级 VLM。全文最值钱的其实是一条数据管线警告:置信度过滤会系统性地删掉「难但正确」的样本。
历史文献数字化的同学都有本难念的经:标注预算按「行」计算,一个项目一辈子也就攒出几万行;想上大 VLM 吧,人家先给你「编」两段没有视觉证据的转写——自回归模型的语言先验在中世纪手稿上是负资产,希腊文研究里连词序打乱它都能「过度纠正」出一篇通顺假文。
于是中间路线出现了:无循环、无强语言模型的紧凑识别器——去掉 CRNN 里拖累现代硬件的 LSTM,但也不引入会幻觉的生成式解码。PP-OCRv6(0.68M / 3.22M / 15.86M 三档)是这条路线的新代表,可它从没被系统地在历史书写上验证过。这份论文补上了这块拼图,作者还是 kraken(历史 ATR 领域的主流引擎)的亲爹 Benjamin Kiessling——自己写的新引擎和自己维护的老引擎打擂台,卖点十足。
想看原文?资源在这:
- 📄 论文 · arXiv 2609.20064
- 🧩 模型权重与语料清单 · Zenodo(DOI 10.5281/zenodo.21788403 / 21788405 / 21788410)
🎯 四种场景,先对号入座
论文把「要不要换」拆成四个实验场景,基本覆盖了所有历史数字化项目的处境:
- 通用预训练开箱即用:手头没有本地训练数据,谁能直接用?
- 领域从零训练:只有项目自有语料,能否替代 CRNN?——多数历史项目的默认路径;
- 语料级微调:在通用模型上微调,上限在哪?
- 单页少样本:单份手稿只给 20-240 行标注,谁学得快?
对照方有两类:4.64M 参数的 kraken 经典 CRNN(卷积 + 双向 LSTM + CTC),以及 9B 级大 VLM 的代表 Medusa(Qwen3.5-9B 行识别器)。
⚠️ 最值钱的发现:置信度过滤正在删你的正确数据
先说全文我最想让大家记住的一段,它跟历史文献都无关,跟所有用「裁判模型打分筛数据」的流水线有关。
PP-OCRv5 的官方数据策展流程是用一个裁判识别器给每行标注打置信度,只保留 0.95-0.97 区间的「优质」样本。这个窗口在现代印刷数据上只拒掉约 3% 的行——看起来人畜无害。但放到法/拉/西历史语料上呢?
- 拒行率飙到 17%——历史材料整体落在低置信区;
- 而泛化模型在被拒行上 CER ≤ 15% 的比例高达 52%——过半被判死刑的行,模型其实读得对;
- 论文图 1 给出六个实例:置信度只有 0.55-0.68,泛化模型却能逐字复现。

作者的诊断一针见血:单个置信度分数把「领域熟悉度」和「标注质量」混在了一起。低置信只说明这类材料少见、模型不熟,不代表标注错了。在异构数据上按置信度过滤,系统性地删掉稀有字形、罕见手迹——恰是你最需要模型学会的东西。所以这篇论文预训练时完全弃用置信度过滤。做现代 OCR / LLM 数据清洗的朋友,建议立刻检查一下你的过滤阈值在异构数据上的拒行率。
🛠️ 六项适配:最大头的一项只改了一个数字
针对历史文本的六项适配里,五项是常规操作(等比缩放、放宽解码长度、去蒸馏、换稳定优化器、弃置信度过滤),真正的主角是输入行高从 48px 提到 96px:
| 变体 | 48 px(原设定) | 96 px |
|---|---|---|
| PP-OCRv6 tiny | 24.05 | 12.57 |
| PP-OCRv6 small | 19.28 | 10.54 |
| PP-OCRv6 medium | 18.35 | 10.10 |
(CMMHWR task 1 macro CER,%)单这一项就白拿 8.3-11.5 个百分点,超过其余所有适配之和。理由很朴素:历史手稿细笔画、变音符、缩写符多,48px 喂进去物理上就看不清;而原设定的固定宽度还会把 CTC 解码步数压到 40 步,中等长度的历史行都走不完。
📈 成绩单:免费午餐的生效条件
四个场景的结果可以浓缩成一张决策表:
| 场景 | 谁赢 | 差距 |
|---|---|---|
| 通用预训练直接用 | PP-OCRv6 small/medium | macro CER 9.80% / 7.15% vs CRNN 12.41% |
| 从零训练(仅自有语料) | CRNN | 法语集 4.32 vs small 5.39 |
| 语料级微调(≥25% 数据) | PP-OCRv6 | 25% 微调即超从零全量 CRNN |
| 单页少样本(20 行起) | CRNN 爬坡快 | 但 40 行起 PP-OCRv6 绝对精度反超 |

最有信息量的是微调曲线:只用 25% 的语料微调,PP-OCRv6 全系就在七个测试集上全面超过「从零全量训练」的对应模型。预训练的杠杆作用在这里体现得淋漓尽致——前提还是那句话:你得先有那 620 万行、37 种语言的异构预训练语料。
大 VLM 对照也有看点:微调后的 medium(15.86M)在 CMMHWR task 1 与 CoMMA 上同时压过 Medusa(9B),而 Medusa 在 Occitan 和捷克语上更强——因为它训练材料里恰好有大量这两 种语言的语料。比的是主场,谁的数据主场谁赢。吞吐上 medium 比 Medusa 快约 45 倍,成本完全不是一个量级。

部署侧 small 变体最「免费」:参数比 CRNN 少 30%,GPU 中小 batch 下吞吐反超,精度全面领先。防幻觉也有架构保证——CTC 解码不具备生成「没看见的字符」的机制,这点在文化遗产机构的验收单上可能比 CER 更有说服力。
🧊 泼冷水:三个要打问号的地方
- 对照不公平且未被正面处理:PP-OCRv6 的优势建立在 620 万行预训练上,但实验里没有「CRNN + 同等规模预训练」这一格——Table 1 的漂亮数字分不清是架构的功劳还是语料的功劳。好在作者从零训练部分给了诚实答案:同条件下 CRNN 更好,谁是谁的功劳读者自己品。
- Medusa 的数字有口径争议:原论文自报 task 1-3 CER 为 8.03/5.24/10.8,作者用其官方管线重跑得到完全不同的数(捷克语 10.8 → 15.73),脚注坦承无法复现。「15M 击败 9B」的结论强度取决于你信哪套口径。
- 只测了行识别:行切分误差没算在内——而大 VLM 的真实卖点是绕过切分环节,所以这场对决只在「给定正确行图」的条件下成立。
🤔 那这篇能带走什么?
给不同读者的三句话建议:
- 历史文献 / 文档数字化团队:按上面那张决策表对号入座——最容易被标题党误导、也最省钱的一条是「从零训练别换,CRNN 更好」;
- 做数据清洗流水线的:把「置信度 = 领域熟悉度 × 标注质量」这个诊断刻进脑子,用人工核对抽查被拒样本,别默认低置信 = 标注错;
- 所有做 OCR 的:遇到精度瓶颈,先试把输入分辨率加倍——它可能比换架构便宜得多,这篇论文里一项改行高就值 11 个点。
标题里那个问号,作者的答案足够诚实:配方的一半在数据管线里,不在模型里。这句话放在 2026 年任何一个「要不要上大模型」的讨论里,都成立。
浙公网安备 33010602011771号