OCR方向的工程师,之前一定听说过PaddleOCR这个项目,其主要推荐的PP-OCR算法更是被国内外企业开发者广泛应用,短短半年时间,累计Star数量已超过15k,频频登上Github Trending和Paperswithcode 日榜月榜第一,在《Github 2020数字洞察报告》中被评为中国Github Top20活跃项目,称它为 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/PaddlePaddle/PaddleOCR

注:为了照顾刚了解PaddleOCR的新用户,在第二、三部分简单进行一些背景介绍,熟悉PaddleOCR的老用户可以直接跳到第四部分。

PaddleOCR

历史表现回顾

  • 2020年6月,8.6M超轻量模型发布,GitHub Trending 全球趋势榜日榜第一

  • 2020年8月,开源CVPR2020顶会算法,再上GitHub趋势榜单!

  • 2020年10月,发布PP-OCR算法,开源3.5M超超轻量模型,再上Paperswithcode 趋势榜第一!

  • 2021年1月,发布Style-Text文本合成算法和PPOCRLabel数据标注工具,star数量突破10000+,在《Github 2020数字洞察报告》中被评为中国Github Top20活跃项目

  • 2021年4月,开源AAAI顶会论文PGNet端到端识别算法,Star突破13k。

  • 2021年8月,开源版面分析与表格识别算法PP-Structure,Star突破15k。

  • 2021年9月,发布PP-OCRv2算法,效果和速度再升级。

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依赖飞桨核心框架动静统一的能力,支持用户使用动态图编写组网代码。预测部署时,飞桨会对用户代码进行分析,自动转换为静态图网络结构,兼顾了动态图易用性和静态图部署性能两方面优势。

传送门:

https://github.com/PaddlePaddle/PaddleOCR

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

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变为5x5,精度提升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,取得了良好的效果。

良心出品

中英文文档教程

随着本次PP-OCRv2升级,PaddleOCR的项目文档也全面升级,结构更清晰,内容更丰富。

别的不需要多说了,大家访问GitHub点过star之后自己体验吧:

https://github.com/PaddlePaddle/PaddleOCR

9月8日晚20:15-21:30,百度高级研发工程师将为我们详细解析速度与精度都大幅提升的PaddleOCR,欢迎大家扫码报名直播课,加入技术交流群~

长按下方二维码立即

Star

更多信息:

  1. 飞桨官方QQ群:793866180

  2. 飞桨官网网址:

    www.paddlepaddle.org.cn/

  3. PaddleOCR项目地址:

    GitHub:

    github.com/PaddlePaddle/PaddleOCR
    Gitee:

    gitee.com/paddlepaddle/PaddleOCR

  4. 欢迎在飞桨论坛讨论交流~~

    http://discuss.paddlepaddle.org.cn

END

吊打一切现有开源OCR项目!PP-OCRv2效果再升7%,速度提升220%!相关推荐

  1. 吊打一切现有开源OCR项目:效果再升7%,速度提升220%

    01 导读 OCR 方向的工程师,之前一定听说过 PaddleOCR 这个项目,其主要推荐的 PP-OCR 算法更是被国内外企业开发者广泛应用.短短半年时间,累计 Star 数量已超过15k,频频登上 ...

  2. 吊打一切现有开源OCR项目!90% +准确率,训练部署一条龙

    资源如何最大化利用是每一位企业经营者需要重要考虑的问题. 在会议室.休闲区等公共空间人员流动量大的情况下,如何实现公共空间诸如空调.灯光.新风等设备的能效管理,是每位场地管理者普遍面临的棘手问题.怎样 ...

  3. Google开源OCR项目Tesseract安装版在Windows下的使用测试记录

    开源OCR项目有很多,给大家一个链接,这个链接列出了现有的比较出名的OCR开源项目,链接如下: https://en.wikipedia.org/wiki/Comparison_of_optical_ ...

  4. Google开源OCR项目Tesseract训练(自己训练的记录,未成功)

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 本文训练Tesseract用的方法主要参考文章  ...

  5. C++开源代码项目汇总

    Google的C++开源代码项目 v8  -  V8 JavaScript Engine V8 是 Google 的开源 JavaScript 引擎. V8 采用 C++ 编写,可在谷歌浏览器(来自 ...

  6. attention 文字识别算法_支持40种语言的图片文字识别(OCR)项目

    Hi!大家好呀!我是你们努力的喵哥! OCR(光学字符识别)是我们日常很常用的人工智能技术.我们总会有从图片中提取文字的需求.你是不是有需要从图片复制文字的经历?手打是最低效的选择.我们可以使用 OC ...

  7. 【导航业务框架】开源无人驾驶项目autoware解读

    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录 前言 一.Autoware的整体框架和模块 1.Autoware介绍 2. ...

  8. python图片转文字easyocr_支持40种语言的图片文字识别(OCR)项目

    Hi!大家好呀!我是你们努力的喵哥! OCR(光学字符识别)是我们日常很常用的人工智能技术.我们总会有从图片中提取文字的需求.你是不是有需要从图片复制文字的经历?手打是最低效的选择.我们可以使用 OC ...

  9. 看一下基于ASP.NET MVC的开源社区项目Orchard

    昨天介绍了基于ASP.NET MVC的框架Catharsis,今天给大家介绍的是基于ASP.NET MVC的一个开源社区项目Orchard,本篇主要介绍一下Orchard是什么,如何下载安装以及安装过 ...

最新文章

  1. 微信小程序去除左上角返回的按钮
  2. JZOJ 5407. 【NOIP2017提高A组集训10.21】Deep
  3. oracle 空间数据字段,Oracle spatial创建空间数据的字段详解
  4. Leetcode题库 136.只出现一次的数字(异或 C实现)
  5. 【基础】哥德巴赫猜想
  6. 430. Flatten a Multilevel Doubly Linked List | 430. 扁平化多级双向链表(DFS)
  7. FarPoint Spread For .Net 4.0
  8. mySQL 教程 第2章 安装和介绍mySQL
  9. 《剑指Offer》 旋转数组的最小数字
  10. 遗传算法的交叉变异详解
  11. 进程和线程不属于标准c语言,经典C语言面试题6:进程与线程的关系和区别
  12. [转]WebGL中文教程
  13. adb手机无法识别 vivo_vivo安卓adb工具
  14. webstorm主题网址+使用方法
  15. android build.prop 修改,修改android的build.prop文件真的能够提高android设备性能?!...
  16. 爬取斗鱼4300W热度的小姐姐是一种什么样的体验?
  17. java 日期calendar_java成神之——date和calendar日期的用法
  18. VBA 计算两个时间相差多少分钟
  19. 基于asp.net企业门户网站设计
  20. acwing 905 区间问题-区间选点

热门文章

  1. 操作系统——廉价磁盘冗余阵列
  2. 5款前端切图工具大比拼:谁是最强切图神器
  3. 如何加快Vue单页加载(和打包)速度
  4. CSV文件(utf-8格式)用excel打开乱码繁体转简体
  5. pyinstaller打包的一些注意事项和问题:找不到文件?!
  6. 全民Python的时代,请问财务是否真的需要python?
  7. 项目到tomcat后,报错:jar not loaded. See Servlet Spec 2.3, section 9.7.2. class: javax/servlet/Servlet.clas
  8. 解决谷歌浏览器打开空白标签页自动跳转https://www.google.com.hk/webhp?ie=UTF-8gws_rd=crrct=j
  9. 大数据行业:寒冬并不可怕,关键要靠内功
  10. 一个图书编辑在南美逛书展(上)