Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleOCR
提交
087022a1
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看板
提交
087022a1
编写于
1月 06, 2022
作者:
文幕地方
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update whl to 2.4
上级
91b02d35
变更
7
显示空白变更内容
内联
并排
Showing
7 changed file
with
64 addition
and
38 deletion
+64
-38
doc/doc_ch/algorithm_overview.md
doc/doc_ch/algorithm_overview.md
+2
-2
doc/doc_en/algorithm_overview_en.md
doc/doc_en/algorithm_overview_en.md
+2
-2
paddleocr.py
paddleocr.py
+1
-1
ppstructure/README_ch.md
ppstructure/README_ch.md
+46
-14
ppstructure/predict_system.py
ppstructure/predict_system.py
+1
-1
ppstructure/vqa/README.md
ppstructure/vqa/README.md
+10
-17
ppstructure/vqa/requirements.txt
ppstructure/vqa/requirements.txt
+2
-1
未找到文件。
doc/doc_ch/algorithm_overview.md
浏览文件 @
087022a1
...
...
@@ -25,8 +25,8 @@ PaddleOCR开源的文本检测算法列表:
在ICDAR2015文本检测公开数据集上,算法效果如下:
|模型|骨干网络|precision|recall|Hmean|下载链接|
| --- | --- | --- | --- | --- | --- |
|EAST|ResNet50_vd|8
5.80%|86.71%|86.25
%|
[
训练模型
](
https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_r50_vd_east_v2.0_train.tar
)
|
|EAST|MobileNetV3|7
9.42%|80.64%|80.03
%|
[
训练模型
](
https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_mv3_east_v2.0_train.tar
)
|
|EAST|ResNet50_vd|8
8.71%|81.36%|84.88
%|
[
训练模型
](
https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_r50_vd_east_v2.0_train.tar
)
|
|EAST|MobileNetV3|7
8.2%|79.1%|78.65
%|
[
训练模型
](
https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_mv3_east_v2.0_train.tar
)
|
|DB|ResNet50_vd|86.41%|78.72%|82.38%|
[
训练模型
](
https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_r50_vd_db_v2.0_train.tar
)
|
|DB|MobileNetV3|77.29%|73.08%|75.12%|
[
训练模型
](
https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_mv3_db_v2.0_train.tar
)
|
|SAST|ResNet50_vd|91.39%|83.77%|87.42%|
[
训练模型
](
https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_r50_vd_sast_icdar15_v2.0_train.tar
)
|
...
...
doc/doc_en/algorithm_overview_en.md
浏览文件 @
087022a1
...
...
@@ -30,8 +30,8 @@ On the ICDAR2015 dataset, the text detection result is as follows:
|Model|Backbone|Precision|Recall|Hmean|Download link|
| --- | --- | --- | --- | --- | --- |
|EAST|ResNet50_vd|8
5.80%|86.71%|86.25
%|
[
trained model
](
https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_r50_vd_east_v2.0_train.tar
)
|
|EAST|MobileNetV3|7
9.42%|80.64%|80.03
%|
[
trained model
](
https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_mv3_east_v2.0_train.tar
)
|
|EAST|ResNet50_vd|8
8.71%|81.36%|84.88
%|
[
trained model
](
https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_r50_vd_east_v2.0_train.tar
)
|
|EAST|MobileNetV3|7
8.2%|79.1%|78.65
%|
[
trained model
](
https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_mv3_east_v2.0_train.tar
)
|
|DB|ResNet50_vd|86.41%|78.72%|82.38%|
[
trained model
](
https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_r50_vd_db_v2.0_train.tar
)
|
|DB|MobileNetV3|77.29%|73.08%|75.12%|
[
trained model
](
https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_mv3_db_v2.0_train.tar
)
|
|SAST|ResNet50_vd|91.39%|83.77%|87.42%|
[
trained model
](
https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_r50_vd_sast_icdar15_v2.0_train.tar
)
|
...
...
paddleocr.py
浏览文件 @
087022a1
...
...
@@ -42,7 +42,7 @@ __all__ = [
]
SUPPORT_DET_MODEL
=
[
'DB'
]
VERSION
=
'2.
3.0.2
'
VERSION
=
'2.
4
'
SUPPORT_REC_MODEL
=
[
'CRNN'
]
BASE_DIR
=
os
.
path
.
expanduser
(
"~/.paddleocr/"
)
...
...
ppstructure/README_ch.md
浏览文件 @
087022a1
[
English
](
README.md
)
| 简体中文
## 简介
-
[
1. 简介
](
#1
)
-
[
2. 近期更新
](
#2
)
-
[
3. 特性
](
#3
)
-
[
4. 效果展示
](
#4
)
*
[
4.1 版面分析和表格识别
](
#41
)
*
[
4.2 VQA
](
#42
)
-
[
5. 快速体验
](
#5
)
-
[
6. PP-Structure 介绍
](
#6
)
*
[
6.1 版面分析+表格识别
](
#61
)
*
[
6.2 VQA
](
#62
)
-
[
7. 模型库
](
#7
)
<a
name=
"1"
></a>
## 1. 简介
PP-Structure是一个可用于复杂文档结构分析和处理的OCR工具包,旨在帮助开发者更好的完成文档理解相关任务。
## 近期更新
<a
name=
"2"
></a>
## 2. 近期更新
*
2021.12.07 新增VQA任务-SER和RE。
## 特性
<a
name=
"3"
></a>
## 3. 特性
PP-Structure是一个可用于复杂文档结构分析和处理的OCR工具包,主要特性如下:
-
支持对图片形式的文档进行版面分析,可以划分
**文字、标题、表格、图片以及列表**
5类区域(与Layout-Parser联合使用)
...
...
@@ -17,13 +35,17 @@ PP-Structure是一个可用于复杂文档结构分析和处理的OCR工具包
-
支持文档视觉问答(Document Visual Question Answering,DOC-VQA)任务-语义实体识别(Semantic Entity Recognition,SER)和关系抽取(Relation Extraction,RE)
## 1. 效果展示
<a
name=
"4"
></a>
## 4. 效果展示
<a
name=
"41"
></a>
###
1
.1 版面分析和表格识别
###
4
.1 版面分析和表格识别
<img
src=
"../doc/table/ppstructure.GIF"
width=
"100%"
/>
###
1
.2 VQA
###
4
.2 VQA
*
SER
...
...
@@ -46,32 +68,42 @@ PP-Structure是一个可用于复杂文档结构分析和处理的OCR工具包
图中红色框表示问题,蓝色框表示答案,问题和答案之间使用绿色线连接。在OCR检测框的左上方也标出了对应的类别和OCR识别结果。
## 2. 快速体验
<a
name=
"5"
></a>
## 5. 快速体验
代码体验:从
[
快速安装
](
./docs/quickstart.md
)
开始
## 3. PP-Structure Pipeline介绍
<a
name=
"6"
></a>
## 6. PP-Structure 介绍
### 3.1 版面分析+表格识别
PP-Structure 内置
<a
name=
"61"
></a>
### 6.1 版面分析+表格识别
![
pipeline
](
../doc/table/pipeline.jpg
)
在PP-Structure中,图片会先经由Layout-Parser进行版面分析,在版面分析中,会对图片里的区域进行分类,包括
**文字、标题、图片、列表和表格**
5类。对于前4类区域,直接使用PP-OCR完成对应区域文字检测与识别。对于表格类区域,经过表格结构化处理后,表格图片转换为相同表格样式的Excel文件。
####
3
.1.1 版面分析
####
6
.1.1 版面分析
版面分析对文档数据进行区域分类,其中包括版面分析工具的Python脚本使用、提取指定类别检测框、性能指标以及自定义训练版面分析模型,详细内容可以参考
[
文档
](
layout/README_ch.md
)
。
####
3
.1.2 表格识别
####
6
.1.2 表格识别
表格识别将表格图片转换为excel文档,其中包含对于表格文本的检测和识别以及对于表格结构和单元格坐标的预测,详细说明参考
[
文档
](
table/README_ch.md
)
<a
name=
"62"
></a>
### 6.2 VQA
### 3.2 VQA
VQA指文档视觉问答,其中包括语义实体识别 (Semantic Entity Recognition, SER) 和关系抽取 (Relation Extraction, RE) 任务。基于 SER 任务,可以完成对图像中的文本识别与分类;基于 RE 任务,可以完成对图象中的文本内容的关系提取,如判断问题对(pair),详细说明参考
[
文档
](
vqa/README.md
)
coming soon
<a
name=
"7"
></a>
##
4
. 模型库
##
7
. 模型库
PP-Structure系列模型列表(更新中)
...
...
ppstructure/predict_system.py
浏览文件 @
087022a1
...
...
@@ -30,7 +30,6 @@ from ppocr.utils.utility import get_image_file_list, check_and_read_gif
from
ppocr.utils.logging
import
get_logger
from
tools.infer.predict_system
import
TextSystem
from
ppstructure.table.predict_table
import
TableSystem
,
to_excel
from
ppstructure.vqa.infer_ser_e2e
import
SerPredictor
,
draw_ser_results
from
ppstructure.utility
import
parse_args
,
draw_structure_result
logger
=
get_logger
()
...
...
@@ -66,6 +65,7 @@ class OCRSystem(object):
self
.
use_angle_cls
=
args
.
use_angle_cls
self
.
drop_score
=
args
.
drop_score
elif
self
.
mode
==
'vqa'
:
from
ppstructure.vqa.infer_ser_e2e
import
SerPredictor
,
draw_ser_results
self
.
vqa_engine
=
SerPredictor
(
args
)
def
__call__
(
self
,
img
):
...
...
ppstructure/vqa/README.md
浏览文件 @
087022a1
...
...
@@ -62,7 +62,7 @@ PP-Structure 里的 DOC-VQA算法基于PaddleNLP自然语言处理算法库进
-
**(1) 安装PaddlePaddle**
```
bash
p
ip3
install
--upgrade
pip
p
ython3
-m
pip
install
--upgrade
pip
# GPU安装
python3
-m
pip
install
paddlepaddle-gpu
==
2.2
-i
https://mirror.baidu.com/pypi/simple
...
...
@@ -79,7 +79,7 @@ python3 -m pip install paddlepaddle==2.2 -i https://mirror.baidu.com/pypi/simple
-
**(1)pip快速安装PaddleOCR whl包(仅预测)**
```
bash
pip
install
paddleocr
p
ython3
-m
p
ip
install
paddleocr
```
-
**(2)下载VQA源码(预测+训练)**
...
...
@@ -88,23 +88,16 @@ pip install paddleocr
【推荐】git clone https://github.com/PaddlePaddle/PaddleOCR
# 如果因为网络问题无法pull成功,也可选择使用码云上的托管:
git
clone https://gitee.com/paddlepaddle/PaddleOCR
python3
-m
pip
clone https://gitee.com/paddlepaddle/PaddleOCR
# 注:码云托管代码可能无法实时同步本github项目更新,存在3~5天延时,请优先使用推荐方式。
```
-
**(3)安装PaddleNLP**
```
bash
pip3
install
"paddlenlp>=2.2.1"
```
-
**(4)安装VQA的`requirements`**
```
bash
cd
ppstructure/vqa
pip
install
-r
requirements.txt
p
ython3
-m
p
ip
install
-r
requirements.txt
```
## 4. 使用
...
...
@@ -131,7 +124,7 @@ wget https://paddleocr.bj.bcebos.com/dataset/XFUND.tar
*
启动训练
```
shell
python3
.7
train_ser.py
\
python3 train_ser.py
\
--model_name_or_path
"layoutxlm-base-uncased"
\
--ser_model_type
"LayoutXLM"
\
--train_data_dir
"XFUND/zh_train/image"
\
...
...
@@ -152,7 +145,7 @@ python3.7 train_ser.py \
*
恢复训练
```
shell
python3
.7
train_ser.py
\
python3 train_ser.py
\
--model_name_or_path
"model_path"
\
--ser_model_type
"LayoutXLM"
\
--train_data_dir
"XFUND/zh_train/image"
\
...
...
@@ -189,7 +182,7 @@ python3 eval_ser.py \
```
shell
export
CUDA_VISIBLE_DEVICES
=
0
python3
.7
infer_ser.py
\
python3 infer_ser.py
\
--model_name_or_path
"PP-Layout_v1.0_ser_pretrained/"
\
--ser_model_type
"LayoutXLM"
\
--output_dir
"output/ser/"
\
...
...
@@ -203,7 +196,7 @@ python3.7 infer_ser.py \
```
shell
export
CUDA_VISIBLE_DEVICES
=
0
python3
.7
infer_ser_e2e.py
\
python3 infer_ser_e2e.py
\
--model_name_or_path
"PP-Layout_v1.0_ser_pretrained/"
\
--ser_model_type
"LayoutXLM"
\
--max_seq_length
512
\
...
...
@@ -215,7 +208,7 @@ python3.7 infer_ser_e2e.py \
```
shell
export
CUDA_VISIBLE_DEVICES
=
0
python3
.7
helper/eval_with_label_end2end.py
--gt_json_path
XFUND/zh_val/xfun_normalize_val.json
--pred_json_path
output_res/infer_results.txt
python3 helper/eval_with_label_end2end.py
--gt_json_path
XFUND/zh_val/xfun_normalize_val.json
--pred_json_path
output_res/infer_results.txt
```
...
...
@@ -310,7 +303,7 @@ python3 infer_re.py \
```
shell
export
CUDA_VISIBLE_DEVICES
=
0
python3
.7
infer_ser_re_e2e.py
\
python3 infer_ser_re_e2e.py
\
--model_name_or_path
"PP-Layout_v1.0_ser_pretrained/"
\
--re_model_name_or_path
"PP-Layout_v1.0_re_pretrained/"
\
--ser_model_type
"LayoutXLM"
\
...
...
ppstructure/vqa/requirements.txt
浏览文件 @
087022a1
sentencepiece
yacs
seqeval
paddlenlp>=2.2.1
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录