PaddleOCR问题精选

  • 1.常用的基于深度学习的文字检测方法一般可以分为基于回归的、基于分割的两大类,当然还有一些将两者进行结合的方法。
  • 2.对于中文行文本识别,CTC和Attention哪种更优?
  • 3.弯曲形变的文字识别需要怎么处理?TPS应用场景是什么,是否好用?
  • 4.简单的对于精度要求不高的OCR任务,数据集需要准备多少张呢?
  • 5.背景干扰的文字(如印章盖到落款上,需要识别落款或者印章中的文字),如何识别?
  • 6.OCR领域常用的评估指标是什么?
  • 7.单张图上多语种并存识别(如单张图印刷体和手写文字并存),应该如何处理?
  • 8.请问PaddleOCR项目中的中文超轻量和通用模型用了哪些数据集?训练多少样本,gpu什么配置,跑了多少个epoch,大概跑了多久?
  • 9.PaddleOCR模型推理方式有几种?各自的优缺点是什么
  • 10.PaddleOCR中,对于模型预测加速,CPU加速的途径有哪些?基于TenorRT加速GPU对输入有什么要求?

GT(paddle答疑机器人)答疑汇总,该模块所有数据源于GT老哥,已经得到授权,如果有问题可以留言,我们会及时修改。

1.常用的基于深度学习的文字检测方法一般可以分为基于回归的、基于分割的两大类,当然还有一些将两者进行结合的方法。

(1)基于回归的方法分为box回归和像素值回归。
a. 采用box回归的方法主要有CTPN、Textbox系列和EAST,这类算法对规则形状文本检测效果较好,但无法准确检测不规则形状文本。
b. 像素值回归的方法主要有CRAFT和SA-Text,这类算法能够检测弯曲文本且对小文本效果优秀但是实时性能不够。

(2)基于分割的算法,如PSENet,这类算法不受文本形状的限制,对各种形状的文本都能取得较好的效果,但是往往后处理比较复杂,导致耗时严重。目前也有一些算法专门针对这个问题进行改进,如DB,将二值化进行近似,使其可导,融入训练,从而获取更准确的边界,大大降低了后处理的耗时。

2.对于中文行文本识别,CTC和Attention哪种更优?

(1)从效果上来看,通用OCR场景CTC的识别效果优于Attention,因为带识别的字典中的字符比较多,常用中文汉字三千字以上,如果训练样本不足的情况下,对于这些字符的序列关系挖掘比较困难。中文场景下Attention模型的优势无法体现。而且Attention适合短语句识别,对长句子识别比较差。

(2)从训练和预测速度上,Attention的串行解码结构限制了预测速度,而CTC网络结构更高效,预测速度上更有优势。

3.弯曲形变的文字识别需要怎么处理?TPS应用场景是什么,是否好用?

(1)在大多数情况下,如果遇到的场景弯曲形变不是太严重,检测4个顶点,然后直接通过仿射变换转正识别就足够了。

(2)如果不能满足需求,可以尝试使用TPS(Thin Plate Spline),即薄板样条插值。TPS是一种插值算法,经常用于图像变形等,通过少量的控制点就可以驱动图像进行变化。一般用在有弯曲形变的文本识别中,当检测到不规则的/弯曲的(如,使用基于分割的方法检测算法)文本区域,往往先使用TPS算法对文本区域矫正成矩形再进行识别,如,STAR-Net、RARE等识别算法中引入了TPS模块。 Warning:TPS看起来美好,在实际应用时经常发现并不够鲁棒,并且会增加耗时,需要谨慎使用。

4.简单的对于精度要求不高的OCR任务,数据集需要准备多少张呢?

(1)训练数据的数量和需要解决问题的复杂度有关系。难度越大,精度要求越高,则数据集需求越大,而且一般情况实际中的训练数据越多效果越好。

(2)对于精度要求不高的场景,检测任务和识别任务需要的数据量是不一样的。对于检测任务,500张图像可以保证基本的检测效果。对于识别任务,需要保证识别字典中每个字符出现在不同场景的行文本图像数目需要大于200张(举例,如果有字典中有5个字,每个字都需要出现在200张图片以上,那么最少要求的图像数量应该在200-1000张之间),这样可以保证基本的识别效果。

5.背景干扰的文字(如印章盖到落款上,需要识别落款或者印章中的文字),如何识别?

