From f103ed2791d1c4aacabec6ef61658d8dc754067f Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Mon, 21 Dec 2020 11:22:39 +0800 Subject: [PATCH 1/7] add FAQ --- doc/doc_ch/FAQ.md | 104 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 73 insertions(+), 31 deletions(-) diff --git a/doc/doc_ch/FAQ.md b/doc/doc_ch/FAQ.md index 27b3126c..1e8ebf9b 100755 --- a/doc/doc_ch/FAQ.md +++ b/doc/doc_ch/FAQ.md @@ -14,37 +14,48 @@ * [【理论篇】OCR通用30个问题](#OCR通用问题) * [基础知识7题](#基础知识) * [数据集7题](#数据集2) - * [模型训练调优7题](#模型训练调优2) - * [预测部署9题](#预测部署2) + * [模型训练调优18题](#模型训练调优2) * [【实战篇】PaddleOCR实战87个问题](#PaddleOCR实战问题) - * [使用咨询21题](#使用咨询) + * [使用咨询23题](#使用咨询) * [数据集17题](#数据集3) * [模型训练调优25题](#模型训练调优3) - * [预测部署24题](#预测部署3) + * [预测部署25题](#预测部署3) ## 近期更新(2020.12.14) -#### Q3.1.21:PaddleOCR支持动态图吗? +#### Q2.3.17: StyleText 合成数据效果不好? +**A**: StyleText模型生成的数据主要用于OCR识别模型的训练。PaddleOCR目前识别模型的输入为32*N,因此当前版本模型主要适用高度为32的数据。建议要合成的数据尺寸设置为32*N。尺寸相差不多的数据也可以生成,尺寸很大或很小的数据效果确实不佳。 -**A**:动态图版本正在紧锣密鼓开发中,将于2020年12月16日发布,敬请关注。 +#### Q2.3.18: PaddleOCR develop分支和dygraph分支的区别? +**A**:目前PaddleOCR有四个分支,分别是: +- develop:基于Paddle静态图开发的分支,推荐使用paddle1.8 或者2.0版本,该分支具备完善的模型训练、预测、推理部署、量化裁剪等功能。 +- release/1.1:PaddleOCR 发布的第一个稳定版本,基于静态图开发,具备完善的训练、预测、推理部署、量化裁剪等功能。 +- dygraph:基于Paddle动态图开发的分支,目前仍在开发中,未来将作为主要开发分支,运行要求使用Paddle2.0rc1版本,目前仍在开发中。 +- release/2.0-rc1-0:PaddleOCR发布的第二个稳定版本,基于动态图和paddle2.0版本开发,动态图开发的工程更易于调试,目前支,支持模型训练、预测,暂不支持移动端部署。 -#### Q3.3.23:检测模型训练或预测时出现elementwise_add报错 +如果您已经上手过PaddleOCR,并且希望在各种环境上部署PaddleOCR,目前建议使用静态图分支,develop或者release/1.1分支。如果您是初学者,想快速训练,调试PaddleOCR中的算法,建议尝鲜PaddleOCR dygraph分支。 -**A**:设置的输入尺寸必须是32的倍数,否则在网络多次下采样和上采样后,feature map会产生1个像素的diff,从而导致elementwise_add时报shape不匹配的错误。 +**注意**:develop和dygraph分支要求的Paddle版本、本地环境有差别,请注意不同分支环境安装部分的差异。 -#### Q3.3.24: DB检测训练输入尺寸640,可以改大一些吗? +#### Q3.1.22: ModuleNotFoundError: No module named 'paddle.nn', +**A**: paddle.nn是Paddle2.0版本特有的功能,请安装大于等于Paddle 2.0.0rc1的版本,安装方式为 +``` +python3 -m pip install paddlepaddle-gpu==2.0.0rc1 -i https://mirror.baidu.com/pypi/simple +``` -**A**: 不建议改大。检测模型训练输入尺寸是预处理中random crop后的尺寸,并非直接将原图进行resize,多数场景下这个尺寸并不小了,改大后可能反而并不合适,而且训练会变慢。另外,代码里可能有的地方参数按照预设输入尺寸适配的,改大后可能有隐藏风险。 +#### Q3.1.23: ImportError: /usr/lib/x86_64_linux-gnu/libstdc++.so.6:version `CXXABI_1.3.11` not found (required by /usr/lib/python3.6/site-package/paddle/fluid/core+avx.so) +**A**:这个问题是glibc版本不足导致的,Paddle2.0rc1版本对gcc版本和glib版本有更高的要求,推荐gcc版本为8.2,glibc版本2.12以上。 +如果您的环境不满足这个要求,或者使用的docker镜像为: +`hub.baidubce.com/paddlepaddle/paddle:latest-gpu-cuda9.0-cudnn7-dev` +`hub.baidubce.com/paddlepaddle/paddle:latest-gpu-cuda9.0-cudnn7-dev`,安装Paddle2.0rc版本可能会出现上述错误, +2.0版本推荐使用新的docker镜像 `paddlepaddle/paddle:latest-dev-cuda10.1-cudnn7-gcc82`。 +或者访问[dockerhub](https://hub.docker.com/r/paddlepaddle/paddle/tags/)获得与您机器适配的镜像。 -#### Q3.3.25: 识别模型训练时,loss能正常下降,但acc一直为0 +#### Q3.4.25 : PaddleOCR模型Python端预测和C++预测结果不一致? +**A**:正常来说,python端预测和C++预测文本是一致的,如果预测结果差异较大,建议首先排查diff出现在检测模型还是识别模型,或者尝试换其他模型是否有类似的问题。其次,检查python端和C++端数据处理部分是否存在差异,建议保存环境,更新PaddleOCR代码再试下。如果更新代码或者更新代码都没能解决,建议在PaddleOCR群里或者issue中抛出您的问题。 -**A**: 识别模型训练初期acc为0是正常的,多训一段时间指标就上来了。 - -#### Q3.4.24:DB模型能正确推理预测,但换成EAST或SAST模型时报错或结果不正确 - -**A**:使用EAST或SAST模型进行推理预测时,需要在命令中指定参数--det_algorithm="EAST" 或 --det_algorithm="SAST",使用DB时不用指定是因为该参数默认值是"DB":https://github.com/PaddlePaddle/PaddleOCR/blob/e7a708e9fdaf413ed7a14da8e4a7b4ac0b211e42/tools/infer/utility.py#L43 ## 【精选】OCR精选10个问题 @@ -238,18 +249,15 @@ (2)调大系统的[l2 dcay值](https://github.com/PaddlePaddle/PaddleOCR/blob/a501603d54ff5513fc4fc760319472e59da25424/configs/rec/ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yml#L47) - -### 预测部署 - -#### Q2.4.1:请问对于图片中的密集文字,有什么好的处理办法吗? +#### Q2.3.8:请问对于图片中的密集文字,有什么好的处理办法吗? **A**:可以先试用预训练模型测试一下,例如DB+CRNN,判断下密集文字图片中是检测还是识别的问题,然后针对性的改善。还有一种是如果图象中密集文字较小,可以尝试增大图像分辨率,对图像进行一定范围内的拉伸,将文字稀疏化,提高识别效果。 -#### Q2.4.2:对于一些在识别时稍微模糊的文本,有没有一些图像增强的方式? +#### Q2.3.9:对于一些在识别时稍微模糊的文本,有没有一些图像增强的方式? **A**:在人类肉眼可以识别的前提下,可以考虑图像处理中的均值滤波、中值滤波或者高斯滤波等模糊算子尝试。也可以尝试从数据扩增扰动来强化模型鲁棒性,另外新的思路有对抗性训练和超分SR思路,可以尝试借鉴。但目前业界尚无普遍认可的最优方案,建议优先在数据采集阶段增加一些限制提升图片质量。 -#### Q2.4.3:对于特定文字检测,例如身份证只检测姓名,检测指定区域文字更好,还是检测全部区域再筛选更好? +#### Q2.3.10:对于特定文字检测,例如身份证只检测姓名,检测指定区域文字更好,还是检测全部区域再筛选更好? **A**:两个角度来说明一般检测全部区域再筛选更好。 @@ -257,11 +265,11 @@ (2)产品的需求可能是变化的,不排除后续对于模型需求变化的可能性(比如又需要增加一个字段),相比于训练模型,后处理的逻辑会更容易调整。 -#### Q2.4.4:对于小白如何快速入门中文OCR项目实践? +#### Q2.3.11:对于小白如何快速入门中文OCR项目实践? **A**:建议可以先了解OCR方向的基础知识,大概了解基础的检测和识别模型算法。然后在Github上可以查看OCR方向相关的repo。目前来看,从内容的完备性来看,PaddleOCR的中英文双语教程文档是有明显优势的,在数据集、模型训练、预测部署文档详实,可以快速入手。而且还有微信用户群答疑,非常适合学习实践。项目地址:[PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR) -#### Q2.4.5:如何识别带空格的英文行文本图像? +#### Q2.1.12:如何识别带空格的英文行文本图像? **A**:空格识别可以考虑以下两种方案: @@ -269,22 +277,36 @@ (2)优化文本识别算法。在识别字典里面引入空格字符,然后在识别的训练数据中,如果用空行,进行标注。此外,合成数据时,通过拼接训练数据,生成含有空格的文本。 -#### Q2.4.6:中英文一起识别时也可以加空格字符来训练吗 +#### Q2.3.13:中英文一起识别时也可以加空格字符来训练吗 **A**:中文识别可以加空格当做分隔符训练,具体的效果如何没法给出直接评判,根据实际业务数据训练来判断。 -#### Q2.4.7:低像素文字或者字号比较小的文字有什么超分辨率方法吗 +#### Q2.3.14:低像素文字或者字号比较小的文字有什么超分辨率方法吗 **A**:超分辨率方法分为传统方法和基于深度学习的方法。基于深度学习的方法中,比较经典的有SRCNN,另外CVPR2020也有一篇超分辨率的工作可以参考文章:Unpaired Image Super-Resolution using Pseudo-Supervision,但是没有充分的实践验证过,需要看实际场景下的效果。 -#### Q2.4.8:表格识别有什么好的模型 或者论文推荐么 +#### Q2.3.15:表格识别有什么好的模型 或者论文推荐么 **A**:表格目前学术界比较成熟的解决方案不多 ,可以尝试下分割的论文方案。 -#### Q2.4.9:弯曲文本有试过opencv的TPS进行弯曲校正吗? +#### Q2.3.16:弯曲文本有试过opencv的TPS进行弯曲校正吗? **A**:opencv的tps需要标出上下边界对应的点,这个点很难通过传统方法或者深度学习方法获取。PaddleOCR里StarNet网络中的tps模块实现了自动学点,自动校正,可以直接尝试这个。 +#### Q2.3.17: StyleText 合成数据效果不好? +**A**:StyleText模型生成的数据主要用于OCR识别模型的训练。PaddleOCR目前识别模型的输入为32*N,因此当前版本模型主要适用高度为32的数据。建议要合成的数据尺寸设置为32*N。尺寸相差不多的数据也可以生成,尺寸很大或很小的数据效果确实不佳。 + +#### Q2.3.18: PaddleOCR develop分支和dygraph分支的区别? +**A** 目前PaddleOCR有四个分支,分别是: + +- develop:基于Paddle静态图开发的分支,推荐使用paddle1.8 或者2.0版本,该分支具备完善的模型训练、预测、推理部署、量化裁剪等功能。 +- release/1.1:PaddleOCR 发布的第一个稳定版本,基于静态图开发,具备完善的训练、预测、推理部署、量化裁剪等功能。 +- dygraph:基于Paddle动态图开发的分支,目前仍在开发中,未来将作为主要开发分支,运行要求使用Paddle2.0rc1版本,目前仍在开发中。 +- release/2.0-rc1-0:PaddleOCR发布的第二个稳定版本,基于动态图和paddle2.0版本开发,动态图开发的工程更易于调试,目前支,支持模型训练、预测,暂不支持移动端部署。 + +如果您已经上手过PaddleOCR,并且希望在各种环境上部署PaddleOCR,目前建议使用静态图分支,develop或者release/1.1分支。如果您是初学者,想快速训练,调试PaddleOCR中的算法,建议尝鲜PaddleOCR dygraph分支。 + +**注意**:develop和dygraph分支要求的Paddle版本、本地环境有差别,请注意不同分支环境安装部分的差异。 @@ -392,6 +414,20 @@ **A**:动态图版本正在紧锣密鼓开发中,将于2020年12月16日发布,敬请关注。 +#### Q3.1.22:ModuleNotFoundError: No module named 'paddle.nn', +**A**:paddle.nn是Paddle2.0版本特有的功能,请安装大于等于Paddle 2.0.0rc1的版本,安装方式为 +``` +python3 -m pip install paddlepaddle-gpu==2.0.0rc1 -i https://mirror.baidu.com/pypi/simple +``` + +#### Q3.1.23: ImportError: /usr/lib/x86_64_linux-gnu/libstdc++.so.6:version `CXXABI_1.3.11` not found (required by /usr/lib/python3.6/site-package/paddle/fluid/core+avx.so) +**A**:这个问题是glibc版本不足导致的,Paddle2.0rc1版本对gcc版本和glib版本有更高的要求,推荐gcc版本为8.2,glibc版本2.12以上。 +如果您的环境不满足这个要求,或者使用的docker镜像为: +`hub.baidubce.com/paddlepaddle/paddle:latest-gpu-cuda9.0-cudnn7-dev` +`hub.baidubce.com/paddlepaddle/paddle:latest-gpu-cuda9.0-cudnn7-dev`,安装Paddle2.0rc版本可能会出现上述错误,2.0版本推荐使用新的docker镜像 `paddlepaddle/paddle:latest-dev-cuda10.1-cudnn7-gcc82`。 +或者访问[dockerhub](https://hub.docker.com/r/paddlepaddle/paddle/tags/)获得与您机器适配的镜像。 + + ### 数据集 @@ -594,11 +630,11 @@ ps -axu | grep train.py | awk '{print $2}' | xargs kill -9 #### Q3.3.20: 文字检测时怎么模糊的数据增强? -**A**: 模糊的数据增强需要修改代码进行添加,以DB为例,参考[Normalize](https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/ppocr/data/imaug/operators.py#L60) ,添加模糊的增强就行 +**A**: 模糊的数据增强需要修改代码进行添加,以DB为例,参考[Normalize](https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/ppocr/data/imaug/operators.py#L60) ,添加模糊的增强就行 #### Q3.3.21: 文字检测时怎么更改图片旋转的角度,实现360度任意旋转? -**A**: 将[这里](https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/ppocr/data/imaug/iaa_augment.py#L64) 的(-10,10) 改为(-180,180)即可 +**A**: 将[这里](https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/ppocr/data/imaug/iaa_augment.py#L64) 的(-10,10) 改为(-180,180)即可 #### Q3.3.22: 训练数据的长宽比过大怎么修改shape @@ -728,4 +764,10 @@ ps -axu | grep train.py | awk '{print $2}' | xargs kill -9 #### Q3.4.24:DB模型能正确推理预测,但换成EAST或SAST模型时报错或结果不正确 -**A**:使用EAST或SAST模型进行推理预测时,需要在命令中指定参数--det_algorithm="EAST" 或 --det_algorithm="SAST",使用DB时不用指定是因为该参数默认值是"DB":https://github.com/PaddlePaddle/PaddleOCR/blob/e7a708e9fdaf413ed7a14da8e4a7b4ac0b211e42/tools/infer/utility.py#L43 \ No newline at end of file +**A**:使用EAST或SAST模型进行推理预测时,需要在命令中指定参数--det_algorithm="EAST" 或 --det_algorithm="SAST",使用DB时不用指定是因为该参数默认值是"DB":https://github.com/PaddlePaddle/PaddleOCR/blob/e7a708e9fdaf413ed7a14da8e4a7b4ac0b211e42/tools/infer/utility.py#L43 + +#### Q3.4.25 : PaddleOCR模型Python端预测和C++预测结果不一致? +正常来说,python端预测和C++预测文本是一致的,如果预测结果差异较大, +建议首先排查diff出现在检测模型还是识别模型,或者尝试换其他模型是否有类似的问题。 +其次,检查python端和C++端数据处理部分是否存在差异,建议保存环境,更新PaddleOCR代码再试下。 +如果更新代码或者更新代码都没能解决,建议在PaddleOCR微信群里或者issue中抛出您的问题。 From a8927059c99f07c6c561bb630d7276b7c203a4e5 Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Mon, 21 Dec 2020 11:24:27 +0800 Subject: [PATCH 2/7] * to x --- doc/doc_ch/FAQ.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/doc_ch/FAQ.md b/doc/doc_ch/FAQ.md index 1e8ebf9b..a893677f 100755 --- a/doc/doc_ch/FAQ.md +++ b/doc/doc_ch/FAQ.md @@ -26,7 +26,8 @@ ## 近期更新(2020.12.14) #### Q2.3.17: StyleText 合成数据效果不好? -**A**: StyleText模型生成的数据主要用于OCR识别模型的训练。PaddleOCR目前识别模型的输入为32*N,因此当前版本模型主要适用高度为32的数据。建议要合成的数据尺寸设置为32*N。尺寸相差不多的数据也可以生成,尺寸很大或很小的数据效果确实不佳。 +**A**: StyleText模型生成的数据主要用于OCR识别模型的训练。PaddleOCR目前识别模型的输入为32 x N,因此当前版本模型主要适用高度为32的数据。 +建议要合成的数据尺寸设置为32 x N。尺寸相差不多的数据也可以生成,尺寸很大或很小的数据效果确实不佳。 #### Q2.3.18: PaddleOCR develop分支和dygraph分支的区别? **A**:目前PaddleOCR有四个分支,分别是: From 520670a4e4d1f8500a68a24370831a1109b6be43 Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Mon, 21 Dec 2020 11:26:05 +0800 Subject: [PATCH 3/7] * to x --- doc/doc_ch/FAQ.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/doc_ch/FAQ.md b/doc/doc_ch/FAQ.md index a893677f..182abc8c 100755 --- a/doc/doc_ch/FAQ.md +++ b/doc/doc_ch/FAQ.md @@ -295,7 +295,8 @@ python3 -m pip install paddlepaddle-gpu==2.0.0rc1 -i https://mirror.baidu.com/py **A**:opencv的tps需要标出上下边界对应的点,这个点很难通过传统方法或者深度学习方法获取。PaddleOCR里StarNet网络中的tps模块实现了自动学点,自动校正,可以直接尝试这个。 #### Q2.3.17: StyleText 合成数据效果不好? -**A**:StyleText模型生成的数据主要用于OCR识别模型的训练。PaddleOCR目前识别模型的输入为32*N,因此当前版本模型主要适用高度为32的数据。建议要合成的数据尺寸设置为32*N。尺寸相差不多的数据也可以生成,尺寸很大或很小的数据效果确实不佳。 +**A**:StyleText模型生成的数据主要用于OCR识别模型的训练。PaddleOCR目前识别模型的输入为32 x N,因此当前版本模型主要适用高度为32的数据。 +建议要合成的数据尺寸设置为32 x N。尺寸相差不多的数据也可以生成,尺寸很大或很小的数据效果确实不佳。 #### Q2.3.18: PaddleOCR develop分支和dygraph分支的区别? **A** 目前PaddleOCR有四个分支,分别是: From 037bd74017b35e0aed8d77a6cede1f064b532835 Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Mon, 21 Dec 2020 11:35:46 +0800 Subject: [PATCH 4/7] fix comments --- README_ch.md | 2 +- doc/doc_ch/FAQ.md | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README_ch.md b/README_ch.md index afdd0536..c7ddf0fe 100755 --- a/README_ch.md +++ b/README_ch.md @@ -8,10 +8,10 @@ PaddleOCR同时支持动态图与静态图两种编程范式 - 静态图版本:develop分支 **近期更新** +- 2020.12.21 [FAQ](./doc/doc_ch/FAQ.md)新增5个高频问题,总数132个,每周一都会更新,欢迎大家持续关注。 - 2020.12.15 更新数据合成工具[Style-Text](./StyleText/README_ch.md),可以批量合成大量与目标场景类似的图像,在多个场景验证,效果明显提升。 - 2020.12.14 [FAQ](./doc/doc_ch/FAQ.md)新增5个高频问题,总数127个,每周一都会更新,欢迎大家持续关注。 - 2020.11.25 更新半自动标注工具[PPOCRLabel](./PPOCRLabel/README_ch.md),辅助开发者高效完成标注任务,输出格式与PP-OCR训练任务完美衔接。 -- 2020.9.22 更新PP-OCR技术文章,https://arxiv.org/abs/2009.09941 - [More](./doc/doc_ch/update.md) diff --git a/doc/doc_ch/FAQ.md b/doc/doc_ch/FAQ.md index 182abc8c..5740bd0e 100755 --- a/doc/doc_ch/FAQ.md +++ b/doc/doc_ch/FAQ.md @@ -9,13 +9,13 @@ ## PaddleOCR常见问题汇总(持续更新) -* [近期更新(2020.12.14)](#近期更新) +* [近期更新(2020.12.21)](#近期更新) * [【精选】OCR精选10个问题](#OCR精选10个问题) -* [【理论篇】OCR通用30个问题](#OCR通用问题) +* [【理论篇】OCR通用32个问题](#OCR通用问题) * [基础知识7题](#基础知识) * [数据集7题](#数据集2) * [模型训练调优18题](#模型训练调优2) -* [【实战篇】PaddleOCR实战87个问题](#PaddleOCR实战问题) +* [【实战篇】PaddleOCR实战90个问题](#PaddleOCR实战问题) * [使用咨询23题](#使用咨询) * [数据集17题](#数据集3) * [模型训练调优25题](#模型训练调优3) @@ -23,7 +23,7 @@ -## 近期更新(2020.12.14) +## 近期更新(2020.12.21) #### Q2.3.17: StyleText 合成数据效果不好? **A**: StyleText模型生成的数据主要用于OCR识别模型的训练。PaddleOCR目前识别模型的输入为32 x N,因此当前版本模型主要适用高度为32的数据。 @@ -33,7 +33,7 @@ **A**:目前PaddleOCR有四个分支,分别是: - develop:基于Paddle静态图开发的分支,推荐使用paddle1.8 或者2.0版本,该分支具备完善的模型训练、预测、推理部署、量化裁剪等功能。 - release/1.1:PaddleOCR 发布的第一个稳定版本,基于静态图开发,具备完善的训练、预测、推理部署、量化裁剪等功能。 -- dygraph:基于Paddle动态图开发的分支,目前仍在开发中,未来将作为主要开发分支,运行要求使用Paddle2.0rc1版本,目前仍在开发中。 +- dygraph:基于Paddle动态图开发的分支,未来将作为主要开发分支,运行要求使用Paddle2.0rc1版本,目前仍在开发中。 - release/2.0-rc1-0:PaddleOCR发布的第二个稳定版本,基于动态图和paddle2.0版本开发,动态图开发的工程更易于调试,目前支,支持模型训练、预测,暂不支持移动端部署。 如果您已经上手过PaddleOCR,并且希望在各种环境上部署PaddleOCR,目前建议使用静态图分支,develop或者release/1.1分支。如果您是初学者,想快速训练,调试PaddleOCR中的算法,建议尝鲜PaddleOCR dygraph分支。 @@ -270,7 +270,7 @@ python3 -m pip install paddlepaddle-gpu==2.0.0rc1 -i https://mirror.baidu.com/py **A**:建议可以先了解OCR方向的基础知识,大概了解基础的检测和识别模型算法。然后在Github上可以查看OCR方向相关的repo。目前来看,从内容的完备性来看,PaddleOCR的中英文双语教程文档是有明显优势的,在数据集、模型训练、预测部署文档详实,可以快速入手。而且还有微信用户群答疑,非常适合学习实践。项目地址:[PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR) -#### Q2.1.12:如何识别带空格的英文行文本图像? +#### Q3.12:如何识别带空格的英文行文本图像? **A**:空格识别可以考虑以下两种方案: From b2768e4a552f65c059ab59a755aedf5864e4160d Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Mon, 21 Dec 2020 11:42:15 +0800 Subject: [PATCH 5/7] fix comments --- doc/doc_ch/FAQ.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/doc_ch/FAQ.md b/doc/doc_ch/FAQ.md index 5740bd0e..275d9ac3 100755 --- a/doc/doc_ch/FAQ.md +++ b/doc/doc_ch/FAQ.md @@ -31,7 +31,7 @@ #### Q2.3.18: PaddleOCR develop分支和dygraph分支的区别? **A**:目前PaddleOCR有四个分支,分别是: -- develop:基于Paddle静态图开发的分支,推荐使用paddle1.8 或者2.0版本,该分支具备完善的模型训练、预测、推理部署、量化裁剪等功能。 +- develop:基于Paddle静态图开发的分支,推荐使用paddle1.8 或者2.0版本,该分支具备完善的模型训练、预测、推理部署、量化裁剪等功能,领先于release/1.1分支。 - release/1.1:PaddleOCR 发布的第一个稳定版本,基于静态图开发,具备完善的训练、预测、推理部署、量化裁剪等功能。 - dygraph:基于Paddle动态图开发的分支,未来将作为主要开发分支,运行要求使用Paddle2.0rc1版本,目前仍在开发中。 - release/2.0-rc1-0:PaddleOCR发布的第二个稳定版本,基于动态图和paddle2.0版本开发,动态图开发的工程更易于调试,目前支,支持模型训练、预测,暂不支持移动端部署。 @@ -301,7 +301,7 @@ python3 -m pip install paddlepaddle-gpu==2.0.0rc1 -i https://mirror.baidu.com/py #### Q2.3.18: PaddleOCR develop分支和dygraph分支的区别? **A** 目前PaddleOCR有四个分支,分别是: -- develop:基于Paddle静态图开发的分支,推荐使用paddle1.8 或者2.0版本,该分支具备完善的模型训练、预测、推理部署、量化裁剪等功能。 +- develop:基于Paddle静态图开发的分支,推荐使用paddle1.8 或者2.0版本,该分支具备完善的模型训练、预测、推理部署、量化裁剪等功能,领先于release/1.1分支。 - release/1.1:PaddleOCR 发布的第一个稳定版本,基于静态图开发,具备完善的训练、预测、推理部署、量化裁剪等功能。 - dygraph:基于Paddle动态图开发的分支,目前仍在开发中,未来将作为主要开发分支,运行要求使用Paddle2.0rc1版本,目前仍在开发中。 - release/2.0-rc1-0:PaddleOCR发布的第二个稳定版本,基于动态图和paddle2.0版本开发,动态图开发的工程更易于调试,目前支,支持模型训练、预测,暂不支持移动端部署。 From f0b9aae35333afa96ecd2a332c6d674ce164020d Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Mon, 21 Dec 2020 11:49:20 +0800 Subject: [PATCH 6/7] fix comment --- README_ch.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README_ch.md b/README_ch.md index c7ddf0fe..20407d3b 100755 --- a/README_ch.md +++ b/README_ch.md @@ -10,8 +10,8 @@ PaddleOCR同时支持动态图与静态图两种编程范式 **近期更新** - 2020.12.21 [FAQ](./doc/doc_ch/FAQ.md)新增5个高频问题,总数132个,每周一都会更新,欢迎大家持续关注。 - 2020.12.15 更新数据合成工具[Style-Text](./StyleText/README_ch.md),可以批量合成大量与目标场景类似的图像,在多个场景验证,效果明显提升。 -- 2020.12.14 [FAQ](./doc/doc_ch/FAQ.md)新增5个高频问题,总数127个,每周一都会更新,欢迎大家持续关注。 - 2020.11.25 更新半自动标注工具[PPOCRLabel](./PPOCRLabel/README_ch.md),辅助开发者高效完成标注任务,输出格式与PP-OCR训练任务完美衔接。 +- 2020.9.22 更新PP-OCR技术文章,https://arxiv.org/abs/2009.09941 - [More](./doc/doc_ch/update.md) @@ -101,8 +101,8 @@ PaddleOCR同时支持动态图与静态图两种编程范式 - [效果展示](#效果展示) - FAQ - [【精选】OCR精选10个问题](./doc/doc_ch/FAQ.md) - - [【理论篇】OCR通用30个问题](./doc/doc_ch/FAQ.md) - - [【实战篇】PaddleOCR实战84个问题](./doc/doc_ch/FAQ.md) + - [【理论篇】OCR通用32个问题](./doc/doc_ch/FAQ.md) + - [【实战篇】PaddleOCR实战90个问题](./doc/doc_ch/FAQ.md) - [技术交流群](#欢迎加入PaddleOCR技术交流群) - [参考文献](./doc/doc_ch/reference.md) - [许可证书](#许可证书) From e1d11ae0e3744f907b0cba4bb3733dc82d7efcb7 Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Mon, 21 Dec 2020 15:14:52 +0800 Subject: [PATCH 7/7] 2.3.18 to 3.1.24 --- README_ch.md | 4 ++-- doc/doc_ch/FAQ.md | 57 +++++++++++++++++++++++++---------------------- 2 files changed, 32 insertions(+), 29 deletions(-) diff --git a/README_ch.md b/README_ch.md index 20407d3b..774b074d 100755 --- a/README_ch.md +++ b/README_ch.md @@ -101,8 +101,8 @@ PaddleOCR同时支持动态图与静态图两种编程范式 - [效果展示](#效果展示) - FAQ - [【精选】OCR精选10个问题](./doc/doc_ch/FAQ.md) - - [【理论篇】OCR通用32个问题](./doc/doc_ch/FAQ.md) - - [【实战篇】PaddleOCR实战90个问题](./doc/doc_ch/FAQ.md) + - [【理论篇】OCR通用31个问题](./doc/doc_ch/FAQ.md) + - [【实战篇】PaddleOCR实战91个问题](./doc/doc_ch/FAQ.md) - [技术交流群](#欢迎加入PaddleOCR技术交流群) - [参考文献](./doc/doc_ch/reference.md) - [许可证书](#许可证书) diff --git a/doc/doc_ch/FAQ.md b/doc/doc_ch/FAQ.md index 275d9ac3..288a5492 100755 --- a/doc/doc_ch/FAQ.md +++ b/doc/doc_ch/FAQ.md @@ -11,12 +11,12 @@ * [近期更新(2020.12.21)](#近期更新) * [【精选】OCR精选10个问题](#OCR精选10个问题) -* [【理论篇】OCR通用32个问题](#OCR通用问题) +* [【理论篇】OCR通用31个问题](#OCR通用问题) * [基础知识7题](#基础知识) * [数据集7题](#数据集2) - * [模型训练调优18题](#模型训练调优2) -* [【实战篇】PaddleOCR实战90个问题](#PaddleOCR实战问题) - * [使用咨询23题](#使用咨询) + * [模型训练调优17题](#模型训练调优2) +* [【实战篇】PaddleOCR实战91个问题](#PaddleOCR实战问题) + * [使用咨询24题](#使用咨询) * [数据集17题](#数据集3) * [模型训练调优25题](#模型训练调优3) * [预测部署25题](#预测部署3) @@ -29,17 +29,6 @@ **A**: StyleText模型生成的数据主要用于OCR识别模型的训练。PaddleOCR目前识别模型的输入为32 x N,因此当前版本模型主要适用高度为32的数据。 建议要合成的数据尺寸设置为32 x N。尺寸相差不多的数据也可以生成,尺寸很大或很小的数据效果确实不佳。 -#### Q2.3.18: PaddleOCR develop分支和dygraph分支的区别? -**A**:目前PaddleOCR有四个分支,分别是: -- develop:基于Paddle静态图开发的分支,推荐使用paddle1.8 或者2.0版本,该分支具备完善的模型训练、预测、推理部署、量化裁剪等功能,领先于release/1.1分支。 -- release/1.1:PaddleOCR 发布的第一个稳定版本,基于静态图开发,具备完善的训练、预测、推理部署、量化裁剪等功能。 -- dygraph:基于Paddle动态图开发的分支,未来将作为主要开发分支,运行要求使用Paddle2.0rc1版本,目前仍在开发中。 -- release/2.0-rc1-0:PaddleOCR发布的第二个稳定版本,基于动态图和paddle2.0版本开发,动态图开发的工程更易于调试,目前支,支持模型训练、预测,暂不支持移动端部署。 - -如果您已经上手过PaddleOCR,并且希望在各种环境上部署PaddleOCR,目前建议使用静态图分支,develop或者release/1.1分支。如果您是初学者,想快速训练,调试PaddleOCR中的算法,建议尝鲜PaddleOCR dygraph分支。 - -**注意**:develop和dygraph分支要求的Paddle版本、本地环境有差别,请注意不同分支环境安装部分的差异。 - #### Q3.1.22: ModuleNotFoundError: No module named 'paddle.nn', **A**: paddle.nn是Paddle2.0版本特有的功能,请安装大于等于Paddle 2.0.0rc1的版本,安装方式为 ``` @@ -54,6 +43,18 @@ python3 -m pip install paddlepaddle-gpu==2.0.0rc1 -i https://mirror.baidu.com/py 2.0版本推荐使用新的docker镜像 `paddlepaddle/paddle:latest-dev-cuda10.1-cudnn7-gcc82`。 或者访问[dockerhub](https://hub.docker.com/r/paddlepaddle/paddle/tags/)获得与您机器适配的镜像。 +#### Q3.1.24: PaddleOCR develop分支和dygraph分支的区别? +**A**:目前PaddleOCR有四个分支,分别是: +- develop:基于Paddle静态图开发的分支,推荐使用paddle1.8 或者2.0版本,该分支具备完善的模型训练、预测、推理部署、量化裁剪等功能,领先于release/1.1分支。 +- release/1.1:PaddleOCR 发布的第一个稳定版本,基于静态图开发,具备完善的训练、预测、推理部署、量化裁剪等功能。 +- dygraph:基于Paddle动态图开发的分支,未来将作为主要开发分支,运行要求使用Paddle2.0rc1版本,目前仍在开发中。 +- release/2.0-rc1-0:PaddleOCR发布的第二个稳定版本,基于动态图和paddle2.0版本开发,动态图开发的工程更易于调试,目前支,支持模型训练、预测,暂不支持移动端部署。 + +如果您已经上手过PaddleOCR,并且希望在各种环境上部署PaddleOCR,目前建议使用静态图分支,develop或者release/1.1分支。如果您是初学者,想快速训练,调试PaddleOCR中的算法,建议尝鲜PaddleOCR dygraph分支。 + +**注意**:develop和dygraph分支要求的Paddle版本、本地环境有差别,请注意不同分支环境安装部分的差异。 + + #### Q3.4.25 : PaddleOCR模型Python端预测和C++预测结果不一致? **A**:正常来说,python端预测和C++预测文本是一致的,如果预测结果差异较大,建议首先排查diff出现在检测模型还是识别模型,或者尝试换其他模型是否有类似的问题。其次,检查python端和C++端数据处理部分是否存在差异,建议保存环境,更新PaddleOCR代码再试下。如果更新代码或者更新代码都没能解决,建议在PaddleOCR群里或者issue中抛出您的问题。 @@ -298,18 +299,6 @@ python3 -m pip install paddlepaddle-gpu==2.0.0rc1 -i https://mirror.baidu.com/py **A**:StyleText模型生成的数据主要用于OCR识别模型的训练。PaddleOCR目前识别模型的输入为32 x N,因此当前版本模型主要适用高度为32的数据。 建议要合成的数据尺寸设置为32 x N。尺寸相差不多的数据也可以生成,尺寸很大或很小的数据效果确实不佳。 -#### Q2.3.18: PaddleOCR develop分支和dygraph分支的区别? -**A** 目前PaddleOCR有四个分支,分别是: - -- develop:基于Paddle静态图开发的分支,推荐使用paddle1.8 或者2.0版本,该分支具备完善的模型训练、预测、推理部署、量化裁剪等功能,领先于release/1.1分支。 -- release/1.1:PaddleOCR 发布的第一个稳定版本,基于静态图开发,具备完善的训练、预测、推理部署、量化裁剪等功能。 -- dygraph:基于Paddle动态图开发的分支,目前仍在开发中,未来将作为主要开发分支,运行要求使用Paddle2.0rc1版本,目前仍在开发中。 -- release/2.0-rc1-0:PaddleOCR发布的第二个稳定版本,基于动态图和paddle2.0版本开发,动态图开发的工程更易于调试,目前支,支持模型训练、预测,暂不支持移动端部署。 - -如果您已经上手过PaddleOCR,并且希望在各种环境上部署PaddleOCR,目前建议使用静态图分支,develop或者release/1.1分支。如果您是初学者,想快速训练,调试PaddleOCR中的算法,建议尝鲜PaddleOCR dygraph分支。 - -**注意**:develop和dygraph分支要求的Paddle版本、本地环境有差别,请注意不同分支环境安装部分的差异。 - ## 【实战篇】PaddleOCR实战问题 @@ -430,6 +419,20 @@ python3 -m pip install paddlepaddle-gpu==2.0.0rc1 -i https://mirror.baidu.com/py 或者访问[dockerhub](https://hub.docker.com/r/paddlepaddle/paddle/tags/)获得与您机器适配的镜像。 +#### Q3.1.24: PaddleOCR develop分支和dygraph分支的区别? +**A** 目前PaddleOCR有四个分支,分别是: + +- develop:基于Paddle静态图开发的分支,推荐使用paddle1.8 或者2.0版本,该分支具备完善的模型训练、预测、推理部署、量化裁剪等功能,领先于release/1.1分支。 +- release/1.1:PaddleOCR 发布的第一个稳定版本,基于静态图开发,具备完善的训练、预测、推理部署、量化裁剪等功能。 +- dygraph:基于Paddle动态图开发的分支,目前仍在开发中,未来将作为主要开发分支,运行要求使用Paddle2.0rc1版本,目前仍在开发中。 +- release/2.0-rc1-0:PaddleOCR发布的第二个稳定版本,基于动态图和paddle2.0版本开发,动态图开发的工程更易于调试,目前支,支持模型训练、预测,暂不支持移动端部署。 + +如果您已经上手过PaddleOCR,并且希望在各种环境上部署PaddleOCR,目前建议使用静态图分支,develop或者release/1.1分支。如果您是初学者,想快速训练,调试PaddleOCR中的算法,建议尝鲜PaddleOCR dygraph分支。 + +**注意**:develop和dygraph分支要求的Paddle版本、本地环境有差别,请注意不同分支环境安装部分的差异。 + + + ### 数据集