Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
weixin_41840029
PaddleOCR
提交
b544a561
P
PaddleOCR
项目概览
weixin_41840029
/
PaddleOCR
与 Fork 源项目一致
Fork自
PaddlePaddle / PaddleOCR
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleOCR
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
b544a561
编写于
2月 01, 2021
作者:
W
WenmuZhou
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update faq
上级
b9e0a998
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
41 addition
and
18 deletion
+41
-18
README_ch.md
README_ch.md
+1
-1
doc/doc_ch/FAQ.md
doc/doc_ch/FAQ.md
+40
-17
未找到文件。
README_ch.md
浏览文件 @
b544a561
...
...
@@ -8,7 +8,7 @@ PaddleOCR同时支持动态图与静态图两种编程范式
-
静态图版本:develop分支
**近期更新**
-
2021.
1.18
[
FAQ
](
./doc/doc_ch/FAQ.md
)
新增5个高频问题,总数152
个,每周一都会更新,欢迎大家持续关注。
-
2021.
2.1
[
FAQ
](
./doc/doc_ch/FAQ.md
)
新增5个高频问题,总数157
个,每周一都会更新,欢迎大家持续关注。
-
2020.12.15 更新数据合成工具
[
Style-Text
](
./StyleText/README_ch.md
)
,可以批量合成大量与目标场景类似的图像,在多个场景验证,效果明显提升。
-
2020.11.25 更新半自动标注工具
[
PPOCRLabel
](
./PPOCRLabel/README_ch.md
)
,辅助开发者高效完成标注任务,输出格式与PP-OCR训练任务完美衔接。
-
2020.9.22 更新PP-OCR技术文章,https://arxiv.org/abs/2009.09941
...
...
doc/doc_ch/FAQ.md
浏览文件 @
b544a561
...
...
@@ -9,42 +9,41 @@
## PaddleOCR常见问题汇总(持续更新)
*
[
近期更新(2021.
1.18
)
](
#近期更新
)
*
[
近期更新(2021.
2.1
)
](
#近期更新
)
*
[
【精选】OCR精选10个问题
](
#OCR精选10个问题
)
*
[
【理论篇】OCR通用32个问题
](
#OCR通用问题
)
*
[
基础知识7题
](
#基础知识
)
*
[
数据集7题
](
#数据集2
)
*
[
模型训练调优18题
](
#模型训练调优2
)
*
[
【实战篇】PaddleOCR实战11
0
个问题
](
#PaddleOCR实战问题
)
*
[
【实战篇】PaddleOCR实战11
5
个问题
](
#PaddleOCR实战问题
)
*
[
使用咨询36题
](
#使用咨询
)
*
[
数据集1
7
题
](
#数据集3
)
*
[
模型训练调优
28
题
](
#模型训练调优3
)
*
[
预测部署
29
题
](
#预测部署3
)
*
[
数据集1
8
题
](
#数据集3
)
*
[
模型训练调优
30
题
](
#模型训练调优3
)
*
[
预测部署
31
题
](
#预测部署3
)
<a
name=
"近期更新"
></a>
## 近期更新(2021.1.18)
#### Q3.2.18: PaddleOCR动态图版本如何finetune?
#### Q2.3.18: 在PP-OCR系统中,文本检测的骨干网络为什么没有使用SE模块?
**A**
:finetune需要将配置文件里的 Global.load_static_weights设置为false,如果没有此字段可以手动添加,然后将模型地址放到Global.pretrained_model字段下即可
**A**
:SE模块是MobileNetV3网络一个重要模块,目的是估计特征图每个特征通道重要性,给特征图每个特征分配权重,提高网络的表达能力。但是,对于文本检测,输入网络的分辨率比较大,一般是640
\*
640,利用SE模块估计特征图每个特征通道重要性比较困难,网络提升能力有限,但是该模块又比较耗时,因此在PP-OCR系统中,文本检测的骨干网络没有使用SE模块。实验也表明,当去掉SE模块,超轻量模型大小可以减小40%,文本检测效果基本不受影响。详细可以参考PP-OCR技术文章,https://arxiv.org/abs/2009.09941.
#### Q3.3.29: 微调v1.1预训练的模型,可以直接用文字垂直排列和上下颠倒的图片吗?还是必须要水平排列的?
#### Q3.3.27: PaddleOCR关于文本识别模型的训练,支持的数据增强方式有哪些?
**A**
:1.1和2.0的模型一样,微调时,垂直排列的文字需要逆时针旋转90%后加入训练,上下颠倒的需要旋转为水平的。
**A**
:文本识别支持的数据增强方式有随机小幅度裁剪、图像平衡、添加白噪声、颜色漂移、图像反色和Text Image Augmentation(TIA)变换等。可以参考
[
代码
](
../../ppocr/data/imaug/rec_img_aug.py
)
中的warp函数。
#### Q3.3.30: 模型训练过程中如何得到 best_accuracy 模型?
#### Q3.3.28: 关于dygraph分支中,文本识别模型训练,要使用数据增强应该如何设置?
**A**
:配置文件里的eval_batch_step字段用来控制多少次iter进行一次eval,在eval完成后会自动生成 best_accuracy 模型,所以将eval_batch_step改小一点(例如,10))就能得到best_accuracy模型了。
**A**
:可以参考
[
配置文件
](
../../configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml
)
在Train
[
'dataset'
][
'transforms'
]
添加RecAug字段,使数据增强生效。可以通过添加对aug_prob设置,表示每种数据增强采用的概率。aug_prob默认是0.4.由于tia数据增强特殊性,默认不采用,可以通过添加use_tia设置,使tia数据增强生效。详细设置可以参考
[
ISSUE 1744
](
https://github.com/PaddlePaddle/PaddleOCR/issues/1744
)
。
#### Q3.4.30: 如何多进程运行paddleocr?
#### Q3.4.28: PP-OCR系统中,文本检测的结果有置信度吗?
**A**
:实例化多个paddleocr服务,然后将服务注册到注册中心,之后通过注册中心统一调度即可。
**A**
:文本检测的结果有置信度,由于推理过程中没有使用,所以没有显示的返回到最终结果中。如果需要文本检测结果的置信度,可以在
[
文本检测DB的后处理代码
](
../../ppocr/postprocess/db_postprocess.py
)
的155行,添加scores信息。这样,在
[
检测预测代码
](
../../tools/infer/predict_det.py
)
的197行,就可以拿到文本检测的scores信息。
#### Q3.4.29: DB文本检测,特征提取网络金字塔构建的部分代码在哪儿?
#### Q3.4.31: 2.0训练出来的模型,能否在1.1版本上进行部署?
**A**
:
特征提取网络金字塔构建的部分:
[
代码位置
](
../../ppocr/modeling/necks/db_fpn.py
)
。ppocr/modeling文件夹里面是组网相关的代码,其中architectures是文本检测或者文本识别整体流程代码;backbones是骨干网络相关代码;necks是类似与FPN的颈函数代码;heads是提取文本检测或者文本识别预测结果相关的头函数;transforms是类似于TPS特征预处理模块。更多的信息可以参考
[
代码组织结构
](
./tree.md
)
。
**A**
:
这个是不建议的,2.0训练出来的模型建议使用dygraph分支里提供的部署代码
。
<a
name=
"OCR精选10个问题"
></a>
## 【精选】OCR精选10个问题
...
...
@@ -415,7 +414,7 @@ python3 -m pip install paddlepaddle-gpu==2.0.0rc1 -i https://mirror.baidu.com/py
-
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
版本开发,动态图开发的工程更易于调试,目前支,支持模型训练、预测,暂不支持移动端部署。
-
release/2.0
:PaddleOCR发布的第二个稳定版本,基于动态图和paddle2.0rc1
版本开发,动态图开发的工程更易于调试,目前支,支持模型训练、预测,暂不支持移动端部署。
如果您已经上手过PaddleOCR,并且希望在各种环境上部署PaddleOCR,目前建议使用静态图分支,develop或者release/1.1分支。如果您是初学者,想快速训练,调试PaddleOCR中的算法,建议尝鲜PaddleOCR dygraph分支。
...
...
@@ -568,6 +567,12 @@ StyleText的用途主要是:提取style_image中的字体、背景等style信
**A**
:PPOCRLabel可运行于Linux、Windows、MacOS等多种系统。操作步骤可以参考文档,https://github.com/PaddlePaddle/PaddleOCR/blob/develop/PPOCRLabel/README.md
#### Q3.2.18: PaddleOCR动态图版本如何finetune?
**A**
:finetune需要将配置文件里的 Global.load_static_weights设置为false,如果没有此字段可以手动添加,然后将模型地址放到Global.pretrained_model字段下即可
<a
name=
"模型训练调优3"
></a>
### 模型训练调优
...
...
@@ -713,6 +718,15 @@ ps -axu | grep train.py | awk '{print $2}' | xargs kill -9
**A**
:可以参考
[
配置文件
](
../../configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml
)
在Train
[
'dataset'
][
'transforms'
]
添加RecAug字段,使数据增强生效。可以通过添加对aug_prob设置,表示每种数据增强采用的概率。aug_prob默认是0.4.由于tia数据增强特殊性,默认不采用,可以通过添加use_tia设置,使tia数据增强生效。详细设置可以参考
[
ISSUE 1744
](
https://github.com/PaddlePaddle/PaddleOCR/issues/1744
)
。
#### Q3.3.29: 微调v1.1预训练的模型,可以直接用文字垂直排列和上下颠倒的图片吗?还是必须要水平排列的?
**A**
:1.1和2.0的模型一样,微调时,垂直排列的文字需要逆时针旋转90%后加入训练,上下颠倒的需要旋转为水平的。
#### Q3.3.30: 模型训练过程中如何得到 best_accuracy 模型?
**A**
:配置文件里的eval_batch_step字段用来控制多少次iter进行一次eval,在eval完成后会自动生成 best_accuracy 模型,所以将eval_batch_step改小一点(例如,10))就能得到best_accuracy模型了。
<a
name=
"预测部署3"
></a>
### 预测部署
...
...
@@ -854,3 +868,12 @@ img = cv.imdecode(img_array, -1)
#### Q3.4.29: DB文本检测,特征提取网络金字塔构建的部分代码在哪儿?
**A**
:特征提取网络金字塔构建的部分:
[
代码位置
](
../../ppocr/modeling/necks/db_fpn.py
)
。ppocr/modeling文件夹里面是组网相关的代码,其中architectures是文本检测或者文本识别整体流程代码;backbones是骨干网络相关代码;necks是类似与FPN的颈函数代码;heads是提取文本检测或者文本识别预测结果相关的头函数;transforms是类似于TPS特征预处理模块。更多的信息可以参考
[
代码组织结构
](
./tree.md
)
。
#### Q3.4.30: 如何多进程运行paddleocr?
**A**
:实例化多个paddleocr服务,然后将服务注册到注册中心,之后通过注册中心统一调度即可。
#### Q3.4.31: 2.0训练出来的模型,能否在1.1版本上进行部署?
**A**
:这个是不建议的,2.0训练出来的模型建议使用dygraph分支里提供的部署代码。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录