Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleOCR
提交
e50a35e5
P
PaddleOCR
项目概览
PaddlePaddle
/
PaddleOCR
大约 1 年 前同步成功
通知
1528
Star
32962
Fork
6643
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
108
列表
看板
标记
里程碑
合并请求
7
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleOCR
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
108
Issue
108
列表
看板
标记
里程碑
合并请求
7
合并请求
7
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
e50a35e5
编写于
7月 12, 2020
作者:
D
dyning
提交者:
GitHub
7月 12, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'develop' into fixocr
上级
a9a6274a
f2a2f595
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
45 addition
and
25 deletion
+45
-25
README.md
README.md
+27
-25
configs/rec/rec_icdar15_train.yml
configs/rec/rec_icdar15_train.yml
+1
-0
doc/doc_ch/FAQ.md
doc/doc_ch/FAQ.md
+1
-0
tools/infer/predict_system.py
tools/infer/predict_system.py
+4
-0
tools/program.py
tools/program.py
+3
-0
tools/train.py
tools/train.py
+9
-0
未找到文件。
README.md
浏览文件 @
e50a35e5
...
@@ -16,7 +16,7 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力
...
@@ -16,7 +16,7 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力
-
单模型支持中英文数字组合识别、竖排文本识别、长文本识别
-
单模型支持中英文数字组合识别、竖排文本识别、长文本识别
-
检测模型DB(4.1M)+识别模型CRNN(4.5M)
-
检测模型DB(4.1M)+识别模型CRNN(4.5M)
-
实用通用中文OCR模型
-
实用通用中文OCR模型
-
多种预测推理部署方案,包括服务部署和端
测
部署
-
多种预测推理部署方案,包括服务部署和端
侧
部署
-
多种文本检测训练算法,EAST、DB
-
多种文本检测训练算法,EAST、DB
-
多种文本识别训练算法,Rosetta、CRNN、STAR-Net、RARE
-
多种文本识别训练算法,Rosetta、CRNN、STAR-Net、RARE
-
可运行于Linux、Windows、MacOS等多种系统
-
可运行于Linux、Windows、MacOS等多种系统
...
@@ -29,7 +29,7 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力
...
@@ -29,7 +29,7 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力
-
超轻量级中文OCR在线体验地址:https://www.paddlepaddle.org.cn/hub/scene/ocr
-
超轻量级中文OCR在线体验地址:https://www.paddlepaddle.org.cn/hub/scene/ocr
-
[
中文OCR模型快速使用
](
./doc/doc_ch/quickstart.md
)
-
[
**中文OCR模型快速使用**
](
./doc/doc_ch/quickstart.md
)
## 中文OCR模型列表
## 中文OCR模型列表
...
@@ -38,6 +38,31 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力
...
@@ -38,6 +38,31 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力
|chinese_db_crnn_mobile|超轻量级中文OCR模型|
[
inference模型
](
https://paddleocr.bj.bcebos.com/ch_models/ch_det_mv3_db_infer.tar
)
/
[
预训练模型
](
https://paddleocr.bj.bcebos.com/ch_models/ch_det_mv3_db.tar
)
|
[
inference模型
](
https://paddleocr.bj.bcebos.com/ch_models/ch_rec_mv3_crnn_infer.tar
)
/
[
预训练模型
](
https://paddleocr.bj.bcebos.com/ch_models/ch_rec_mv3_crnn.tar
)
|
[
inference模型
](
https://paddleocr.bj.bcebos.com/ch_models/ch_rec_mv3_crnn_enhance_infer.tar
)
/
[
预训练模型
](
https://paddleocr.bj.bcebos.com/ch_models/ch_rec_mv3_crnn_enhance.tar
)
|chinese_db_crnn_mobile|超轻量级中文OCR模型|
[
inference模型
](
https://paddleocr.bj.bcebos.com/ch_models/ch_det_mv3_db_infer.tar
)
/
[
预训练模型
](
https://paddleocr.bj.bcebos.com/ch_models/ch_det_mv3_db.tar
)
|
[
inference模型
](
https://paddleocr.bj.bcebos.com/ch_models/ch_rec_mv3_crnn_infer.tar
)
/
[
预训练模型
](
https://paddleocr.bj.bcebos.com/ch_models/ch_rec_mv3_crnn.tar
)
|
[
inference模型
](
https://paddleocr.bj.bcebos.com/ch_models/ch_rec_mv3_crnn_enhance_infer.tar
)
/
[
预训练模型
](
https://paddleocr.bj.bcebos.com/ch_models/ch_rec_mv3_crnn_enhance.tar
)
|chinese_db_crnn_server|通用中文OCR模型|
[
inference模型
](
https://paddleocr.bj.bcebos.com/ch_models/ch_det_r50_vd_db_infer.tar
)
/
[
预训练模型
](
https://paddleocr.bj.bcebos.com/ch_models/ch_det_r50_vd_db.tar
)
|
[
inference模型
](
https://paddleocr.bj.bcebos.com/ch_models/ch_rec_r34_vd_crnn_infer.tar
)
/
[
预训练模型
](
https://paddleocr.bj.bcebos.com/ch_models/ch_rec_r34_vd_crnn.tar
)
|
[
inference模型
](
https://paddleocr.bj.bcebos.com/ch_models/ch_rec_r34_vd_crnn_enhance_infer.tar
)
/
[
预训练模型
](
https://paddleocr.bj.bcebos.com/ch_models/ch_rec_r34_vd_crnn_enhance.tar
)
|chinese_db_crnn_server|通用中文OCR模型|
[
inference模型
](
https://paddleocr.bj.bcebos.com/ch_models/ch_det_r50_vd_db_infer.tar
)
/
[
预训练模型
](
https://paddleocr.bj.bcebos.com/ch_models/ch_det_r50_vd_db.tar
)
|
[
inference模型
](
https://paddleocr.bj.bcebos.com/ch_models/ch_rec_r34_vd_crnn_infer.tar
)
/
[
预训练模型
](
https://paddleocr.bj.bcebos.com/ch_models/ch_rec_r34_vd_crnn.tar
)
|
[
inference模型
](
https://paddleocr.bj.bcebos.com/ch_models/ch_rec_r34_vd_crnn_enhance_infer.tar
)
/
[
预训练模型
](
https://paddleocr.bj.bcebos.com/ch_models/ch_rec_r34_vd_crnn_enhance.tar
)
## 文档教程
-
[
快速安装
](
./doc/doc_ch/installation.md
)
-
[
中文OCR模型快速使用
](
./doc/doc_ch/quickstart.md
)
-
[
算法介绍
](
#算法介绍
)
-
模型训练/评估
-
[
文本检测
](
./doc/doc_ch/detection.md
)
-
[
文本识别
](
./doc/doc_ch/recognition.md
)
-
[
yml参数配置文件介绍
](
./doc/doc_ch/config.md
)
-
预测部署
-
[
基于Python预测引擎推理
](
./doc/doc_ch/inference.md
)
-
基于C++预测引擎推理(comming soon)
-
[
服务部署
](
./doc/doc_ch/serving.md
)
-
[
端侧部署
](
./deploy/lite/readme.md
)
-
[
数据集
](
./doc/doc_ch/datasets.md
)
-
[
FAQ
](
#FAQ
)
-
效果展示
-
[
超轻量级中文OCR效果展示
](
#超轻量级中文OCR效果展示
)
-
[
通用中文OCR效果展示
](
#通用中文OCR效果展示
)
-
[
支持空格的中文OCR效果展示
](
#支持空格的中文OCR效果展示
)
-
[
技术交流群
](
#欢迎加入PaddleOCR技术交流群
)
-
[
参考文献
](
./doc/doc_ch/reference.md
)
-
[
许可证书
](
#许可证书
)
-
[
贡献代码
](
#贡献代码
)
<a
name=
"算法介绍"
></a>
## 算法介绍
## 算法介绍
### 1.文本检测算法
### 1.文本检测算法
...
@@ -98,29 +123,6 @@ PaddleOCR文本识别算法的训练和使用请参考文档教程中[模型训
...
@@ -98,29 +123,6 @@ PaddleOCR文本识别算法的训练和使用请参考文档教程中[模型训
### 3.端到端OCR算法
### 3.端到端OCR算法
-
[
] [End2End-PSL
](
https://arxiv.org/abs/1909.07808
)(
百度自研,
comming soon)
-
[
] [End2End-PSL
](
https://arxiv.org/abs/1909.07808
)(
百度自研,
comming soon)
## 文档教程
-
[
快速安装
](
./doc/doc_ch/installation.md
)
-
[
中文OCR模型快速使用
](
./doc/doc_ch/quickstart.md
)
-
模型训练/评估
-
[
文本检测
](
./doc/doc_ch/detection.md
)
-
[
文本识别
](
./doc/doc_ch/recognition.md
)
-
[
yml参数配置文件介绍
](
./doc/doc_ch/config.md
)
-
预测部署
-
[
基于Python预测引擎推理
](
./doc/doc_ch/inference.md
)
-
基于C++预测引擎推理(comming soon)
-
[
服务部署
](
./doc/doc_ch/serving.md
)
-
[
端侧部署
](
./deploy/lite/readme.md
)
-
[
数据集
](
./doc/doc_ch/datasets.md
)
-
[
FAQ
](
#FAQ
)
-
效果展示
-
[
超轻量级中文OCR效果展示
](
#超轻量级中文OCR效果展示
)
-
[
通用中文OCR效果展示
](
#通用中文OCR效果展示
)
-
[
支持空格的中文OCR效果展示
](
#支持空格的中文OCR效果展示
)
-
[
技术交流群
](
#欢迎加入PaddleOCR技术交流群
)
-
[
参考文献
](
./doc/doc_ch/reference.md
)
-
[
许可证书
](
#许可证书
)
-
[
贡献代码
](
#贡献代码
)
## 效果展示
## 效果展示
<a
name=
"超轻量级中文OCR效果展示"
></a>
<a
name=
"超轻量级中文OCR效果展示"
></a>
...
...
configs/rec/rec_icdar15_train.yml
浏览文件 @
e50a35e5
...
@@ -14,6 +14,7 @@ Global:
...
@@ -14,6 +14,7 @@ Global:
character_type
:
en
character_type
:
en
loss_type
:
ctc
loss_type
:
ctc
distort
:
true
distort
:
true
debug
:
false
reader_yml
:
./configs/rec/rec_icdar15_reader.yml
reader_yml
:
./configs/rec/rec_icdar15_reader.yml
pretrain_weights
:
./pretrain_models/rec_mv3_none_bilstm_ctc/best_accuracy
pretrain_weights
:
./pretrain_models/rec_mv3_none_bilstm_ctc/best_accuracy
checkpoints
:
checkpoints
:
...
...
doc/doc_ch/FAQ.md
浏览文件 @
e50a35e5
...
@@ -48,3 +48,4 @@ PaddleOCR已完成Windows和Mac系统适配,运行时注意两点:1、在[
...
@@ -48,3 +48,4 @@ PaddleOCR已完成Windows和Mac系统适配,运行时注意两点:1、在[
11.
**自定义字典训练的模型,识别结果出现字典里没出现的字**
11.
**自定义字典训练的模型,识别结果出现字典里没出现的字**
预测时没有设置采用的自定义字典路径。设置方法是在预测时,通过增加输入参数rec_char_dict_path来设置。
预测时没有设置采用的自定义字典路径。设置方法是在预测时,通过增加输入参数rec_char_dict_path来设置。
tools/infer/predict_system.py
浏览文件 @
e50a35e5
...
@@ -117,12 +117,16 @@ def main(args):
...
@@ -117,12 +117,16 @@ def main(args):
image_file_list
=
get_image_file_list
(
args
.
image_dir
)
image_file_list
=
get_image_file_list
(
args
.
image_dir
)
text_sys
=
TextSystem
(
args
)
text_sys
=
TextSystem
(
args
)
is_visualize
=
True
is_visualize
=
True
tackle_img_num
=
0
for
image_file
in
image_file_list
:
for
image_file
in
image_file_list
:
img
=
cv2
.
imread
(
image_file
)
img
=
cv2
.
imread
(
image_file
)
if
img
is
None
:
if
img
is
None
:
logger
.
info
(
"error in loading image:{}"
.
format
(
image_file
))
logger
.
info
(
"error in loading image:{}"
.
format
(
image_file
))
continue
continue
starttime
=
time
.
time
()
starttime
=
time
.
time
()
tackle_img_num
+=
1
if
not
args
.
use_gpu
and
tackle_img_num
%
30
==
0
:
text_sys
=
TextSystem
(
args
)
dt_boxes
,
rec_res
=
text_sys
(
img
)
dt_boxes
,
rec_res
=
text_sys
(
img
)
elapse
=
time
.
time
()
-
starttime
elapse
=
time
.
time
()
-
starttime
print
(
"Predict time of %s: %.3fs"
%
(
image_file
,
elapse
))
print
(
"Predict time of %s: %.3fs"
%
(
image_file
,
elapse
))
...
...
tools/program.py
浏览文件 @
e50a35e5
...
@@ -75,6 +75,8 @@ class AttrDict(dict):
...
@@ -75,6 +75,8 @@ class AttrDict(dict):
global_config
=
AttrDict
()
global_config
=
AttrDict
()
default_config
=
{
'Global'
:
{
'debug'
:
False
,
}}
def
load_config
(
file_path
):
def
load_config
(
file_path
):
"""
"""
...
@@ -85,6 +87,7 @@ def load_config(file_path):
...
@@ -85,6 +87,7 @@ def load_config(file_path):
Returns: global config
Returns: global config
"""
"""
merge_config
(
default_config
)
_
,
ext
=
os
.
path
.
splitext
(
file_path
)
_
,
ext
=
os
.
path
.
splitext
(
file_path
)
assert
ext
in
[
'.yml'
,
'.yaml'
],
"only support yaml files for now"
assert
ext
in
[
'.yml'
,
'.yaml'
],
"only support yaml files for now"
merge_config
(
yaml
.
load
(
open
(
file_path
),
Loader
=
yaml
.
Loader
))
merge_config
(
yaml
.
load
(
open
(
file_path
),
Loader
=
yaml
.
Loader
))
...
...
tools/train.py
浏览文件 @
e50a35e5
...
@@ -43,6 +43,7 @@ logger = initial_logger()
...
@@ -43,6 +43,7 @@ logger = initial_logger()
from
ppocr.data.reader_main
import
reader_main
from
ppocr.data.reader_main
import
reader_main
from
ppocr.utils.save_load
import
init_model
from
ppocr.utils.save_load
import
init_model
from
ppocr.utils.character
import
CharacterOps
from
ppocr.utils.character
import
CharacterOps
from
paddle.fluid.contrib.model_stat
import
summary
def
main
():
def
main
():
...
@@ -87,6 +88,14 @@ def main():
...
@@ -87,6 +88,14 @@ def main():
# compile program for multi-devices
# compile program for multi-devices
train_compile_program
=
program
.
create_multi_devices_program
(
train_compile_program
=
program
.
create_multi_devices_program
(
train_program
,
train_opt_loss_name
)
train_program
,
train_opt_loss_name
)
# dump mode structure
if
config
[
'Global'
][
'debug'
]:
if
'Attention'
in
config
[
'Head'
].
keys
():
logger
.
warning
(
'Does not suport dump attention...'
)
else
:
summary
(
train_program
)
init_model
(
config
,
train_program
,
exe
)
init_model
(
config
,
train_program
,
exe
)
train_info_dict
=
{
'compile_program'
:
train_compile_program
,
\
train_info_dict
=
{
'compile_program'
:
train_compile_program
,
\
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录