(1)在人眼确认可识别的条件下,对于背景有干扰的文字,首先要保证检测框足够准确,如果检测框不准确,需要考虑是否可以通过过滤颜色等方式对图像预处理并且增加更多相关的训练数据;在识别的部分,注意在训练数据中加入背景干扰类的扩增图像。

(2)如果MobileNet模型不能满足需求,可以尝试ResNet系列大模型来获得更好的效果 。

6.OCR领域常用的评估指标是什么?

对于两阶段的可以分开来看,分别是检测和识别阶段
(1)检测阶段:先按照检测框和标注框的IOU评估,IOU大于某个阈值判断为检测准确。这里检测框和标注框不同于一般的通用目标检测框,是采用多边形进行表示。检测准确率:正确的检测框个数在全部检测框的占比,主要是判断检测指标。检测召回率:正确的检测框个数在全部标注框的占比,主要是判断漏检的指标。
(2)识别阶段: 字符识别准确率,即正确识别的文本行占标注的文本行数量的比例,只有整行文本识别对才算正确识别。
(3)端到端统计: 端对端召回率:准确检测并正确识别文本行在全部标注文本行的占比; 端到端准确率:准确检测并正确识别文本行在 检测到的文本行数量 的占比; 准确检测的标准是检测框与标注框的IOU大于某个阈值,正确识别的的检测框中的文本与标注的文本相同。

7.单张图上多语种并存识别(如单张图印刷体和手写文字并存),应该如何处理?

单张图像中存在多种类型文本的情况很常见,典型的以学生的试卷为代表,一张图像同时存在手写体和印刷体两种文本,这类情况下,可以尝试”1个检测模型+1个N分类模型+N个识别模型”的解决方案。 其中不同类型文本共用同一个检测模型,N分类模型指额外训练一个分类器,将检测到的文本进行分类,如手写+印刷的情况就是二分类,N种语言就是N分类,在识别的部分,针对每个类型的文本单独训练一个识别模型,如手写+印刷的场景,就需要训练一个手写体识别模型,一个印刷体识别模型,如果一个文本框的分类结果是手写体,那么就传给手写体识别模型进行识别,其他情况同理。

8.请问PaddleOCR项目中的中文超轻量和通用模型用了哪些数据集?训练多少样本,gpu什么配置,跑了多少个epoch,大概跑了多久?

(1)检测的话,LSVT街景数据集共3W张图像,超轻量模型,150epoch左右,2卡V100 跑了不到2天;
通用模型:2卡V100 150epoch 不到4天。
(2) 识别的话,520W左右的数据集(真实数据26W+合成数据500W)训练,超轻量模型:4卡V100,总共训练了5天左右。通用模型:4卡V100,共训练6天。

超轻量模型训练分为2个阶段:
(1)全量数据训练50epoch,耗时3天
(2)合成数据+真实数据按照1:1数据采样,进行finetune训练200epoch,耗时2天

通用模型训练:
真实数据+合成数据,动态采样(1:1)训练,200epoch,耗时 6天左右。

9.PaddleOCR模型推理方式有几种?各自的优缺点是什么

A:目前推理方式支持基于训练引擎推理和基于预测引擎推理。
(1)基于训练引擎推理不需要转换模型,但是需要先组网再load参数,语言只支持python,不适合系统集成。
(2)基于预测引擎的推理需要先转换模型为inference格式,然后可以进行不需要组网的推理,语言支持c++和python,适合系统集成。

10.PaddleOCR中,对于模型预测加速,CPU加速的途径有哪些?基于TenorRT加速GPU对输入有什么要求?

(1)CPU可以使用mkldnn进行加速;对于python inference的话,可以把enable_mkldnn改为true,参考代码,对于cpp inference的话,在配置文件里面配置use_mkldnn 1即可,参考代码
(2)GPU需要注意变长输入问题等,TRT6 之后才支持变长输入

好了这个问题就到这里了,我们下次再见,记得关注我呦!

