From 7731fab9a01069200e24e7c5be70ddb4b87fe817 Mon Sep 17 00:00:00 2001 From: dyning Date: Sun, 29 Nov 2020 12:39:56 +0000 Subject: [PATCH] updata faq --- README_ch.md | 6 ++-- doc/doc_ch/FAQ.md | 74 ++++++++++++++++++++++++++++++----------------- 2 files changed, 50 insertions(+), 30 deletions(-) diff --git a/README_ch.md b/README_ch.md index 6806ab66..36478e62 100644 --- a/README_ch.md +++ b/README_ch.md @@ -4,8 +4,8 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力使用者训练出更好的模型,并应用落地。 **近期更新** +- 2020.11.30 [FAQ](./doc/doc_ch/FAQ.md)新增5个高频问题,共计119个常见问题及解答,并且计划以后每周一都会更新,欢迎大家持续关注。 - 2020.11.25 更新半自动标注工具[PPOCRLabel](./PPOCRLabel/README.md),辅助开发者高效完成标注任务,输出格式与PP-OCR训练任务完美衔接。 -- 2020.11.16 [FAQ](./doc/doc_ch/FAQ.md)新增5个高频问题,共计109个常见问题及解答,并且计划以后每周一都会更新,欢迎大家持续关注。 - 2020.9.22 更新PP-OCR技术文章,https://arxiv.org/abs/2009.09941 - 2020.9.19 更新超轻量压缩ppocr_mobile_slim系列模型,整体模型3.5M(详见[PP-OCR Pipeline](#PP-OCR)),适合在移动端部署使用。[模型下载](#模型下载) - 2020.9.17 更新超轻量ppocr_mobile系列和通用ppocr_server系列中英文ocr模型,媲美商业效果。[模型下载](#模型下载) @@ -100,8 +100,8 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力 - [效果展示](#效果展示) - FAQ - [【精选】OCR精选10个问题](./doc/doc_ch/FAQ.md) - - [【理论篇】OCR通用27个问题](./doc/doc_ch/FAQ.md) - - [【实战篇】PaddleOCR实战72个问题](./doc/doc_ch/FAQ.md) + - [【理论篇】OCR通用29个问题](./doc/doc_ch/FAQ.md) + - [【实战篇】PaddleOCR实战80个问题](./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 682ee64d..8453a58a 100644 --- a/doc/doc_ch/FAQ.md +++ b/doc/doc_ch/FAQ.md @@ -9,47 +9,42 @@ ## PaddleOCR常见问题汇总(持续更新) -* [近期更新(2020.11.16)](#近期更新) +* [近期更新(2020.11.30)](#近期更新) * [【精选】OCR精选10个问题](#OCR精选10个问题) -* [【理论篇】OCR通用27个问题](#OCR通用问题) +* [【理论篇】OCR通用29个问题](#OCR通用问题) * [基础知识7题](#基础知识) - * [数据集5题](#数据集) - * [模型训练调优7题](#模型训练调优) - * [预测部署8题](#预测部署) -* [【实战篇】PaddleOCR实战72个问题](#PaddleOCR实战问题) + * [数据集7题](#数据集2) + * [模型训练调优7题](#模型训练调优2) + * [预测部署8题](#预测部署2) +* [【实战篇】PaddleOCR实战80个问题](#PaddleOCR实战问题) * [使用咨询20题](#使用咨询) - * [数据集14题](#数据集) - * [模型训练调优21题](#模型训练调优) - * [预测部署21题](#预测部署) + * [数据集17题](#数据集3) + * [模型训练调优21题](#模型训练调优3) + * [预测部署22题](#预测部署3) -## 近期更新(2020.11.23) +## 近期更新(2020.11.30) -#### Q3.2.11:有哪些标注工具可以标注OCR数据集? +#### Q3.2.15: 文本标注工具PPOCRLabel有什么特色? -**A**:您可以参考:https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_en/data_annotation_en.md。 -我们计划推出高效标注OCR数据的标注工具,请您持续关注PaddleOCR的近期更新。 +**A**: PPOCRLabel是一个半自动文本标注工具,它使用基于PPOCR的中英文OCR模型,预先预测文本检测和识别结果,然后用户对上述结果进行校验和修正就行,大大提高用户的标注效率。同时导出的标注结果直接适配PPOCR训练所需要的数据格式, -#### Q3.2.12:一些特殊场景的数据识别效果差,但是数据量很少,不够用来finetune怎么办? +#### Q3.2.16: 文本标注工具PPOCRLabel,可以更换模型吗? -**A**:您可以合成一些接近使用场景的数据用于训练。 -我们计划推出基于特定场景的文本数据合成工具,请您持续关注PaddleOCR的近期更新。 +**A**: PPOCRLabel中OCR部署方式采用的基于pip安装whl包快速推理,可以参考相关文档更换模型路径,进行特定任务的标注适配。基于pip安装whl包快速推理的文档如下,https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_ch/whl.md。 -#### Q3.2.13:特殊字符(例如一些标点符号)识别效果不好怎么办? +#### Q3.2.17: 文本标注工具PPOCRLabel支持的运行环境有哪些? -**A**:首先请您确认要识别的特殊字符是否在字典中。 -如果字符在已经字典中但效果依然不好,可能是由于识别数据较少导致的,您可以增加相应数据finetune模型。 +**A**: PPOCRLabel可运行于Linux、Windows、MacOS等多种系统。操作步骤可以参考文档,https://github.com/PaddlePaddle/PaddleOCR/blob/develop/PPOCRLabel/README.md -#### Q3.2.14:PaddleOCR可以识别灰度图吗? +#### Q2.2.6: 当训练数据量少时,如何获取更多的数据? -**A**:PaddleOCR的模型均为三通道输入。如果您想使用灰度图作为输入,建议直接用3通道的模式读入灰度图, -或者将单通道图像转换为三通道图像再识别。例如,opencv的cvtColor函数就可以将灰度图转换为RGB三通道模式。 +**A**: 当训练数据量少时,可以尝试以下三种方式获取更多的数据:(1)人工采集更多的训练数据,最直接也是最有效的方式。(2)基于PIL和opencv基本图像处理或者变换。例如PIL中ImageFont, Image, ImageDraw三个模块将文字写到背景中,opencv的旋转仿射变换,高斯滤波等。(3)利用数据生成算法合成数据,例如pix2pix等算法。 -#### Q3.1.20:PaddleOCR与百度的其他OCR产品有什么区别? +#### Q2.2.7: 论文《Editing Text in the Wild》中文本合成方法SRNet有什么特点? -**A**:PaddleOCR主要聚焦通用ocr,如果有垂类需求,您可以用PaddleOCR+垂类数据自己训练; -如果缺少带标注的数据,或者不想投入研发成本,建议直接调用开放的API,开放的API覆盖了目前比较常见的一些垂类。 +**A**: SRNet是借鉴GAN中图像到图像转换、风格迁移的想法合成文本数据。不同于通用GAN的方法只选择一个分支,SRNet将文本合成任务分解为三个简单的子模块,提升合成数据的效果。这三个子模块为不带背景的文本风格迁移模块、背景抽取模块和融合模块。PaddleOCR计划将在2020年12月中旬开源基于SRNet的实用模型。 @@ -141,6 +136,8 @@ ## 【理论篇】OCR通用问题 + + ### 基础知识 #### Q2.1.1:CRNN能否识别两行的文字?还是说必须一行? @@ -169,6 +166,7 @@ **A**:处理字符的时候,把多字符的当作一个字就行,字典中每行是一个字。 + ### 数据集 #### Q2.2.1:支持空格的模型,标注数据的时候是不是要标注空格?中间几个空格都要标注出来么? @@ -191,7 +189,15 @@ **A**:使用基于分割的方法,如DB,检测密集文本行时,最好收集一批数据进行训练,并且在训练时,并将生成二值图像的shrink_ratio参数调小一些。 +#### Q2.2.6: 当训练数据量少时,如何获取更多的数据? + +**A**: 当训练数据量少时,可以尝试以下三种方式获取更多的数据:(1)人工采集更多的训练数据,最直接也是最有效的方式。(2)基于PIL和opencv基本图像处理或者变换。例如PIL中ImageFont, Image, ImageDraw三个模块将文字写到背景中,opencv的旋转仿射变换,高斯滤波等。(3)利用数据生成算法合成数据,例如pix2pix等算法。 +#### Q2.2.7: 论文《Editing Text in the Wild》中文本合成方法SRNet有什么特点? + +**A**: SRNet是借鉴GAN中图像到图像转换、风格迁移的想法合成文本数据。不同于通用GAN的方法只选择一个分支,SRNet将文本合成任务分解为三个简单的子模块,提升合成数据的效果。这三个子模块为不带背景的文本风格迁移模块、背景抽取模块和融合模块。PaddleOCR计划将在2020年12月中旬开源基于SRNet的实用模型。 + + ### 模型训练调优 #### Q2.3.1:如何更换文本检测/识别的backbone? @@ -233,6 +239,7 @@ (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:请问对于图片中的密集文字,有什么好的处理办法吗? @@ -280,6 +287,7 @@ ## 【实战篇】PaddleOCR实战问题 + ### 使用咨询 #### Q3.1.1:OSError: [WinError 126] 找不到指定的模块。mac pro python 3.4 shapely import 问题 @@ -377,7 +385,7 @@ **A**:PaddleOCR主要聚焦通用ocr,如果有垂类需求,您可以用PaddleOCR+垂类数据自己训练; 如果缺少带标注的数据,或者不想投入研发成本,建议直接调用开放的API,开放的API覆盖了目前比较常见的一些垂类。 - + ### 数据集 #### Q3.2.1:如何制作PaddleOCR支持的数据格式 @@ -456,7 +464,19 @@ **A**:PaddleOCR的模型均为三通道输入。如果您想使用灰度图作为输入,建议直接用3通道的模式读入灰度图, 或者将单通道图像转换为三通道图像再识别。例如,opencv的cvtColor函数就可以将灰度图转换为RGB三通道模式。 +#### Q3.2.15: 文本标注工具PPOCRLabel有什么特色? +**A**: PPOCRLabel是一个半自动文本标注工具,它使用基于PPOCR的中英文OCR模型,预先预测文本检测和识别结果,然后用户对上述结果进行校验和修正就行,大大提高用户的标注效率。同时导出的标注结果直接适配PPOCR训练所需要的数据格式, + +#### Q3.2.16: 文本标注工具PPOCRLabel,可以更换模型吗? + +**A**: PPOCRLabel中OCR部署方式采用的基于pip安装whl包快速推理,可以参考相关文档更换模型路径,进行特定任务的标注适配。基于pip安装whl包快速推理的文档如下,https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_ch/whl.md。 + +#### Q3.2.17: 文本标注工具PPOCRLabel支持的运行环境有哪些? + +**A**: PPOCRLabel可运行于Linux、Windows、MacOS等多种系统。操作步骤可以参考文档,https://github.com/PaddlePaddle/PaddleOCR/blob/develop/PPOCRLabel/README.md + + ### 模型训练调优 #### Q3.3.1:文本长度超过25,应该怎么处理? @@ -574,7 +594,7 @@ return paddle.reader.multiprocess_reader(readers, False, queue_size=320) (3)在训练的时候,文本长度超过25的训练图像都会被丢弃,因此需要看下真正参与训练的图像有多少,太少的话也容易过拟合。 - + ### 预测部署 #### Q3.4.1:如何pip安装opt模型转换工具? -- GitLab