Update PP-OCRv4_introduction.md (#10616)

* Update PP-OCRv4_introduction.md

* Update PP-OCRv4_introduction.md

* Update PP-OCRv4_introduction.md
pull/10653/head
topduke 2023-08-14 16:02:56 +08:00 committed by GitHub
parent ee9dc3ca66
commit 88e2b13455
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 11 additions and 11 deletions

View File

@ -81,13 +81,13 @@ PP-OCRv4检测模型对PP-OCRv3中的CMLCollaborative Mutual Learning) 协同
<a name="3"></a>
## 3. 识别优化
PP-OCRv4在PP-OCRv3的基础上进一步升级。整体的框架图保持了与PP-OCRv3相同的pipeline针对检测模型和识别模型进行了数据、网络结构、训练策略等多个模块的优化。 PP-OCRv4系统框图如下所示
PP-OCRv4识别模型在PP-OCRv3的基础上进一步升级。如下图所示整体的框架图保持了与PP-OCRv3识别模型相同的pipeline分别进行了数据、网络结构、训练策略等方面的优化。
<div align="center">
<img src="../ppocr_v4/v4_rec_pipeline.png" width=800>
</div>
基于上述策略PP-OCRv4识别模型相比PP-OCRv3在速度可比的情况下精度进一步提升4%。 具体消融实验如下所示:
经过如图所示的策略优化PP-OCRv4识别模型相比PP-OCRv3在速度可比的情况下精度进一步提升4%。 具体消融实验如下所示:
| ID | 策略 | 模型大小 | 精度 | 预测耗时CPU openvino)|
|-----|-----|--------|----| --- |
@ -103,8 +103,8 @@ PP-OCRv4在PP-OCRv3的基础上进一步升级。整体的框架图保持了与P
**1DF数据挖掘方案**
DF(Data Filter) 是一种简单有效的数据挖掘方案。核心思想是利用已有模型预测训练数据通过置信度和预测结果等信息对全量数据进行筛选。具体的首先使用少量数据快速训练得到一个低精度模型使用该低精度模型对千万级的数据进行预测去除置信度大于0.95的样本,该部分被认为是对提升模型精度无效的冗余数据。其次使用PP-OCRv3作为高精度模型对剩余数据进行预测去除置信度小于0.15的样本,该部分被认为是难以识别或质量很差的样本。
使用该策略,千万级别训练数据被精简至百万级,显著提升模型训练效率,模型训练时间从2周减少到5天同时精度提升至72.7%(+1.2%)。
DF(Data Filter) 是一种简单有效的数据挖掘方案。核心思想是利用已有模型预测训练数据,通过置信度和预测结果等信息,对全量的训练数据进行筛选。具体的首先使用少量数据快速训练得到一个低精度模型使用该低精度模型对千万级的数据进行预测去除置信度大于0.95的样本,该部分被认为是对提升模型精度无效的冗余样本。其次使用PP-OCRv3作为高精度模型对剩余数据进行预测去除置信度小于0.15的样本,该部分被认为是难以识别或质量很差的样本。
使用该策略千万级别训练数据被精简至百万级模型训练时间从2周减少到5天,显著提升了训练效率同时精度提升至72.7%(+1.2%)。
<div align="center">
@ -118,12 +118,12 @@ PP-LCNetV3系列模型是PP-LCNet系列模型的延续覆盖了更大的精
**3Lite-Neck精简参数的Neck结构**
Lite-Neck整体结构沿用PP-OCRv3版本在参数上稍作精简识别模型整体的模型大小可从12M降低到8.5M而精度不变在CTCHead中将Neck输出特征的维度从64提升到120此时模型大小从8.5M提升到9.6M精度提升0.5%
Lite-Neck整体结构沿用PP-OCRv3版本的结构在参数上稍作精简识别模型整体的模型大小可从12M降低到8.5M而精度不变在CTCHead中将Neck输出特征的维度从64提升到120此时模型大小从8.5M提升到9.6M。
**4GTC-NRTRAttention指导CTC训练策略**
GTCGuided Training of CTC在PP-OCRv3中使用过的策略融合多种文本特征的表达有效的提升文本识别精度。在PP-OCRv4中使用训练更稳定的Transformer模型NRTR作为指导相比SAR基于循环神经网络的结构NRTR基于Transformer实现解码过程泛化能力更强能有效指导CTC分支学习。解决简单场景下快速过拟合的问题。模型大小不变识别精度提升至73.21%(+0.5%)。
GTCGuided Training of CTCPP-OCRv3识别模型的最有效的策略之一融合多种文本特征的表达有效的提升文本识别精度。在PP-OCRv4中使用训练更稳定的Transformer模型NRTR作为指导分支,相比V3版本中的SAR基于循环神经网络的结构NRTR基于Transformer实现解码过程泛化能力更强能有效指导CTC分支学习解决简单场景下快速过拟合的问题。使用Lite-Neck和GTC-NRTR两个策略识别精度提升至73.21%(+0.5%)。
<div align="center">
<img src="../ppocr_v4/ppocrv4_gtc.png" width="500">
@ -132,7 +132,7 @@ GTCGuided Training of CTC是在PP-OCRv3中使用过的策略融合
**5Multi-Scale多尺度训练策略**
动态尺度训练策略是在训练过程中随机resize输入图片的高度以增大模型的鲁棒性。在训练过程中随机选择324864三种高度进行resize实验证明在测试集上评估精度不掉在端到端串联推理时指标可以提升0.5%。
动态尺度训练策略是在训练过程中随机resize输入图片的高度以增强识别模型在端到端串联使用时的鲁棒性。在训练时每个iter从324864三种高度中随机选择一种高度进行resize。实验证明使用该策略尽管在识别测试集上准确率没有提升但在端到端串联评估时指标提升0.5%。
<div align="center">
<img src="../ppocr_v4/multi_scale.png" width="500">
@ -143,9 +143,9 @@ GTCGuided Training of CTC是在PP-OCRv3中使用过的策略融合
识别模型的蒸馏包含两个部分NRTRhead蒸馏和CTCHead蒸馏;
对于NRTR head使用了DKD loss蒸馏使学生模型NRTR head输出的logits与教师NRTR head接近。最终NRTR head的loss是学生与教师间的DKD loss和与ground truth的cross entropy loss的加权和用于监督学生模型的backbone训练。通过实验我们发现加入DKD loss后计算与ground truth的cross entropy loss时去除label smoothing可以进一步提高精度因此我们在这里使用的是不带label smoothing的cross entropy loss。
对于NRTR head使用了DKD loss蒸馏拉近学生模型和教师模型的NRTR head logits。最终NRTR head的loss是学生与教师间的DKD loss和与ground truth的cross entropy loss的加权和用于监督学生模型的backbone训练。通过实验我们发现加入DKD loss后计算与ground truth的cross entropy loss时去除label smoothing可以进一步提高精度因此我们在这里使用的是不带label smoothing的cross entropy loss。
对于CTCHead由于CTC的输出中存在Blank位即使教师模型和学生模型的预测结果一样二者的输出的logits分布也会存在差异影响教师模型向学生模型的知识传递。PP-OCRv4识别模型蒸馏策略中将CTC输出logits沿着文本长度维度计算均值将多字符识别问题转换为多字符分类问题用于监督CTC Head的训练。使用该策略融合NRTRhead DKD蒸馏策略指标从0.7377提升到0.7545
对于CTCHead由于CTC的输出中存在Blank位即使教师模型和学生模型的预测结果一样二者的输出的logits分布也会存在差异影响教师模型向学生模型的知识传递。PP-OCRv4识别模型蒸馏策略中将CTC输出logits沿着文本长度维度计算均值将多字符识别问题转换为多字符分类问题用于监督CTC Head的训练。使用该策略融合NRTRhead DKD蒸馏策略指标从74.72%提升到75.45%
@ -169,11 +169,11 @@ GTCGuided Training of CTC是在PP-OCRv3中使用过的策略融合
| PP-OCRv3_en | 64.04% |
| PP-OCRv4_en | 70.1% |
同时,对已支持的80余种语言识别模型进行了升级更新在有评估集的四种语系识别准确率平均提升8%以上,如下表所示:
同时对已支持的80余种语言识别模型进行了升级更新在有评估集的四种语系识别准确率平均提升8%以上,如下表所示:
| Model | 拉丁语系 | 阿拉伯语系 | 日语 | 韩语 |
|-----|-----|--------|----| --- |
| PP-OCR_mul | 69.60% | 40.50% | 38.50% | 55.40% |
| PP-OCRv3_mul | 75.20%| 45.37% | 45.80% | 60.10% |
| PP-OCRv3_mul | 71.57%| 72.90% | 45.85% | 77.23% |
| PP-OCRv4_mul | 80.00%| 75.48% | 56.50% | 83.25% |