乐趣区

关于开源:吊打一切现有开源OCR项目效果再升7速度提升220

01 导读

OCR 方向的工程师,之前肯定据说过 PaddleOCR 这个我的项目,其次要举荐的 PP-OCR 算法更是被国内外企业开发者广泛应用。短短半年工夫,累计 Star 数量已超过 15k,频频登上 Github Trending 和 Paperswithcode 日榜月榜第一。

在《Github 2020 数字洞察报告》中被评为中国 Github Top 20 沉闷我的项目,
称它为 OCR 方向目前最火的 repo 相对不为过。

最近,由 PaddleOCR 原创团队,针对 PP-OCR 进行了一些经验性改良,构建了一种新的 OCR 零碎,称为 PP-OCRv2。

从算法改良思路上看,次要有五个方面的改良:

1. 检测模型优化:采纳 CML 协同互学习常识蒸馏策略;
2. 检测模型优化:CopyPaste 数据增广策略;
3. 辨认模型优化:LCNet 轻量级骨干网络;
4. 辨认模型优化:UDML 改良常识蒸馏策略;
5. 辨认模型优化:Enhanced CTC loss 损失函数改良。

从成果上看,次要有三个方面晋升:

1. 在模型成果上,绝对于 PP-OCR mobile 版本晋升超 7%;
2. 在速度上,绝对于 PP-OCR server 版本晋升超过 220%;
3. 在模型大小上,11.6M 的总大小,服务器端和挪动端都能够轻松部署。

GitHub 我的项目:
https://github.com/PaddlePadd…
注:为了关照刚理解 PaddleOCR 的新用户,在第二、三局部简略进行一些背景介绍,相熟 PaddleOCR 的老用户能够间接跳到第四局部。

02 PaddleOCR 历史体现回顾

2020 年 6 月,8.6M 超轻量模型公布,GitHub Trending 寰球趋势榜日榜第一。
2020 年 8 月,开源 CVPR 2020 顶会算法,再上 GitHub 趋势榜单!
2020 年 10 月,公布 PP-OCR 算法,开源 3.5M 超超轻量模型,再上 Paperswithcode 趋势榜第一!
2021 年 1 月,公布 Style-Text 文本合成算法和 PPOCRLabel 数据标注工具,star 数量冲破 10000+,在《Github 2020 数字洞察报告》中被评为中国 Github Top 20 沉闷我的项目。
2021 年 4 月,开源 AAAI 顶会论文 PGNet 端到端辨认算法,Star 冲破 13k。
2021 年 8 月,开源版面剖析与表格辨认算法 PP-Structure,Star 冲破 15k。
2021 年 9 月,公布 PP-OCRv2 算法,成果和速度再降级。

03 PaddleOCR 开源能力速览

(1)通用文本检测辨认成果:反对通用场景下的 OCR 文本疾速检测辨认

(2)文本合成工具 Style-Text 成果:相比于传统的数据合成算法,Style-Text 能够实现非凡背景下的图片格调迁徙,只须要少许指标场景图像,就能够合成大量数据,成果展现如下:

(3)半自动标注工具 PPOCRLabel:通过内置高质量的 PP-OCR 中英文超轻量预训练模型,能够实现 OCR 数据的高效标注。CPU 机器运行也是齐全没问题的。用法也是十分的简略,标注效率晋升 60%-80% 是妥妥的,成果演示如下:

(4)文档构造剖析 + 表格提取 PP-Structure:能够对文档图片中的文本、表格、图片、题目与列表区域进行分类,还能够利用表格辨认技术残缺地提取表格构造信息,使得表格图片变为可编辑的 Excel 文件。


(5)外围能力全副能够自定义训练,动静对立的开发体验:动态图和动态图是深度学习框架罕用的两种模式。在动态图模式下,代码编写运行形式合乎 Python 程序员的习惯,易于调试,但在性能方面,Python 执行开销较大,与 C++ 有肯定差距。相比动态图,动态图在部署方面更具备性能的劣势。动态图程序在编译执行时,事后搭建好的神经网络能够脱离 Python 依赖,在 C++ 端被从新解析执行,而且领有整体网络结构也能进行一些网络结构的优化。

