diff --git a/doc/doc_ch/PP-OCRv3_introduction.md b/doc/doc_ch/PP-OCRv3_introduction.md index 096c27e5aebadd06ae795b5b2808be73da889201..8aa3abdb611ea87a17bd33223a72fd238863a20b 100644 --- a/doc/doc_ch/PP-OCRv3_introduction.md +++ b/doc/doc_ch/PP-OCRv3_introduction.md @@ -34,29 +34,29 @@ PP-OCRv2从骨干网络选择和调整、预测头部的设计、数据增强、 ### PP-OCRv3文本检测模型优化策略 -PP-OCRv3在PP-OCRv2的基础上进一步升级。 +PP-OCRv3采用PP-OCRv2的[CML](https://arxiv.org/pdf/2109.03144.pdf)蒸馏策略,在蒸馏的student模型、teacher模型精度提升,CML蒸馏策略上分别做了优化。下面简要介绍PPOCRv3的文本检测优化策略。 -PP-OCRv3文本检测从网络结构、蒸馏训练策略两个方向做了进一步优化: -1. 网络结构改进:提出两种改进后的FPN网络结构,RSEFPN,LKPAN,分别从channel attention、更大感受野的角度优化FPN结构。 +- 首先,在蒸馏student模型精度提升方面,针对模型召回能力低的问题,提出了RSEFPN的FPN结构用于提升student模型精度; -*RSEFPN简要介绍:* +RSEFPN的网络结构如下图所示,RSEFPN在PPOCRv2的FPN基础上,将FPN中的卷积层更换为了channel attention结构的RSEConv层。 ![](../ppocr_v3/RSEFPN.png) -PPOCRv2检测模型的FPN结构由纯卷积和上采样层构成,不包含BN层,激活函数等模块。PPOCRv3对PPOCRv2检测模型中的FPN结构进行改进,借鉴channel attention的思想,将FPN中的卷积层换为带残差结构的RSEBlock,其网络结构如上图所示;SEBlock起到channel attention的作用;另外,考虑到PPOCR文本检测模型FPN网络的通道数较小(channel=96),channel atttion可能抑制掉某些包含重要特征的channel;因此,PPOCRv3引入了残差结构。实验表明引入残差结构相比只引入SEBlock有2.7%的精度提升。RSEFPN将base检测模型的精度hmean从81.3%提升到84.5%。 +RSEFPN将PPOCR检测模型的精度hmean从81.3%提升到84.5%。模型大小从3M变为3.6M。 -*LKPAN简要介绍:* +- 然后,在蒸馏的teacher模型精度提升方面,提出了LKPAN结构替换PPOCRv2的FPN结构,并且使用ResNet50作为Backbone,更大的模型带来更多的精度提升。最终teacher的模型指标hmean达到了86.0%。 + +LKPAN的网络结构如下图所示: ![](../ppocr_v3/LKPAN.png) -LKPAN是一个具有更大感受野的轻量级PAN结构。其网络结构如上图所示。 LKPAN对输入的特征首先使用`1*1`conv统一特征的通道, 在LKPAN的path augmentation中,使用kernel size为`9*9`的深度可分离卷积。更大的kernelsize意味着更大的感受野,更容易检测大字体的文字以及极端长宽比的文字。使用深度可分离卷积可以显著降低模型的参数量。LKPAN将base检测模型的精度hmean从81.3%提升到84.9%。 +LKPAN是一个具有更大感受野的轻量级PAN结构。在在LKPAN的path augmentation中,使用kernel size为`9*9`的卷积;更大的kernel size意味着更大的感受野,更容易检测大字体的文字以及极端长宽比的文字。LKPAN将base检测模型的精度hmean从81.3%提升到84.9%。 + +*注:LKPAN相比RSEFPN有更多的精度提升,但是考虑到模型大小和预测速度等因素,在student模型中使用RSEFPN。* -2. CML蒸馏训练策略调整:PPOCRv3文本检测模型训练中,仍采用[CML](https://arxiv.org/pdf/2109.03144.pdf)的蒸馏策略。首先,在蒸馏teacher模型选择上,使用ResNet50作为teacher的Backbone,使用LKPAN作为FPN部分,最终使用[DML](https://arxiv.org/abs/1706.00384)蒸馏策略训练得到更高精度的teacher模型。然后,在CML蒸馏训练时,随训练epoch数增加,线性降低teacher模型和student模型之间损失函数的比例,loss比例计算公式如下: -``` - α = 1 – (epoch/total_epoch)*0.4 -``` -最后,在蒸馏时,考虑到模型大小及预测速度,采用RSEFPN作为蒸馏student模型的FPN结构。优化后的CML蒸馏将PPOCRv2的精度hmean从83.3%提升到84.4%,同时模型的召回能力显著提升。 +- 最后,调整CML蒸馏训练策略调整:为了进一步提升蒸馏模型的精度,对teacher模型使用[DML](https://arxiv.org/abs/1706.00384)蒸馏策略进一步提升teacher模型的精度,更好的指导student模型的训练。 +采用上述策略,PPOCRv3相比PPOCRv2,hmean指标从83.3%提升到85.4%;预测速度从平均117ms/image变为124ms/image。 3. 消融实验