共计 4864 个字符,预计需要花费 13 分钟才能阅读完成。
OCR 方向的工程师,肯定有在关注 PaddleOCR 这个我的项目,其次要举荐的 PP-OCR 算法更是被国内外企业开发者广泛应用。短短几年工夫,PP-OCR 累计 Star 数量已超过 32.2k,频频登上 GitHub Trending 和 Paperswithcode 日榜月榜第一,称它为 OCR 方向目前最火的 repo 相对不为过。
PaddleOCR 主打的 PP-OCR 系列模型,在去年五月份推出了 v3。最近,飞桨 AI 套件团队针对 PP-OCRv3 进行了全方位的改良,重磅推出了 PP-OCRv4!👏👏👏
从成果上看,速度可比状况下,v4 相比 v3 在多种场景下的精度均有大幅晋升:
- 中文场景,绝对于 PP-OCRv3 中文模型晋升超 4%。
- 英文数字场景,相比于 PP-OCRv3 英文模型晋升 6%。
- 多语言场景,优化 80 个语种辨认成果,均匀准确率晋升超 8%。
PP-OCRv4 模型目前已随 PaddleOCR 2.7 版本正式公布,欢送大家继续关注 PaddleOCR~~~
GitHub 我的项目地址
https://github.com/PaddlePaddle/PaddleOCR
PP-OCRv4 成果速览
让咱们拿后果谈话,多图预警!!!
PP-OCRv4 成果速览
英文场景
多语言场景
上面上定量评测后果!
PP-OCRv4 在速度可比状况下,中文场景端到端 Hmean 指标相比于 PP-OCRv3 晋升 4.25%,成果大幅晋升。具体指标如下表所示:
测试环境:CPU 型号为 Intel Gold 6148,CPU 预测时应用 OpenVINO。
除了更新中文模型,本次降级也优化了英文数字模型,在自有评估集上文本辨认准确率晋升 6%,如下表所示:
同时,也对已反对的 80 余种语言辨认模型进行了降级更新,在有评估集的四种语系辨认准确率均匀晋升 5% 以上,如下表所示:
在飞桨 AI 套件中应用 PP-OCRv4
为了不便大家在线体验成果,并且疾速上手 PP-OCRv4 模型的训练调优和部署,PP-OCRv4 目前已上线飞桨 AI 套件 PaddleX!
在线体验推理成果
https://aistudio.baidu.com/projectdetail/6611435
创立本人的 PP-OCRv4
https://aistudio.baidu.com/modelsdetail?modelId=286
PaddleX 是一站式、全流程、高效率的飞桨 AI 套件,具备飞桨生态优质模型和产业计划。PaddleX 的使命是助力 AI 技术疾速落地,愿景是使人人成为 AI Developer。
PaddleX 反对 10+ 工作能力,包含图像分类、指标检测、图像宰割、3D、OCR 和时序预测等;内置 36 种飞桨生态特色模型,包含 PP-ChatOCR、PP-OCRv4、RT-DETR、PP-YOLOE、PP-ShiTu、PP-LiteSeg、PP-TS 等。
PaddleX 提供“工具箱”和“开发者”两种开发模式,同时反对云端和本地端。工具箱模式能够无代码调优要害超参,开发者模式能够低代码进行单模型训压推和多模型串联推理。
PaddleX 将来还将反对联创开发,收益共享!欢送宽广集体开发者和企业开发者参加进来,共创凋敝的 AI 技术生态!
目前 PaddleX 正在疾速迭代,欢送大家试用和斧正!
PP-OCRv4 十大关键技术点深刻解读
PP-OCRv4 整体的框架图放弃了与 PP-OCRv3 雷同的 pipeline,针对检测模型和辨认模型进行了数据、网络结构、训练策略等多个模块的优化。PP-OCRv4 零碎框图如下所示:
从算法改良思路上看,别离针对检测和辨认模型,进行了共 10 个方面的改良:
检测模块
- PP-LCNetV3:精度更高的骨干网络
- PFHead:并行 head 分支交融构造
- DSR: 训练中动静减少 shrink ratio
- CML:增加 Student 和 Teacher 网络输入的 KL div loss
辨认模块
- SVTR_LCNetV3:精度更高的骨干网络
- Lite-Neck:精简的 Neck 构造
- GTC-NRTR:稳固的 Attention 领导分支
- Multi-Scale:多尺度训练策略
- DF: 数据挖掘计划
- DKD:DKD 蒸馏策略
敲黑板了,上面让咱们对这 10 个技术点进行一一解读。
检测优化
PP-OCRv4 检测模型在 PP-OCRv3 检测模型的根底上,在网络结构,训练策略,蒸馏策略三个方面做了优化。首先,PP-OCRv4 检测模型应用 PP-LCNetV3 替换 MobileNetv3,并提出并行分支交融的 PFhead 构造;其次,训练时动静调整 shrink ratio 的比例;最初,PP-OCRv4 对 CML 的蒸馏 loss 进行优化,进一步晋升文字检测成果。
融化试验如下:
测试环境:Intel Gold 6148 CPU,预测引擎应用 OpenVINO。
PFhead:多分支交融 Head 构造
PFhead 构造如下图所示,PFHead 在通过第一个转置卷积后,别离进行上采样和转置卷积,上采样的输入通过 3 ×3 卷积失去输入后果,而后和转置卷积的分支的后果级联并通过 1 ×1 卷积层,最初 1 ×1 卷积的后果和转置卷积的后果相加失去最初输入的概率图。PP-OCRv4 学生检测模型应用 PFhead,Hmean 从 76.22% 减少到 76.97%。
DSR:膨胀比例动静调整策略
动静 shrink ratio(dynamic shrink ratio): 在训练中,shrink ratio 由固定值调整为动态变化,随着训练 epoch 的减少,shrink ratio 从 0.4 线性减少到 0.6。该策略在 PP-OCRv4 学生检测模型上,Hmean 从 76.97% 晋升到 78.24%。
PP-LCNetV3:精度更高的骨干网络
PP-LCNetV3 系列模型是 PP-LCNet 系列模型的连续,笼罩了更大的精度范畴,可能适应不同上游工作的须要。PP-LCNetV3 系列模型从多个方面进行了优化,提出了可学习仿射变换模块,对重参数化策略、激活函数进行了改良,同时调整了网络深度与宽度。最终,PP-LCNetV3 系列模型可能在性能与效率之间达到最佳的均衡,在不同精度范畴内获得极致的推理速度。应用 PP-LCNetV3 替换 MobileNetv3 backbone,PP-OCRv4 学生检测模型 hmean 从 78.24% 晋升到 79.08%。
CML:交融 KD 的互学习策略
PP-OCRv4 检测模型对 PP-OCRv3 中的 CML(Collaborative Mutual Learning) 协同互学习文本检测蒸馏策略进行了优化。如下图所示,在计算 Student Model 和 Teacher Model 的 distill Loss 时,额定增加 KL div loss,让两者输入的 response maps 散布靠近,由此进一步晋升 Student 网络的精度,检测 Hmean 从 79.08% 减少到 79.56%,端到端指标从 61.31% 减少到 61.87%。
辨认优化
PP-OCRv3 的辨认模块是基于文本辨认算法 SVTR 优化。SVTR 不再采纳 RNN 构造,通过引入 Transformers 构造更加无效地开掘文本行图像的上下文信息,从而晋升文本辨认能力。间接将 PP-OCRv2 的辨认模型,替换成 SVTR_Tiny,辨认准确率从 74.8% 晋升到 80.1%(+5.3%),然而预测速度慢了将近 11 倍,CPU 上预测一条文本行,将近 100ms。因而,如下图所示,PP-OCRv3 采纳如下 6 个优化策略进行辨认模型减速。
基于上述策略,PP-OCRv4 辨认模型相比 PP-OCRv3,在速度可比的状况下,精度进一步晋升 4%。具体融化试验如下所示:
注:测试速度时,输出图片尺寸均为(3,48,320)。在理论预测时,图像为变长输出,速度会有所变动。测试环境:Intel Gold 6148 CPU,预测时应用 OpenVINO 预测引擎。
DF:数据挖掘计划
DF(Data Filter) 是一种简略无效的数据挖掘计划。核心思想是利用已有模型预测训练数据,通过置信度和预测后果等信息,对全量数据进行筛选。具体的:首先应用大量数据疾速训练失去一个低精度模型,应用该低精度模型对千万级的数据进行预测,去除置信度大于 0.95 的样本,该局部被认为是对晋升模型精度有效的冗余数据。其次应用 PP-OCRv3 作为高精度模型,对残余数据进行预测,去除置信度小于 0.15 的样本,该局部被认为是难以辨认或品质很差的样本。应用该策略,千万级别训练数据被精简至百万级,显著晋升模型训练效率,模型训练工夫从 2 周缩小到 5 天,同时精度晋升至 72.7%(+1.2%)。
PP-LCNetV3:精度更优的骨干网络
PP-LCNetV3 系列模型是 PP-LCNet 系列模型的连续,笼罩了更大的精度范畴,可能适应不同上游工作的须要。PP-LCNetV3 系列模型从多个方面进行了优化,提出了可学习仿射变换模块,对重参数化策略、激活函数进行了改良,同时调整了网络深度与宽度。最终,PP-LCNetV3 系列模型可能在性能与效率之间达到最佳的均衡,在不同精度范畴内获得极致的推理速度。
Lite-Neck:精简参数的 Neck 构造
Lite-Neck 整体构造沿用 PP-OCRv3 版本,在参数上稍作精简,辨认模型整体的模型大小可从 12M 升高到 8.5M,而精度不变;在 CTCHead 中,将 Neck 输入特色的维度从 64 晋升到 120,此时模型大小从 8.5M 晋升到 9.6M,精度晋升 0.5%。
GTC-NRTR:Attention 领导 CTC 训练策略
GTC(Guided Training of CTC),是在 PP-OCRv3 中应用过的策略,交融多种文本特色的表白,可无效晋升文本辨认精度。在 PP-OCRv4 中应用训练更稳固的 Transformer 模型 NRTR 作为领导,相比 SAR 基于循环神经网络的构造,NRTR 基于 Transformer 实现解码过程泛化能力更强,能无效领导 CTC 分支学习。解决简略场景下疾速过拟合的问题。模型大小不变,辨认精度晋升至 73.21%(+0.5%)。
Multi-Scale:多尺度训练策略
动静尺度训练策略,是在训练过程中随机 resize 输出图片的高度,以增大模型的鲁棒性。在训练过程中随机抉择(32,48,64)三种高度进行 resize,试验证实在测试集上评估精度不掉,在端到端串联推理时,指标能够晋升 0.5%。
DKD:蒸馏策略
辨认模型的蒸馏蕴含两个局部,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。
对于 CTCHead,因为 CTC 的输入中存在 Blank 位,即便老师模型和学生模型的预测后果一样,二者输入的 logits 散布也会存在差别,影响老师模型向学生模型的常识传递。PP-OCRv4 辨认模型蒸馏策略中,将 CTC 输入 logits 沿着文本长度维度计算均值,将多字符识别问题转换为多字符分类问题,用于监督 CTC Head 的训练。应用该策略交融 NRTRhead DKD 蒸馏策略,指标从 0.7377 晋升到 0.7545。
在 AI Studio 在线体验 PP-OCRv4 的推理成果
https://aistudio.baidu.com/projectdetail/6611435
飞桨 AI 套件 PaddleX 中的 PP-OCRv4
https://aistudio.baidu.com/modelsdetail?modelId=286
PaddleOCR 我的项目地址
https://github.com/PaddlePaddle/PaddleOCR