PaddleOCR 依赖飞桨外围框架动静对立的能力,反对用户应用动态图编写组网代码。预测部署时,飞桨会对用户代码进行剖析,主动转换为动态图网络结构,兼顾了动态图易用性和动态图部署性能两方面劣势。

传送门:
Github:https://github.com/PaddlePadd…

那么最近的 2021 年 9 月份更新,PaddleOCR 又给大家带来哪些惊喜呢?

04 PP-OCRv2 五大关键技术点深刻解读

全新降级的 PP-OCRv2 版本,整体的框架图放弃了与 PP-OCR 雷同的 Pipeline,如下图所示。

在优化策略方面,次要从五个角度进行了深刻优化(如上图红框所示),次要包含:

检测模型优化:采纳 CML 常识蒸馏策略
检测模型优化:CopyPaste 数据增广策略
辨认模型优化:LCNet 轻量级骨干网络
辨认模型优化:UDML 常识蒸馏策略
辨认模型优化:Enhanced CTC loss 改良

上面开展具体介绍:

(1)检测模型优化:采纳 CML (Collaborative Mutual Learning) 协同互学习常识蒸馏策略。

如上图所示,CML 的核心思想联合了①传统的 Teacher 领导 Student 的规范蒸馏与 ② Students 网络间接的 DML 互学习,能够让 Students 网络互学习的同时,Teacher 网络予以领导。对应的,精心设计要害的三个 Loss 损失函数:GT Loss、DML Loss 和 Distill Loss,在 Teacher 网络 Backbone 为 ResNet18 的条件下,对 Student 的 MobileNetV3 起到了良好的晋升成果。

(2)检测模型优化:CopyPaste 数据增广策略

数据增广是晋升模型泛化能力重要的伎俩之一,CopyPaste 是一种新鲜的数据加强技巧,曾经在指标检测和实例宰割工作中验证了有效性。利用 CopyPaste,能够合成文本实例来均衡训练图像中的正负样本之间的比例。相比而言,传统图像旋转、随机翻转和随机裁剪是无奈做到的。

CopyPaste 次要步骤包含:①随机抉择两幅训练图像,②随机尺度抖动缩放,③随机程度翻转,④随机抉择一幅图像中的指标子集,⑤粘贴在另一幅图像中随机的地位。这样,就比拟好的晋升了样本丰盛度,同时也减少了模型对环境鲁棒性。

通过以上两个检测方向的优化策略,PP-OCRv2 检测局部的试验成果如下:

(3)辨认模型优化:LCNet 轻量级骨干网络

这里,PP-OCRv2 的研发团队提出了一种基于 MobileNetV1 改良的新的骨干网络 LCNet,次要的改变包含:

① 除 SE 模块,网络中所有的 relu 替换为 h-swish,精度晋升 1%-2%
② LCNet 第五阶段,DW 的 kernel size 变为 5 ×5,精度晋升 0.5%-1%
③ LCNet 第五阶段的最初两个 DepthSepConv block 增加 SE 模块,精度晋升 0.5%-1%
④ GAP 后增加 1280 维的 FC 层,减少特色表达能力,精度晋升 2%-3%

(4)辨认模型优化:UDML 常识蒸馏策略

在规范的 DML 常识蒸馏的根底上,新增引入了对于 Feature Map 的监督机制,新增 Feature Loss,减少迭代次数,在 Head 局部减少额定的 FC 网络,最终放慢蒸馏的速度同时晋升成果。

(5)辨认模型优化:Enhanced CTC loss 改良

思考到中文 OCR 工作常常遇到的辨认难点是类似字符数太多,容易误识,借鉴 Metric Learning 的想法,引入 Center Loss,进一步增大类间间隔,外围思路如上图公式所示。

通过以上三个辨认方向的优化策略,PP-OCRv2 辨认局部的试验成果如下:

通过以上五个方向的优化,最终 PP-OCRv2 仅以大量模型大小减少的代价,全面超过 PP-OCR,获得了良好的成果。

05 良心出品的中英文文档教程

随着本次 PP-OCRv2 降级,PaddleOCR 的我的项目文档也全面降级,构造更清晰,内容更丰盛:

别的不须要多说了,大家拜访 GitHub 点过 star 之后本人体验吧:
https://github.com/PaddlePadd…

点击进入理解更多技术资讯~~

退出移动版