【GT的PaddleOCR指南】paddleOCR热(meng)门(bi)Top10相关推荐

  1. PaddleOCR #使用PaddleOCR进行光学字符识别(PP-OCR文本检测识别)

    引言: PaddleOCR 是一个 OCR 框架或工具包,它提供多语言实用的 OCR 工具,帮助用户在几行代码中应用和训练不同的模型.PaddleOCR 提供了一系列高质量的预训练模型.这包含三种类型 ...

  2. 苹果「热修复门」事件复盘、分析和展望

    作者|徐川 编辑|小智 日前,有关苹果挥刀热修复的新闻引起了众多iOS开发者的热议.InfoQ 移动开发领域主编为此特意撰文,梳理事件前后经过,以及近期动向.后期可能影响,以供大家参考. 编者按 3月 ...

  3. 百度PaddleOCR Docker GPU版安装全指南

    最近有一个项目需要用到文字识别,但是又是内网项目,不能用在线的第三方接口. 在Github找了一些包,都对比了一番 最终还是决定使用百度开源的PaddleOCR 机器配置: 12核CPU.16GB D ...

  4. 【PaddleOCR】Paddle-Lite, Paddle2ONNX介绍, 学习教程...

    文章目录 Paddle-Lite Paddle2ONNX 其它经验 Paddle-Lite from: https://github.com/PaddlePaddle/Paddle-Lite Padd ...

  5. 百度飞桨PaddleOCR的简单使用

    PaddleOCR旨在打造一套丰富.领先.且实用的OCR工具库,助力开发者训练出更好的模型,并应用落地. PaddleOCR是一个图像识别库,我只是用到了它的OCR功能,就是识别图片中的文字.其他的功 ...

  6. python3.7下载包的命令_python3.7中安装paddleocr及paddlepaddle包的多种方法

    升级pip pip版本必须升级到20.0.4版本才能应用: 方法一.在pycharm中对pip进行升级: 方法二.通过命令进行升级 python3.7 -m pip install --upgrade ...

  7. PaddleOCR文字识别使用

    [转载] 原网页:https://github.com/PaddlePaddle/PaddleOCR/ 简介 PaddleOCR旨在打造一套丰富.领先.且实用的OCR工具库,助力使用者训练出更好的模型 ...

  8. PaddleOCR 文本检测训练+推理模型转换教程

    GitHub - PaddlePaddle/PaddleOCR at release/2.1 一.环境准备 pip3 install --upgrade pip如果您的机器安装的是CUDA9或CUDA ...

  9. Python使用PaddleOCR本地进行视频字幕识别

    本文简述了利用OpenCV库以及PaddleOCR库对视频预定位置进行字幕提取并整合识别,在实际工程中,可以调用OCR的识别输出接口进行识别内容的批量保存. 后续改进方向参考: 1.PaddleNLP ...

最新文章

  1. sklearn中的cross_val_score交叉验证
  2. Science:人工智能的发展离不开神经科学,先天结构或是下一个方向
  3. Python_面向对象_类1
  4. StoryBoard布局注意事项
  5. 4、修改用户(RENAME USER)
  6. 沃舍尔算法_[数据结构拾遗]图的最短路径算法
  7. SPI的4种工作模式(备忘)
  8. apache arm 交叉编译_MacOS 下交叉编译的折腾笔记
  9. sap甲方_带你走进SAP项目实施过程——前言
  10. hdu 1710 Binary Tree Traversals (二叉树)
  11. ros melodic控制真实机械臂之urdf模型生成
  12. ASP.NET MVC Action返回结果类型【转】
  13. 软考-软件设计师 知识点整理(一篇就过了 建议收藏)
  14. 【网络安全】单选/多选/判断/填空题
  15. 精通 C++ 是个毛意思
  16. unity检测范围内敌人_Unity判断周围是否有敌人
  17. Android广告图片轮播控件banner
  18. Pdf 插入图片 | 指定位置插入图片 不改变原格式 直接操作 pdf
  19. 计算机科学速成课 Crash Course Computer Science 笔记(摘要形式)
  20. 使用weixin-java-miniapp配置进行单个小程序的配置

热门文章

  1. 2021年陕西省安全员C证最新解析及陕西省安全员C证找解析
  2. php变量前边下划线_【变量】关于单下划线、双下划线开头变量的含义
  3. 服务器 网页挂机,云服务器挂机网页游戏
  4. Android中如何加载大图片和长图片
  5. 苹果怎么录屏幕视频?教你轻松开启内置录屏功能
  6. PR 2019 快速入门(9)
  7. 中谷教育Python15~18笔记——函数
  8. excel表格中出现乱码怎么办?
  9. winget InternetOpenUrl() failed. 0x80072f7d
  10. 笑话大全api_笑话大全接口调用示例