乐于分享
好东西不私藏

文档OCR模型需要怎样的高质量数据?PP-OCRv5数据策略实证分析及真实场景数据合成思路

文档OCR模型需要怎样的高质量数据?PP-OCRv5数据策略实证分析及真实场景数据合成思路

今天是2026年3月26日,星期四,北京,天气晴

继续看技术,回到文档解析领域,看文档解析模型中的数据问题

数据才是当前模型能力和决定是否可以落地的关键,尤其是现在的高质量这个东西,啥叫高质量,对模型性能有好处,并且能够形成标准化的数据资产就是高质量

先看PP-OCRv5中的数据策略实证分析,轻量级模型的性能上限由训练数据的难度、精度、多样性决定,而非仅参数规模,进而以数据为核心思路研发PP-OCRv5,也就是还是做数据。

另一个是真实场景数据DocMix-3M的思路,通过组合原子元素与预先设计的版式模板生成逼真的样本。首先从多个来源构建标准化元素(表格、公式、段落、图表)的仓库,并收集带有注释阅读顺序的版式模板,以捕捉真实文档中观察到的结构模式。在空间和结构约束下,将采样的元素放置到模板中,合成文档实例,从而生成多样且版式丰富的页面。

关注数据,关注本质,回到数据中去,也是高质量数据集的一个框架内容

一、先看PP-OCRv5中的数据策略实证分析

先看百度飞桨500万参数的轻量级OCR模型PP-OCRv5,这个发布很久了,在https://github.com/PaddlePaddle/PaddleOCR。打的点还是多模态版本存在定位不精确(无法输出精准边界框)、文本幻觉(复杂版式下生成虚假文本)、计算效率低下(参数量庞大,难以在边缘/高通量场景部署)【当然,现在已经卷到0.9B的,倒也还好】,尤其是对于低分辨率的图片会根据语义去猜【这个也是昨天说的使用扩散模型做的一个初衷】,所以面向端侧,搞小模型。

主要思路是:轻量级模型的性能上限由训练数据的难度、精度、多样性决定,而非仅参数规模,进而以数据为核心思路研发PP-OCRv5,也就是还是做数据。

先说一个比较有借鉴意义的结论:

其一,数据难度筛选。并非所有数据都能提升模型性能,应通过模型置信度等指标筛选有挑战性且标注可靠的中等难度样本,避开低质量噪声样本和无信息的简单样本,提升数据利用效率;

其二,容忍适度标签噪声。 若模型对标签噪声具有鲁棒性,可采用大模型自动标注等低成本方式构建大规模数据集,无需追求100%的标签准确率,大幅降低研发成本;

其三,优先保证数据多样性。特征空间的广泛覆盖是模型泛化能力的核心,应通过聚类等方式衡量并保证数据的特征多样性,再在该基础上增加数据量,才能实现性能的线性提升,避免单纯堆积样本导致的边际效益递减。

技术报告出了,工作在《PP-OCRv5: A Specialized 5M-Parameter Model Rivaling Billion-Parameter Vision-Language Models on OCR Tasks》,https://arxiv.org/html/2603.24373v1。

看几个点:

1、轻量级双阶段架构

继承PP-OCRv4的检测+识别双阶段设计,整个的流程如下,可以再回顾下理解传统方案都怎么做

检测模块基于DB算法,采用PP-LCNetV3骨干网络+大核PAN+残差SE-FPN实现高效特征提取与融合;

识别模块为SVTR_LCNet混合架构,结合GTC训练策略,融合注意力机制与CTC的优势。

2、数据集构建策略实证分析

难度、准确率、多样性三个维度量化并优化训练数据,然后看个实证分析这个要分开看:

难度上,计算逻辑为自举模型置信度得分(字符 Softmax概率均值,c∈[0,1])。

这个的做法是个点,可细看:

首先在初始的4样本数据集上训练一个自举识别模型,然后将其应用于候选文本行。每个样本获得一个置信度得分c∈[0,1],该得分通过预测序列中所有字符级别的Softmax概率的平均值计算得出。高得分(例如c>0.97)表示视觉上较简单的文本行,而低得分(例如c<0.80)通常表明样本本身具有真实难度,或存在标注错误。随后,样本根据c进行排序,从而形成一个连续的难度谱

然后,通过置信度得分划分样本,确定0.95-0.97为最优难度区间(甜区),过滤噪声低置信与无增益高置信样本,结论是中等难度样本为最优,简单/高噪声样本贡献低。

数据准确率上,实现方式是从一个完全干净的数据集出发,通过在预设比例(例如 5%、10%、15%)下注入噪声,创建了多个训练集。噪声是通过随机选择一定比例的样本并篡改其标签来引入的,将1-3个字符替换为模型词表中的随机字符设置0-20%噪声率,结论发现:20%标签噪声仅导致1.33%性能下降,降低人工标注成本

多样性上,基于CLIP视觉编码器提取特征并K-Means聚类为1000组。

结论是200簇到1000簇,准确率提升5.38 个百分点,这说明特征多样性是泛化能力的的本质,簇数与准确率正相关,优于单纯的数据量堆积【这个是的,因为模型拟合能力都挺好,贵在数据多样性】,此外,在数据量上的试验,在多样化数据池的基础上,100万到500 万样本递增,发现数据量增4倍,准确率提升11.3个百分点(0.6707→0.7838),这说明多样性释放规模潜力,准确率近乎线性提升。

好了,逻辑对了,再基于这个逻辑做数据,分4大类,覆盖印刷【印刷&通用场景,中/英文印刷、通用场景、单字符、特殊格式】/、手写【中/英文手写】、多语言【日文、繁体中文、古籍】、复杂变体场景【易混淆字符、拼音、生僻字、竖排/艺术字、表情】。

在此基础上再做采样,训练集置信度得分按甜点区优先分布(0.95-0.97占48.5%),同时保留13.6%的较难样本(<0.90)保证鲁棒性;采用动态采样/过采样平衡不同类别学习,避免样本不均衡,置信度得分如下:

二、再看真实场景文档解析数据合成思路

上面讲的是数据多样性,现在再讲讲真实场景的数据合成,如下:

工作《Towards Real-World Document Parsing via Realistic Scene Synthesis and Document-Aware Training》,https://arxiv.org/pdf/2603.23885。

模型架构上还是很常规,基于InternVL2-1B做两阶段微调,核心是渐进式学习,先训练模型解析独立元素(表格/公式),再用DocMix-3M做全文档端到端训练,从短上下文到长上下文,保证训练稳定性

看点还是真实场景合成(Realistic Scene Synthesis, RSS),生成300万高质量全页文档(DocMix-3M),这个其实跟之前的《DocLayout-YOLO: Enhancing Document Layout Analysis through Diverse Synthetic Data and Global-to-Local Adaptive Perception》(https://arxiv.org/abs/2410.12628)的填充思路类似【但在doclayout-yolo中是预填充】

细看下:

大致思路是:通过组合原子元素与预先设计的版式模板生成逼真的样本。首先从多个来源构建标准化元素(表格、公式、段落、图表)的仓库,并收集带有注释阅读顺序的版式模板,以捕捉真实文档中观察到的结构模式。在空间和结构约束下,将采样的元素放置到模板中,合成文档实例,从而生成多样且版式丰富的页面。

其中:

1、元素库构建

整合表格识别、公式解析和段落理解数据集,图像通过布局分析模型从真实页面中分割视觉区域获得。

为进一步提升多样性,采用Qwen2.5-72B重写并增强标注——重新组织表格、扰动公式符号,并创建混合类型(例如,嵌入在表格或段落中的公式)

还生成语义连贯且多语言的段落组,以增强上下文和语言覆盖。所有元素均通过基于LaTeX的流水线渲染为图像,并附带对应的解析标签

2、布局库构建

这里的策略是收集带有阅读顺序标注的公开布局数据集,并从网络中挖掘额外的真实世界布局,通过布局检测器进行过滤。对于覆盖率较低的风格,通过组合部分模板进行补充,最终得到一个包含超过576K种布局模式的库

3、数据增强

为缩小合成与真实文档的差距,模拟了自然变化,包括几何(透视偏移、弯曲、褶皱)、光度(光照和曝光变化)、相机(随机旋转)以及环境(真实的背景叠加)。

最后,基于这个数据集,搞个测试集。真实拍摄场景的文档解析基准。

这个其实有重复造轮子,之前说过PP-OCR-VL-1.5(https://aistudio.baidu.com/paddleocr)里对应的是Real5-OmniDocBench,基于标准文档解析基准OmniDocBenchv1.5改造而来,专门测试模型在物理畸变、复杂光照、拍摄瑕疵等真实“野外”场景下的鲁棒性,除“扫描”外,其余4类均为手持移动设备实拍,高度贴近真实使用场景,具体包括Scanning(标准扫描)【干净扫描件,作为基准对照】、Warping(弯曲/褶皱)【纸张弯曲、折痕、变形】、Screen-photography(屏幕翻拍)【拍电脑/手机屏幕(含摩尔纹、反光)】、Illumination(光照不均)【强光、阴影、低光、逆光】、Skew(倾斜/透视)【大幅倾斜、透视畸变】

然后,这里搞了个Wild-OmniDocBench,可以看实现步骤:首先打印文档并折叠/揉皱,在多光照下拍摄;其次屏幕显示文档后重拍,模拟摩尔纹、反光、亮度不均

参考文献

1、https://arxiv.org/html/2603.24373v1

2、https://arxiv.org/pdf/2603.23885

关于我们

老刘,NLP开源爱好者与践行者,主页:https://liuhuanyong.github.io。

对大模型&知识图谱&RAG&文档理解感兴趣,并对每日早报、老刘说NLP历史线上分享、心得交流等感兴趣的,欢迎加入社区,社区持续纳新。

加入社区方式:关注公众号,在后台菜单栏中点击会员社区加入。