Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
wangsen
paddle_dbnet
Commits
da8991ef
Unverified
Commit
da8991ef
authored
Apr 28, 2022
by
MissPenguin
Committed by
GitHub
Apr 28, 2022
Browse files
Merge pull request #6064 from WenmuZhou/doc
add dataset
parents
2b6c887a
d55e9065
Changes
37
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
488 additions
and
228 deletions
+488
-228
README.md
README.md
+5
-5
README_ch.md
README_ch.md
+12
-12
doc/datasets/table_PubTabNet_demo/PMC524509_007_00.png
doc/datasets/table_PubTabNet_demo/PMC524509_007_00.png
+0
-0
doc/datasets/table_PubTabNet_demo/PMC535543_007_01.png
doc/datasets/table_PubTabNet_demo/PMC535543_007_01.png
+0
-0
doc/datasets/table_tal_demo/1.jpg
doc/datasets/table_tal_demo/1.jpg
+0
-0
doc/datasets/table_tal_demo/2.jpg
doc/datasets/table_tal_demo/2.jpg
+0
-0
doc/doc_ch/algorithm_det_fcenet.md
doc/doc_ch/algorithm_det_fcenet.md
+104
-0
doc/doc_ch/algorithm_det_psenet.md
doc/doc_ch/algorithm_det_psenet.md
+106
-0
doc/doc_ch/dataset/datasets.md
doc/doc_ch/dataset/datasets.md
+11
-11
doc/doc_ch/dataset/docvqa_datasets.md
doc/doc_ch/dataset/docvqa_datasets.md
+0
-0
doc/doc_ch/dataset/handwritten_datasets.md
doc/doc_ch/dataset/handwritten_datasets.md
+2
-2
doc/doc_ch/dataset/layout_datasets.md
doc/doc_ch/dataset/layout_datasets.md
+0
-0
doc/doc_ch/dataset/ocr_datasets.md
doc/doc_ch/dataset/ocr_datasets.md
+164
-0
doc/doc_ch/dataset/table_datasets.md
doc/doc_ch/dataset/table_datasets.md
+33
-0
doc/doc_ch/dataset/vertical_and_multilingual_datasets.md
doc/doc_ch/dataset/vertical_and_multilingual_datasets.md
+3
-3
doc/doc_ch/detection.md
doc/doc_ch/detection.md
+23
-67
doc/doc_ch/recognition.md
doc/doc_ch/recognition.md
+16
-118
doc/doc_ch/table_datasets.md
doc/doc_ch/table_datasets.md
+0
-0
doc/doc_ch/training.md
doc/doc_ch/training.md
+8
-9
doc/doc_ch/update.md
doc/doc_ch/update.md
+1
-1
No files found.
README.md
View file @
da8991ef
...
@@ -101,7 +101,7 @@ PaddleOCR support a variety of cutting-edge algorithms related to OCR, and devel
...
@@ -101,7 +101,7 @@ PaddleOCR support a variety of cutting-edge algorithms related to OCR, and devel
-
[
PP-Structure 🔥
](
./ppstructure/README.md
)
-
[
PP-Structure 🔥
](
./ppstructure/README.md
)
-
[
Quick Start
](
./ppstructure/docs/quickstart_en.md
)
-
[
Quick Start
](
./ppstructure/docs/quickstart_en.md
)
-
[
Model Zoo
](
./ppstructure/docs/models_list_en.md
)
-
[
Model Zoo
](
./ppstructure/docs/models_list_en.md
)
-
[
Model training
](
./doc/doc_en/training_en.md
)
-
[
Model training
](
./doc/doc_en/training_en.md
)
-
[
Layout Parser
](
./ppstructure/layout/README.md
)
-
[
Layout Parser
](
./ppstructure/layout/README.md
)
-
[
Table Recognition
](
./ppstructure/table/README.md
)
-
[
Table Recognition
](
./ppstructure/table/README.md
)
-
[
DocVQA
](
./ppstructure/vqa/README.md
)
-
[
DocVQA
](
./ppstructure/vqa/README.md
)
...
@@ -121,9 +121,9 @@ PaddleOCR support a variety of cutting-edge algorithms related to OCR, and devel
...
@@ -121,9 +121,9 @@ PaddleOCR support a variety of cutting-edge algorithms related to OCR, and devel
-
[
Other Data Annotation Tools
](
./doc/doc_en/data_annotation_en.md
)
-
[
Other Data Annotation Tools
](
./doc/doc_en/data_annotation_en.md
)
-
[
Other Data Synthesis Tools
](
./doc/doc_en/data_synthesis_en.md
)
-
[
Other Data Synthesis Tools
](
./doc/doc_en/data_synthesis_en.md
)
-
Datasets
-
Datasets
-
[
General OCR Datasets(Chinese/English)
](
./
doc/doc_en/datasets_en.md
)
-
[
General OCR Datasets(Chinese/English)
](
doc/doc_en/
dataset/
datasets_en.md
)
-
[
HandWritten_OCR_Datasets(Chinese)
](
./
doc/doc_en/handwritten_datasets_en.md
)
-
[
HandWritten_OCR_Datasets(Chinese)
](
doc/doc_en/
dataset/
handwritten_datasets_en.md
)
-
[
Various OCR Datasets(multilingual)
](
./
doc/doc_en/vertical_and_multilingual_datasets_en.md
)
-
[
Various OCR Datasets(multilingual)
](
doc/doc_en/
dataset/
vertical_and_multilingual_datasets_en.md
)
-
[
Code Structure
](
./doc/doc_en/tree_en.md
)
-
[
Code Structure
](
./doc/doc_en/tree_en.md
)
-
[
Visualization
](
#Visualization
)
-
[
Visualization
](
#Visualization
)
-
[
Community
](
#Community
)
-
[
Community
](
#Community
)
...
@@ -170,4 +170,4 @@ More details, please refer to [Multilingual OCR Development Plan](https://github
...
@@ -170,4 +170,4 @@ More details, please refer to [Multilingual OCR Development Plan](https://github
<a
name=
"LICENSE"
></a>
<a
name=
"LICENSE"
></a>
## License
## License
This project is released under
<a
href=
"https://github.com/PaddlePaddle/PaddleOCR/blob/master/LICENSE"
>
Apache 2.0 license
</a>
This project is released under
<a
href=
"https://github.com/PaddlePaddle/PaddleOCR/blob/master/LICENSE"
>
Apache 2.0 license
</a>
\ No newline at end of file
README_ch.md
View file @
da8991ef
...
@@ -128,12 +128,12 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力
...
@@ -128,12 +128,12 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力
-
[
其它数据标注工具
](
./doc/doc_ch/data_annotation.md
)
-
[
其它数据标注工具
](
./doc/doc_ch/data_annotation.md
)
-
[
其它数据合成工具
](
./doc/doc_ch/data_synthesis.md
)
-
[
其它数据合成工具
](
./doc/doc_ch/data_synthesis.md
)
-
数据集
-
数据集
-
[
通用中英文OCR数据集
](
./
doc/doc_ch/datasets.md
)
-
[
通用中英文OCR数据集
](
doc/doc_ch/
dataset/
datasets.md
)
-
[
手写中文OCR数据集
](
./
doc/doc_ch/handwritten_datasets.md
)
-
[
手写中文OCR数据集
](
doc/doc_ch/
dataset/
handwritten_datasets.md
)
-
[
垂类多语言OCR数据集
](
./
doc/doc_ch/vertical_and_multilingual_datasets.md
)
-
[
垂类多语言OCR数据集
](
doc/doc_ch/
dataset/
vertical_and_multilingual_datasets.md
)
-
[
版面分析数据集
](
./
doc/doc_ch/layout_datasets.md
)
-
[
版面分析数据集
](
doc/doc_ch/
dataset/
layout_datasets.md
)
-
[
表格识别数据集
](
./
doc/doc_ch/table_datasets.md
)
-
[
表格识别数据集
](
doc/doc_ch/
dataset/
table_datasets.md
)
-
[
DocVQA数据集
](
./
doc/doc_ch/docvqa_datasets.md
)
-
[
DocVQA数据集
](
doc/doc_ch/
dataset/
docvqa_datasets.md
)
-
[
代码组织结构
](
./doc/doc_ch/tree.md
)
-
[
代码组织结构
](
./doc/doc_ch/tree.md
)
-
[
效果展示
](
#效果展示
)
-
[
效果展示
](
#效果展示
)
-
[
《动手学OCR》电子书📚
](
./doc/doc_ch/ocr_book.md
)
-
[
《动手学OCR》电子书📚
](
./doc/doc_ch/ocr_book.md
)
...
@@ -160,13 +160,13 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力
...
@@ -160,13 +160,13 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力
<img
src=
"./doc/imgs_results/ch_ppocr_mobile_v2.0/00056221.jpg"
width=
"800"
>
<img
src=
"./doc/imgs_results/ch_ppocr_mobile_v2.0/00056221.jpg"
width=
"800"
>
<img
src=
"./doc/imgs_results/ch_ppocr_mobile_v2.0/rotate_00052204.jpg"
width=
"800"
>
<img
src=
"./doc/imgs_results/ch_ppocr_mobile_v2.0/rotate_00052204.jpg"
width=
"800"
>
</div>
</div>
</details>
</details>
<details
open
>
<details
open
>
<summary>
PP-OCRv2 英文模型
</summary>
<summary>
PP-OCRv2 英文模型
</summary>
<div
align=
"center"
>
<div
align=
"center"
>
<img
src=
"./doc/imgs_results/ch_ppocr_mobile_v2.0/img_12.jpg"
width=
"800"
>
<img
src=
"./doc/imgs_results/ch_ppocr_mobile_v2.0/img_12.jpg"
width=
"800"
>
</div>
</div>
...
@@ -176,12 +176,12 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力
...
@@ -176,12 +176,12 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力
<details
open
>
<details
open
>
<summary>
PP-OCRv2 其他语言模型
</summary>
<summary>
PP-OCRv2 其他语言模型
</summary>
<div
align=
"center"
>
<div
align=
"center"
>
<img
src=
"./doc/imgs_results/french_0.jpg"
width=
"800"
>
<img
src=
"./doc/imgs_results/french_0.jpg"
width=
"800"
>
<img
src=
"./doc/imgs_results/korean.jpg"
width=
"800"
>
<img
src=
"./doc/imgs_results/korean.jpg"
width=
"800"
>
</div>
</div>
</details>
</details>
<details
open
>
<details
open
>
...
@@ -196,8 +196,8 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力
...
@@ -196,8 +196,8 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力
<div
align=
"center"
>
<div
align=
"center"
>
<img
src=
"./ppstructure/docs/vqa/result_ser/zh_val_0_ser.jpg"
width=
"800"
>
<img
src=
"./ppstructure/docs/vqa/result_ser/zh_val_0_ser.jpg"
width=
"800"
>
</div>
</div>
-
RE(关系提取)
-
RE(关系提取)
<div
align=
"center"
>
<div
align=
"center"
>
<img
src=
"./ppstructure/docs/vqa/result_re/zh_val_21_re.jpg"
width=
"800"
>
<img
src=
"./ppstructure/docs/vqa/result_re/zh_val_21_re.jpg"
width=
"800"
>
</div>
</div>
...
...
doc/datasets/table_PubTabNet_demo/PMC524509_007_00.png
0 → 100755
View file @
da8991ef
9.14 KB
doc/datasets/table_PubTabNet_demo/PMC535543_007_01.png
0 → 100755
View file @
da8991ef
27.5 KB
doc/datasets/table_tal_demo/1.jpg
0 → 100644
View file @
da8991ef
233 KB
doc/datasets/table_tal_demo/2.jpg
0 → 100644
View file @
da8991ef
233 KB
doc/doc_ch/algorithm_det_fcenet.md
0 → 100644
View file @
da8991ef
# FCENet
-
[
1. 算法简介
](
#1
)
-
[
2. 环境配置
](
#2
)
-
[
3. 模型训练、评估、预测
](
#3
)
-
[
3.1 训练
](
#3-1
)
-
[
3.2 评估
](
#3-2
)
-
[
3.3 预测
](
#3-3
)
-
[
4. 推理部署
](
#4
)
-
[
4.1 Python推理
](
#4-1
)
-
[
4.2 C++推理
](
#4-2
)
-
[
4.3 Serving服务化部署
](
#4-3
)
-
[
4.4 更多推理部署
](
#4-4
)
-
[
5. FAQ
](
#5
)
<a
name=
"1"
></a>
## 1. 算法简介
论文信息:
> [Fourier Contour Embedding for Arbitrary-Shaped Text Detection](https://arxiv.org/abs/2104.10442)
> Yiqin Zhu and Jianyong Chen and Lingyu Liang and Zhanghui Kuang and Lianwen Jin and Wayne Zhang
> CVPR, 2021
在CTW1500文本检测公开数据集上,算法复现效果如下:
| 模型 |骨干网络|配置文件|precision|recall|Hmean|下载链接|
|-----| --- | --- | --- | --- | --- | --- |
| FCE | ResNet50_dcn |
[
configs/det/det_r50_vd_dcn_fce_ctw.yml
](
../../configs/det/det_r50_vd_dcn_fce_ctw.yml
)
| 88.39%|82.18%|85.27%|
[
训练模型
](
https://paddleocr.bj.bcebos.com/contribution/det_r50_dcn_fce_ctw_v2.0_train.tar
)
|
<a
name=
"2"
></a>
## 2. 环境配置
请先参考
[
《运行环境准备》
](
./environment.md
)
配置PaddleOCR运行环境,参考
[
《项目克隆》
](
./clone.md
)
克隆项目代码。
<a
name=
"3"
></a>
## 3. 模型训练、评估、预测
上述FCE模型使用CTW1500文本检测公开数据集训练得到,数据集下载可参考
[
ocr_datasets
](
./dataset/ocr_datasets.md
)
。
数据下载完成后,请参考
[
文本检测训练教程
](
./detection.md
)
进行训练。PaddleOCR对代码进行了模块化,训练不同的检测模型只需要
**更换配置文件**
即可。
<a
name=
"4"
></a>
## 4. 推理部署
<a
name=
"4-1"
></a>
### 4.1 Python推理
首先将FCE文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd_dcn骨干网络,在CTW1500英文数据集训练的模型为例(
[
模型下载地址
](
https://paddleocr.bj.bcebos.com/contribution/det_r50_dcn_fce_ctw_v2.0_train.tar
)
),可以使用如下命令进行转换:
```
shell
python3 tools/export_model.py
-c
configs/det/det_r50_vd_dcn_fce_ctw.yml
-o
Global.pretrained_model
=
./det_r50_dcn_fce_ctw_v2.0_train/best_accuracy Global.save_inference_dir
=
./inference/det_fce
```
FCE文本检测模型推理,执行非弯曲文本检测,可以执行如下命令:
```
shell
python3 tools/infer/predict_det.py
--image_dir
=
"./doc/imgs_en/img_10.jpg"
--det_model_dir
=
"./inference/det_fce/"
--det_algorithm
=
"FCE"
--det_fce_box_type
=
quad
```
可视化文本检测结果默认保存到
`./inference_results`
文件夹里面,结果文件的名称前缀为'det_res'。结果示例如下:

如果想执行弯曲文本检测,可以执行如下命令:
```
shell
python3 tools/infer/predict_det.py
--image_dir
=
"./doc/imgs_en/img623.jpg"
--det_model_dir
=
"./inference/det_fce/"
--det_algorithm
=
"FCE"
--det_fce_box_type
=
poly
```
可视化文本检测结果默认保存到
`./inference_results`
文件夹里面,结果文件的名称前缀为'det_res'。结果示例如下:

**注意**
:由于CTW1500数据集只有1000张训练图像,且主要针对英文场景,所以上述模型对中文文本图像检测效果会比较差。
<a
name=
"4-2"
></a>
### 4.2 C++推理
由于后处理暂未使用CPP编写,FCE文本检测模型暂不支持CPP推理。
<a
name=
"4-3"
></a>
### 4.3 Serving服务化部署
暂未支持
<a
name=
"4-4"
></a>
### 4.4 更多推理部署
暂未支持
<a
name=
"5"
></a>
## 5. FAQ
## 引用
```
bibtex
@InProceedings
{
zhu2021fourier
,
title
=
{Fourier Contour Embedding for Arbitrary-Shaped Text Detection}
,
author
=
{Yiqin Zhu and Jianyong Chen and Lingyu Liang and Zhanghui Kuang and Lianwen Jin and Wayne Zhang}
,
year
=
{2021}
,
booktitle
=
{CVPR}
}
```
doc/doc_ch/algorithm_det_psenet.md
0 → 100644
View file @
da8991ef
# PSENet
-
[
1. 算法简介
](
#1
)
-
[
2. 环境配置
](
#2
)
-
[
3. 模型训练、评估、预测
](
#3
)
-
[
3.1 训练
](
#3-1
)
-
[
3.2 评估
](
#3-2
)
-
[
3.3 预测
](
#3-3
)
-
[
4. 推理部署
](
#4
)
-
[
4.1 Python推理
](
#4-1
)
-
[
4.2 C++推理
](
#4-2
)
-
[
4.3 Serving服务化部署
](
#4-3
)
-
[
4.4 更多推理部署
](
#4-4
)
-
[
5. FAQ
](
#5
)
<a
name=
"1"
></a>
## 1. 算法简介
论文信息:
> [Shape robust text detection with progressive scale expansion network](https://arxiv.org/abs/1903.12473)
> Wang, Wenhai and Xie, Enze and Li, Xiang and Hou, Wenbo and Lu, Tong and Yu, Gang and Shao, Shuai
> CVPR, 2019
在ICDAR2015文本检测公开数据集上,算法复现效果如下:
|模型|骨干网络|配置文件|precision|recall|Hmean|下载链接|
| --- | --- | --- | --- | --- | --- | --- |
|PSE| ResNet50_vd |
[
configs/det/det_r50_vd_pse.yml
](
../../configs/det/det_r50_vd_pse.yml
)
| 85.81% |79.53%|82.55%|
[
训练模型
](
https://paddleocr.bj.bcebos.com/dygraph_v2.1/en_det/det_r50_vd_pse_v2.0_train.tar
)
|
|PSE| MobileNetV3|
[
configs/det/det_mv3_pse.yml
](
../../configs/det/det_mv3_pse.yml
)
| 82.20% |70.48%|75.89%|
[
训练模型
](
https://paddleocr.bj.bcebos.com/dygraph_v2.1/en_det/det_mv3_pse_v2.0_train.tar
)
|
<a
name=
"2"
></a>
## 2. 环境配置
请先参考
[
《运行环境准备》
](
./environment.md
)
配置PaddleOCR运行环境,参考
[
《项目克隆》
](
./clone.md
)
克隆项目代码。
<a
name=
"3"
></a>
## 3. 模型训练、评估、预测
上述PSE模型使用ICDAR2015文本检测公开数据集训练得到,数据集下载可参考
[
ocr_datasets
](
./dataset/ocr_datasets.md
)
。
数据下载完成后,请参考
[
文本检测训练教程
](
./detection.md
)
进行训练。PaddleOCR对代码进行了模块化,训练不同的检测模型只需要
**更换配置文件**
即可。
<a
name=
"4"
></a>
## 4. 推理部署
<a
name=
"4-1"
></a>
### 4.1 Python推理
首先将PSE文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在ICDAR2015英文数据集训练的模型为例(
[
模型下载地址
](
https://paddleocr.bj.bcebos.com/dygraph_v2.1/en_det/det_r50_vd_pse_v2.0_train.tar
)
),可以使用如下命令进行转换:
```
shell
python3 tools/export_model.py
-c
configs/det/det_r50_vd_pse.yml
-o
Global.pretrained_model
=
./det_r50_vd_pse_v2.0_train/best_accuracy Global.save_inference_dir
=
./inference/det_pse
```
PSE文本检测模型推理,执行非弯曲文本检测,可以执行如下命令:
```
shell
python3 tools/infer/predict_det.py
--image_dir
=
"./doc/imgs_en/img_10.jpg"
--det_model_dir
=
"./inference/det_pse/"
--det_algorithm
=
"PSE"
--det_pse_box_type
=
quad
```
可视化文本检测结果默认保存到
`./inference_results`
文件夹里面,结果文件的名称前缀为'det_res'。结果示例如下:

如果想执行弯曲文本检测,可以执行如下命令:
```
shell
python3 tools/infer/predict_det.py
--image_dir
=
"./doc/imgs_en/img_10.jpg"
--det_model_dir
=
"./inference/det_pse/"
--det_algorithm
=
"PSE"
--det_pse_box_type
=
poly
```
可视化文本检测结果默认保存到
`./inference_results`
文件夹里面,结果文件的名称前缀为'det_res'。结果示例如下:

**注意**
:由于ICDAR2015数据集只有1000张训练图像,且主要针对英文场景,所以上述模型对中文或弯曲文本图像检测效果会比较差。
<a
name=
"4-2"
></a>
### 4.2 C++推理
由于后处理暂未使用CPP编写,PSE文本检测模型暂不支持CPP推理。
<a
name=
"4-3"
></a>
### 4.3 Serving服务化部署
暂未支持
<a
name=
"4-4"
></a>
### 4.4 更多推理部署
暂未支持
<a
name=
"5"
></a>
## 5. FAQ
## 引用
```
bibtex
@inproceedings
{
wang2019shape
,
title
=
{Shape robust text detection with progressive scale expansion network}
,
author
=
{Wang, Wenhai and Xie, Enze and Li, Xiang and Hou, Wenbo and Lu, Tong and Yu, Gang and Shao, Shuai}
,
booktitle
=
{Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition}
,
pages
=
{9336--9345}
,
year
=
{2019}
}
```
doc/doc_ch/datasets.md
→
doc/doc_ch/
dataset/
datasets.md
View file @
da8991ef
...
@@ -6,17 +6,17 @@
...
@@ -6,17 +6,17 @@
-
[
中文文档文字识别
](
#中文文档文字识别
)
-
[
中文文档文字识别
](
#中文文档文字识别
)
-
[
ICDAR2019-ArT
](
#ICDAR2019-ArT
)
-
[
ICDAR2019-ArT
](
#ICDAR2019-ArT
)
除了开源数据,用户还可使用合成工具自行合成,可参考
[
数据合成工具
](
./data_synthesis.md
)
;
除了开源数据,用户还可使用合成工具自行合成,可参考
[
数据合成工具
](
.
.
/data_synthesis.md
)
;
如果需要标注自己的数据,可参考
[
数据标注工具
](
./data_annotation.md
)
。
如果需要标注自己的数据,可参考
[
数据标注工具
](
.
.
/data_annotation.md
)
。
<a
name=
"ICDAR2019-LSVT"
></a>
<a
name=
"ICDAR2019-LSVT"
></a>
#### 1、ICDAR2019-LSVT
#### 1、ICDAR2019-LSVT
-
**数据来源**
:https://ai.baidu.com/broad/introduction?dataset=lsvt
-
**数据来源**
:https://ai.baidu.com/broad/introduction?dataset=lsvt
-
**数据简介**
: 共45w中文街景图像,包含5w(2w测试+3w训练)全标注数据(文本坐标+文本内容),40w弱标注数据(仅文本内容),如下图所示:
-
**数据简介**
: 共45w中文街景图像,包含5w(2w测试+3w训练)全标注数据(文本坐标+文本内容),40w弱标注数据(仅文本内容),如下图所示:
!
[](
../datasets/LSVT_1.jpg
)
!
[](
../
../
datasets/LSVT_1.jpg
)
(a) 全标注数据
(a) 全标注数据
!
[](
../datasets/LSVT_2.jpg
)
!
[](
../
../
datasets/LSVT_2.jpg
)
(b) 弱标注数据
(b) 弱标注数据
-
**下载地址**
:https://ai.baidu.com/broad/download?dataset=lsvt
-
**下载地址**
:https://ai.baidu.com/broad/download?dataset=lsvt
-
**说明**
:其中,test数据集的label目前没有开源,如要评估结果,可以去官网提交:https://rrc.cvc.uab.es/?ch=16
-
**说明**
:其中,test数据集的label目前没有开源,如要评估结果,可以去官网提交:https://rrc.cvc.uab.es/?ch=16
...
@@ -25,16 +25,16 @@
...
@@ -25,16 +25,16 @@
#### 2、ICDAR2017-RCTW-17
#### 2、ICDAR2017-RCTW-17
-
**数据来源**
:https://rctw.vlrlab.net/
-
**数据来源**
:https://rctw.vlrlab.net/
-
**数据简介**
:共包含12,000+图像,大部分图片是通过手机摄像头在野外采集的。有些是截图。这些图片展示了各种各样的场景,包括街景、海报、菜单、室内场景和手机应用程序的截图。
-
**数据简介**
:共包含12,000+图像,大部分图片是通过手机摄像头在野外采集的。有些是截图。这些图片展示了各种各样的场景,包括街景、海报、菜单、室内场景和手机应用程序的截图。
!
[](
../datasets/rctw.jpg
)
!
[](
../
../
datasets/rctw.jpg
)
-
**下载地址**
:https://rctw.vlrlab.net/dataset/
-
**下载地址**
:https://rctw.vlrlab.net/dataset/
<a
name=
"中文街景文字识别"
></a>
<a
name=
"中文街景文字识别"
></a>
#### 3、中文街景文字识别
#### 3、中文街景文字识别
-
**数据来源**
:https://aistudio.baidu.com/aistudio/competition/detail/8
-
**数据来源**
:https://aistudio.baidu.com/aistudio/competition/detail/8
-
**数据简介**
:ICDAR2019-LSVT行识别任务,共包括29万张图片,其中21万张图片作为训练集(带标注),8万张作为测试集(无标注)。数据集采自中国街景,并由街景图片中的文字行区域(例如店铺标牌、地标等等)截取出来而形成。所有图像都经过一些预处理,将文字区域利用仿射变化,等比映射为一张高为48像素的图片,如图所示:
-
**数据简介**
:ICDAR2019-LSVT行识别任务,共包括29万张图片,其中21万张图片作为训练集(带标注),8万张作为测试集(无标注)。数据集采自中国街景,并由街景图片中的文字行区域(例如店铺标牌、地标等等)截取出来而形成。所有图像都经过一些预处理,将文字区域利用仿射变化,等比映射为一张高为48像素的图片,如图所示:
!
[](
../datasets/ch_street_rec_1.png
)
!
[](
../
../
datasets/ch_street_rec_1.png
)
(a) 标注:魅派集成吊顶
(a) 标注:魅派集成吊顶
!
[](
../datasets/ch_street_rec_2.png
)
!
[](
../
../
datasets/ch_street_rec_2.png
)
(b) 标注:母婴用品连锁
(b) 标注:母婴用品连锁
-
**下载地址**
-
**下载地址**
https://aistudio.baidu.com/aistudio/datasetdetail/8429
https://aistudio.baidu.com/aistudio/datasetdetail/8429
...
@@ -48,15 +48,15 @@ https://aistudio.baidu.com/aistudio/datasetdetail/8429
...
@@ -48,15 +48,15 @@ https://aistudio.baidu.com/aistudio/datasetdetail/8429
-
包含汉字、英文字母、数字和标点共5990个字符(字符集合:https://github.com/YCG09/chinese_ocr/blob/master/train/char_std_5990.txt )
-
包含汉字、英文字母、数字和标点共5990个字符(字符集合:https://github.com/YCG09/chinese_ocr/blob/master/train/char_std_5990.txt )
-
每个样本固定10个字符,字符随机截取自语料库中的句子
-
每个样本固定10个字符,字符随机截取自语料库中的句子
-
图片分辨率统一为280x32
-
图片分辨率统一为280x32
!
[](
../datasets/ch_doc1.jpg
)
!
[](
../
../
datasets/ch_doc1.jpg
)
!
[](
../datasets/ch_doc3.jpg
)
!
[](
../
../
datasets/ch_doc3.jpg
)
-
**下载地址**
:https://pan.baidu.com/s/1QkI7kjah8SPHwOQ40rS1Pw (密码:lu7m)
-
**下载地址**
:https://pan.baidu.com/s/1QkI7kjah8SPHwOQ40rS1Pw (密码:lu7m)
<a
name=
"ICDAR2019-ArT"
></a>
<a
name=
"ICDAR2019-ArT"
></a>
#### 5、ICDAR2019-ArT
#### 5、ICDAR2019-ArT
-
**数据来源**
:https://ai.baidu.com/broad/introduction?dataset=art
-
**数据来源**
:https://ai.baidu.com/broad/introduction?dataset=art
-
**数据简介**
:共包含10,166张图像,训练集5603图,测试集4563图。由Total-Text、SCUT-CTW1500、Baidu Curved Scene Text (ICDAR2019-LSVT部分弯曲数据) 三部分组成,包含水平、多方向和弯曲等多种形状的文本。
-
**数据简介**
:共包含10,166张图像,训练集5603图,测试集4563图。由Total-Text、SCUT-CTW1500、Baidu Curved Scene Text (ICDAR2019-LSVT部分弯曲数据) 三部分组成,包含水平、多方向和弯曲等多种形状的文本。
!
[](
../datasets/ArT.jpg
)
!
[](
../
../
datasets/ArT.jpg
)
-
**下载地址**
:https://ai.baidu.com/broad/download?dataset=art
-
**下载地址**
:https://ai.baidu.com/broad/download?dataset=art
## 参考文献
## 参考文献
...
...
doc/doc_ch/docvqa_datasets.md
→
doc/doc_ch/
dataset/
docvqa_datasets.md
View file @
da8991ef
File moved
doc/doc_ch/handwritten_datasets.md
→
doc/doc_ch/
dataset/
handwritten_datasets.md
View file @
da8991ef
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
-
**数据简介**
:
-
**数据简介**
:
*
包含在线和离线两类手写数据,
`HWDB1.0~1.2`
总共有3895135个手写单字样本,分属7356类(7185个汉字和171个英文字母、数字、符号);
`HWDB2.0~2.2`
总共有5091页图像,分割为52230个文本行和1349414个文字。所有文字和文本样本均存为灰度图像。部分单字样本图片如下所示。
*
包含在线和离线两类手写数据,
`HWDB1.0~1.2`
总共有3895135个手写单字样本,分属7356类(7185个汉字和171个英文字母、数字、符号);
`HWDB2.0~2.2`
总共有5091页图像,分割为52230个文本行和1349414个文字。所有文字和文本样本均存为灰度图像。部分单字样本图片如下所示。


-
**下载地址**
:http://www.nlpr.ia.ac.cn/databases/handwriting/Download.html
-
**下载地址**
:http://www.nlpr.ia.ac.cn/databases/handwriting/Download.html
-
**使用建议**
:数据为单字,白色背景,可以大量合成文字行进行训练。白色背景可以处理成透明状态,方便添加各种背景。对于需要语义的情况,建议从真实语料出发,抽取单字组成文字行
-
**使用建议**
:数据为单字,白色背景,可以大量合成文字行进行训练。白色背景可以处理成透明状态,方便添加各种背景。对于需要语义的情况,建议从真实语料出发,抽取单字组成文字行
...
@@ -22,7 +22,7 @@
...
@@ -22,7 +22,7 @@
-
**数据简介**
: NIST19数据集适用于手写文档和字符识别的模型训练,从3600位作者的手写样本表格中提取得到,总共包含81万张字符图片。其中9张图片示例如下。
-
**数据简介**
: NIST19数据集适用于手写文档和字符识别的模型训练,从3600位作者的手写样本表格中提取得到,总共包含81万张字符图片。其中9张图片示例如下。


-
**下载地址**
:
[
https://www.nist.gov/srd/nist-special-database-19
](
https://www.nist.gov/srd/nist-special-database-19
)
-
**下载地址**
:
[
https://www.nist.gov/srd/nist-special-database-19
](
https://www.nist.gov/srd/nist-special-database-19
)
doc/doc_ch/layout_datasets.md
→
doc/doc_ch/
dataset/
layout_datasets.md
View file @
da8991ef
File moved
doc/doc_ch/dataset/ocr_datasets.md
0 → 100644
View file @
da8991ef
# OCR数据集
-
[
1. 文本检测
](
#1-文本检测
)
-
[
1.1 PaddleOCR 文字检测数据格式
](
#11-paddleocr-文字检测数据格式
)
-
[
1.2 公开数据集
](
#12-公开数据集
)
-
[
1.2.1 ICDAR 2015
](
#121-icdar-2015
)
-
[
2. 文本识别
](
#2-文本识别
)
-
[
2.1 PaddleOCR 文字识别数据格式
](
#21-paddleocr-文字识别数据格式
)
-
[
2.2 公开数据集
](
#22-公开数据集
)
-
[
2.1 ICDAR 2015
](
#21-icdar-2015
)
-
[
3. 数据存放路径
](
#3-数据存放路径
)
这里整理了OCR中常用的公开数据集,持续更新中,欢迎各位小伙伴贡献数据集~
## 1. 文本检测
### 1.1 PaddleOCR 文字检测数据格式
PaddleOCR 中的文本检测算法支持的标注文件格式如下,中间用"
\t
"分隔:
```
" 图像文件名 json.dumps编码的图像标注信息"
ch4_test_images/img_61.jpg [{"transcription": "MASA", "points": [[310, 104], [416, 141], [418, 216], [312, 179]]}, {...}]
```
json.dumps编码前的图像标注信息是包含多个字典的list,字典中的
`points`
表示文本框的四个点的坐标(x, y),从左上角的点开始顺时针排列。
`transcription`
表示当前文本框的文字,
**当其内容为“###”时,表示该文本框无效,在训练时会跳过。**
如果您想在我们未提供的数据集上训练,可以按照上述形式构建标注文件。
### 1.2 公开数据集
| 数据集名称 |图片下载地址| PaddleOCR 标注下载地址 |
|---|---|---|
| ICDAR 2015 |https://rrc.cvc.uab.es/?ch=4&com=downloads|
[
train
](
https://paddleocr.bj.bcebos.com/dataset/train_icdar2015_label.txt
)
/
[
test
](
https://paddleocr.bj.bcebos.com/dataset/test_icdar2015_label.txt
)
|
| ctw1500 |https://paddleocr.bj.bcebos.com/dataset/ctw1500.zip| 图片下载地址中已包含 |
| total text |https://paddleocr.bj.bcebos.com/dataset/total_text.tar| 图片下载地址中已包含 |
#### 1.2.1 ICDAR 2015
ICDAR 2015 数据集包含1000张训练图像和500张测试图像。ICDAR 2015 数据集可以从上表中链接下载,首次下载需注册。
注册完成登陆后,下载下图中红色框标出的部分,其中,
`Training Set Images`
下载的内容保存在
`icdar_c4_train_imgs`
文件夹下,
`Test Set Images`
下载的内容保存早
`ch4_test_images`
文件夹下
<p
align=
"center"
>
<img
src=
"../../datasets/ic15_location_download.png"
align=
"middle"
width =
"700"
/>
<p
align=
"center"
>
将下载到的数据集解压到工作目录下,假设解压在 PaddleOCR/train_data/下。然后从上表中下载转换好的标注文件。
PaddleOCR 也提供了数据格式转换脚本,可以将官网 label 转换支持的数据格式。 数据转换工具在
`ppocr/utils/gen_label.py`
, 这里以训练集为例:
```
# 将官网下载的标签文件转换为 train_icdar2015_label.txt
python gen_label.py --mode="det" --root_path="/path/to/icdar_c4_train_imgs/" \
--input_path="/path/to/ch4_training_localization_transcription_gt" \
--output_label="/path/to/train_icdar2015_label.txt"
```
解压数据集和下载标注文件后,PaddleOCR/train_data/ 有两个文件夹和两个文件,按照如下方式组织icdar2015数据集:
```
/PaddleOCR/train_data/icdar2015/text_localization/
└─ icdar_c4_train_imgs/ icdar 2015 数据集的训练数据
└─ ch4_test_images/ icdar 2015 数据集的测试数据
└─ train_icdar2015_label.txt icdar 2015 数据集的训练标注
└─ test_icdar2015_label.txt icdar 2015 数据集的测试标注
```
## 2. 文本识别
### 2.1 PaddleOCR 文字识别数据格式
PaddleOCR 中的文字识别算法支持两种数据格式:
-
`lmdb`
用于训练以lmdb格式存储的数据集,使用
[
lmdb_dataset.py
](
../../../ppocr/data/lmdb_dataset.py
)
进行读取;
-
`通用数据`
用于训练以文本文件存储的数据集,使用
[
simple_dataset.py
](
../../../ppocr/data/simple_dataset.py
)
进行读取。
下面以通用数据集为例, 介绍如何准备数据集:
*
训练集
建议将训练图片放入同一个文件夹,并用一个txt文件(rec_gt_train.txt)记录图片路径和标签,txt文件里的内容如下:
**注意:**
txt文件中默认请将图片路径和图片标签用
\t
分割,如用其他方式分割将造成训练报错。
```
" 图像文件名 图像标注信息 "
train_data/rec/train/word_001.jpg 简单可依赖
train_data/rec/train/word_002.jpg 用科技让复杂的世界更简单
...
```
最终训练集应有如下文件结构:
```
|-train_data
|-rec
|- rec_gt_train.txt
|- train
|- word_001.png
|- word_002.jpg
|- word_003.jpg
| ...
```
除上述单张图像为一行格式之外,PaddleOCR也支持对离线增广后的数据进行训练,为了防止相同样本在同一个batch中被多次采样,我们可以将相同标签对应的图片路径写在一行中,以列表的形式给出,在训练中,PaddleOCR会随机选择列表中的一张图片进行训练。对应地,标注文件的格式如下。
```
["11.jpg", "12.jpg"] 简单可依赖
["21.jpg", "22.jpg", "23.jpg"] 用科技让复杂的世界更简单
3.jpg ocr
```
上述示例标注文件中,"11.jpg"和"12.jpg"的标签相同,都是
`简单可依赖`
,在训练的时候,对于该行标注,会随机选择其中的一张图片进行训练。
-
验证集
同训练集类似,验证集也需要提供一个包含所有图片的文件夹(test)和一个rec_gt_test.txt,验证集的结构如下所示:
```
|-train_data
|-rec
|- rec_gt_test.txt
|- test
|- word_001.jpg
|- word_002.jpg
|- word_003.jpg
| ...
```
### 2.2 公开数据集
| 数据集名称 | 图片下载地址 | PaddleOCR 标注下载地址 |
|---|---|---------------------------------------------------------------------|
| en benchmark(MJ, SJ, IIIT, SVT, IC03, IC13, IC15, SVTP, and CUTE.) |
[
DTRB
](
https://github.com/clovaai/deep-text-recognition-benchmark#download-lmdb-dataset-for-traininig-and-evaluation-from-here
)
| LMDB格式,可直接用
[
lmdb_dataset.py
](
../../../ppocr/data/lmdb_dataset.py
)
加载 |
|ICDAR 2015| http://rrc.cvc.uab.es/?ch=4&com=downloads |
[
train
](
https://paddleocr.bj.bcebos.com/dataset/rec_gt_train.txt
)
/
[
test
](
https://paddleocr.bj.bcebos.com/dataset/rec_gt_test.txt
)
|
| 多语言数据集 |
[
百度网盘
](
https://pan.baidu.com/s/1bS_u207Rm7YbY33wOECKDA
)
提取码:frgi
<br>
[
google drive
](
https://drive.google.com/file/d/18cSWX7wXSy4G0tbKJ0d9PuIaiwRLHpjA/view
)
| 图片下载地址中已包含 |
#### 2.1 ICDAR 2015
ICDAR 2015 数据集可以在上表中链接下载,用于快速验证。也可以从上表中下载 en benchmark 所需的lmdb格式数据集。
下载完图片后从上表中下载转换好的标注文件。
PaddleOCR 也提供了数据格式转换脚本,可以将ICDAR官网 label 转换为PaddleOCR支持的数据格式。 数据转换工具在
`ppocr/utils/gen_label.py`
, 这里以训练集为例:
```
# 将官网下载的标签文件转换为 rec_gt_label.txt
python gen_label.py --mode="rec" --input_path="{path/of/origin/label}" --output_label="rec_gt_label.txt"
```
数据样式格式如下,(a)为原始图片,(b)为每张图片对应的 Ground Truth 文本文件:

## 3. 数据存放路径
PaddleOCR训练数据的默认存储路径是
`PaddleOCR/train_data`
,如果您的磁盘上已有数据集,只需创建软链接至数据集目录:
```
# linux and mac os
ln -sf <path/to/dataset> <path/to/paddle_ocr>/train_data/dataset
# windows
mklink /d <path/to/paddle_ocr>/train_data/dataset <path/to/dataset>
```
doc/doc_ch/dataset/table_datasets.md
0 → 100644
View file @
da8991ef
# 表格识别数据集
-
[
数据集汇总
](
#数据集汇总
)
-
[
1. PubTabNet数据集
](
#1-pubtabnet数据集
)
-
[
2. 好未来表格识别竞赛数据集
](
#2-好未来表格识别竞赛数据集
)
这里整理了常用表格识别数据集,持续更新中,欢迎各位小伙伴贡献数据集~
## 数据集汇总
| 数据集名称 |图片下载地址| PPOCR标注下载地址 |
|---|---|---|
| PubTabNet |https://github.com/ibm-aur-nlp/PubTabNet| jsonl格式,可直接用
[
pubtab_dataset.py
](
../../../ppocr/data/pubtab_dataset.py
)
加载 |
| 好未来表格识别竞赛数据集 |https://ai.100tal.com/dataset| jsonl格式,可直接用
[
pubtab_dataset.py
](
../../../ppocr/data/pubtab_dataset.py
)
加载 |
## 1. PubTabNet数据集
-
**数据简介**
:PubTabNet数据集的训练集合中包含50万张图像,验证集合中包含0.9万张图像。部分图像可视化如下所示。
<div
align=
"center"
>
<img
src=
"../../datasets/table_PubTabNet_demo/PMC524509_007_00.png"
width=
"500"
>
<img
src=
"../../datasets/table_PubTabNet_demo/PMC535543_007_01.png"
width=
"500"
>
</div>
-
**说明**
:使用该数据集时,需要遵守
[
CDLA-Permissive
](
https://cdla.io/permissive-1-0/
)
协议。
## 2. 好未来表格识别竞赛数据集
-
**数据简介**
:好未来表格识别竞赛数据集的训练集合中包含1.6万张图像。验证集未给出可训练的标注。
<div
align=
"center"
>
<img
src=
"../../datasets/table_tal_demo/1.jpg"
width=
"500"
>
<img
src=
"../../datasets/table_tal_demo/2.jpg"
width=
"500"
>
</div>
doc/doc_ch/vertical_and_multilingual_datasets.md
→
doc/doc_ch/
dataset/
vertical_and_multilingual_datasets.md
View file @
da8991ef
...
@@ -22,7 +22,7 @@
...
@@ -22,7 +22,7 @@
*
CCPD-Challenge: 至今在车牌检测识别任务中最有挑战性的一些图片
*
CCPD-Challenge: 至今在车牌检测识别任务中最有挑战性的一些图片
*
CCPD-NP: 没有安装车牌的新车图片。
*
CCPD-NP: 没有安装车牌的新车图片。


-
**下载地址**
-
**下载地址**
...
@@ -46,7 +46,7 @@
...
@@ -46,7 +46,7 @@
* 有效期结束:07/41
* 有效期结束:07/41
* 卡用户拼音:MICHAEL
* 卡用户拼音:MICHAEL


-
**下载地址**
:
[
https://cdn.kesci.com/cmb2017-2.zip
](
https://cdn.kesci.com/cmb2017-2.zip
)
-
**下载地址**
:
[
https://cdn.kesci.com/cmb2017-2.zip
](
https://cdn.kesci.com/cmb2017-2.zip
)
...
@@ -59,7 +59,7 @@
...
@@ -59,7 +59,7 @@
-
**数据简介**
: 这是一个数据合成的工具包,可以根据输入的文本,输出验证码图片,使用该工具包生成几张demo图片如下。
-
**数据简介**
: 这是一个数据合成的工具包,可以根据输入的文本,输出验证码图片,使用该工具包生成几张demo图片如下。


-
**下载地址**
: 该数据集是生成得到,无下载地址。
-
**下载地址**
: 该数据集是生成得到,无下载地址。
...
...
doc/doc_ch/detection.md
View file @
da8991ef
# 文字检测
# 文字检测
本节以icdar2015数据集为例,介绍PaddleOCR中检测模型训练、评估、测试的使用方式。
本节以icdar2015数据集为例,介绍PaddleOCR中检测模型训练、评估、测试的使用方式。
-
[
1. 准备数据和模型
](
#1-
-------
)
-
[
1. 准备数据和模型
](
#1-
准备数据和模型
)
*
[
1.1
数据
准备
](
#11-
----
)
-
[
1.1 准备
数据集
](
#11-
准备数据集
)
*
[
1.2 下载预训练模型
](
#12-
-------
)
-
[
1.2 下载预训练模型
](
#12-
下载预训练模型
)
-
[
2. 开始训练
](
#2-
----
)
-
[
2. 开始训练
](
#2-
开始训练
)
*
[
2.1 启动训练
](
#21-
----
)
-
[
2.1 启动训练
](
#21-
启动训练
)
*
[
2.2 断点训练
](
#22-
----
)
-
[
2.2 断点训练
](
#22-
断点训练
)
*
[
2.3 更换Backbone 训练
](
#23-
--
backbone-
--
)
-
[
2.3 更换Backbone 训练
](
#23-
更换
backbone-
训练
)
*
[
2.4 混合精度训练
](
#24-
--amp---
)
-
[
2.4 混合精度训练
](
#24-
混合精度训练
)
*
[
2.5 分布式训练
](
#25-
--fleet---
)
-
[
2.5 分布式训练
](
#25-
分布式训练
)
*
[
2.6 知识蒸馏训练
](
#26-
--distill---
)
-
[
2.6 知识蒸馏训练
](
#26-
知识蒸馏训练
)
*
[
2.7 其他训练环境
(Windows/macOS/Linux DCU)
](
#27---other---
)
-
[
2.7 其他训练环境
](
#27-其他训练环境
)
-
[
3. 模型评估与预测
](
#3-
-------
)
-
[
3. 模型评估与预测
](
#3-
模型评估与预测
)
*
[
3.1 指标评估
](
#31-
----
)
-
[
3.1 指标评估
](
#31-
指标评估
)
*
[
3.2 测试检测效果
](
#32-
------
)
-
[
3.2 测试检测效果
](
#32-
测试检测效果
)
-
[
4. 模型导出与预测
](
#4-
-------
)
-
[
4. 模型导出与预测
](
#4-
模型导出与预测
)
-
[
5. FAQ
](
#5-faq
)
-
[
5. FAQ
](
#5-faq
)
<a
name=
"1--------"
></a>
<a
name=
"1--------"
></a>
# 1. 准备数据和模型
# 1. 准备数据和模型
<a
name=
"11-----"
></a>
## 1.1 准备数据集
## 1.1 数据准备
icdar2015 TextLocalization数据集是文本检测的数据集,包含1000张训练图像和500张测试图像。
icdar2015数据集可以从
[
官网
](
https://rrc.cvc.uab.es/?ch=4&com=downloads
)
下载到,首次下载需注册。
注册完成登陆后,下载下图中红色框标出的部分,其中,
`Training Set Images`
下载的内容保存为
`icdar_c4_train_imgs`
文件夹下,
`Test Set Images`
下载的内容保存为
`ch4_test_images`
文件夹下
<p
align=
"center"
>
<img
src=
"../datasets/ic15_location_download.png"
align=
"middle"
width =
"700"
/>
<p
align=
"center"
>
将下载到的数据集解压到工作目录下,假设解压在 PaddleOCR/train_data/下。另外,PaddleOCR将零散的标注文件整理成单独的标注文件
,您可以通过wget的方式进行下载。
```
shell
# 在PaddleOCR路径下
cd
PaddleOCR/
wget
-P
./train_data/ https://paddleocr.bj.bcebos.com/dataset/train_icdar2015_label.txt
wget
-P
./train_data/ https://paddleocr.bj.bcebos.com/dataset/test_icdar2015_label.txt
```
PaddleOCR 也提供了数据格式转换脚本,可以将官网 label 转换支持的数据格式。 数据转换工具在
`ppocr/utils/gen_label.py`
, 这里以训练集为例:
```
# 将官网下载的标签文件转换为 train_icdar2015_label.txt
python gen_label.py --mode="det" --root_path="/path/to/icdar_c4_train_imgs/" \
--input_path="/path/to/ch4_training_localization_transcription_gt" \
--output_label="/path/to/train_icdar2015_label.txt"
```
解压数据集和下载标注文件后,PaddleOCR/train_data/ 有两个文件夹和两个文件,按照如下方式组织icdar2015数据集:
```
/PaddleOCR/train_data/icdar2015/text_localization/
└─ icdar_c4_train_imgs/ icdar数据集的训练数据
└─ ch4_test_images/ icdar数据集的测试数据
└─ train_icdar2015_label.txt icdar数据集的训练标注
└─ test_icdar2015_label.txt icdar数据集的测试标注
```
提供的标注文件格式如下,中间用"
\t
"分隔:
准备数据集可参考
[
ocr_datasets
](
./dataset/ocr_datasets.md
)
。
```
" 图像文件名 json.dumps编码的图像标注信息"
ch4_test_images/img_61.jpg [{"transcription": "MASA", "points": [[310, 104], [416, 141], [418, 216], [312, 179]]}, {...}]
```
json.dumps编码前的图像标注信息是包含多个字典的list,字典中的
`points`
表示文本框的四个点的坐标(x, y),从左上角的点开始顺时针排列。
`transcription`
表示当前文本框的文字,
**当其内容为“###”时,表示该文本框无效,在训练时会跳过。**
如果您想在其他数据集上训练,可以按照上述形式构建标注文件。
<a
name=
"12--------"
></a>
<a
name=
"12--------"
></a>
## 1.2 下载预训练模型
## 1.2 下载预训练模型
...
@@ -178,7 +134,7 @@ args1: args1
...
@@ -178,7 +134,7 @@ args1: args1
## 2.4 混合精度训练
## 2.4 混合精度训练
如果您想进一步加快训练速度,可以使用
[
自动混合精度训练
](
https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/01_paddle2.0_introduction/basic_concept/amp_cn.html
)
, 以单机单卡为例,命令如下:
如果您想进一步加快训练速度,可以使用
[
自动混合精度训练
](
https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/01_paddle2.0_introduction/basic_concept/amp_cn.html
)
, 以单机单卡为例,命令如下:
```
shell
```
shell
python3 tools/train.py
-c
configs/det/det_mv3_db.yml
\
python3 tools/train.py
-c
configs/det/det_mv3_db.yml
\
-o
Global.pretrained_model
=
./pretrain_models/MobileNetV3_large_x0_5_pretrained
\
-o
Global.pretrained_model
=
./pretrain_models/MobileNetV3_large_x0_5_pretrained
\
...
@@ -197,7 +153,7 @@ python3 -m paddle.distributed.launch --ips="xx.xx.xx.xx,xx.xx.xx.xx" --gpus '0,1
...
@@ -197,7 +153,7 @@ python3 -m paddle.distributed.launch --ips="xx.xx.xx.xx,xx.xx.xx.xx" --gpus '0,1
**注意:** 采用多机多卡训练时,需要替换上面命令中的ips值为您机器的地址,机器之间需要能够相互ping通。另外,训练时需要在多个机器上分别启动命令。查看机器ip地址的命令为`ifconfig`。
**注意:** 采用多机多卡训练时,需要替换上面命令中的ips值为您机器的地址,机器之间需要能够相互ping通。另外,训练时需要在多个机器上分别启动命令。查看机器ip地址的命令为`ifconfig`。
<a name="26---distill---"></a>
<a name="26---distill---"></a>
## 2.6 知识蒸馏训练
## 2.6 知识蒸馏训练
...
@@ -211,12 +167,12 @@ PaddleOCR支持了基于知识蒸馏的检测模型训练过程,更多内容
...
@@ -211,12 +167,12 @@ PaddleOCR支持了基于知识蒸馏的检测模型训练过程,更多内容
## 2.7 其他训练环境
## 2.7 其他训练环境
- Windows GPU/CPU
- Windows GPU/CPU
- macOS
- macOS
- Linux DCU
- Linux DCU
<a name="3--------"></a>
<a name="3--------"></a>
# 3. 模型评估与预测
# 3. 模型评估与预测
...
...
doc/doc_ch/recognition.md
View file @
da8991ef
...
@@ -2,133 +2,31 @@
...
@@ -2,133 +2,31 @@
本文提供了PaddleOCR文本识别任务的全流程指南,包括数据准备、模型训练、调优、评估、预测,各个阶段的详细说明:
本文提供了PaddleOCR文本识别任务的全流程指南,包括数据准备、模型训练、调优、评估、预测,各个阶段的详细说明:
-
[
文字识别
](
#文字识别
)
-
[
1. 数据准备
](
#1-数据准备
)
-
[
1. 数据准备
](
#1-数据准备
)
-
[
1.1 准备数据集
](
#11-准备数据集
)
-
[
1.1 自定义数据集
](
#11-自定义数据集
)
-
[
1.2 字典
](
#12-字典
)
-
[
1.2 数据下载
](
#12-数据下载
)
-
[
1.3 添加空格类别
](
#13-添加空格类别
)
-
[
1.3 字典
](
#13-字典
)
-
[
2. 启动训练
](
#2-启动训练
)
-
[
1.4 添加空格类别
](
#14-添加空格类别
)
-
[
2.1 数据增强
](
#21-数据增强
)
-
[
2. 启动训练
](
#2-启动训练
)
-
[
2.2 通用模型训练
](
#22-通用模型训练
)
-
[
2.1 数据增强
](
#21-数据增强
)
-
[
2.3 多语言模型训练
](
#23-多语言模型训练
)
-
[
2.2 通用模型训练
](
#22-通用模型训练
)
-
[
2.4 知识蒸馏训练
](
#24-知识蒸馏训练
)
-
[
2.3 多语言模型训练
](
#23-多语言模型训练
)
-
[
3 评估
](
#3-评估
)
-
[
2.4 知识蒸馏训练
](
#24-知识蒸馏训练
)
-
[
4 预测
](
#4-预测
)
-
[
3 评估
](
#3-评估
)
-
[
5. 转Inference模型测试
](
#5-转inference模型测试
)
-
[
4 预测
](
#4-预测
)
-
[
5. 转Inference模型测试
](
#5-转inference模型测试
)
<a
name=
"数据准备"
></a>
<a
name=
"数据准备"
></a>
## 1. 数据准备
## 1. 数据准备
### 1.1 准备数据集
PaddleOCR 支持两种数据格式:
准备数据集可参考
[
ocr_datasets
](
./dataset/ocr_datasets.md
)
。
-
`lmdb`
用于训练以lmdb格式存储的数据集(LMDBDataSet);
-
`通用数据`
用于训练以文本文件存储的数据集(SimpleDataSet);
训练数据的默认存储路径是
`PaddleOCR/train_data`
,如果您的磁盘上已有数据集,只需创建软链接至数据集目录:
```
# linux and mac os
ln -sf <path/to/dataset> <path/to/paddle_ocr>/train_data/dataset
# windows
mklink /d <path/to/paddle_ocr>/train_data/dataset <path/to/dataset>
```
<a
name=
"准备数据集"
></a>
### 1.1 自定义数据集
下面以通用数据集为例, 介绍如何准备数据集:
*
训练集
建议将训练图片放入同一个文件夹,并用一个txt文件(rec_gt_train.txt)记录图片路径和标签,txt文件里的内容如下:
**注意:**
txt文件中默认请将图片路径和图片标签用
\t
分割,如用其他方式分割将造成训练报错。
```
" 图像文件名 图像标注信息 "
train_data/rec/train/word_001.jpg 简单可依赖
train_data/rec/train/word_002.jpg 用科技让复杂的世界更简单
...
```
最终训练集应有如下文件结构:
```
|-train_data
|-rec
|- rec_gt_train.txt
|- train
|- word_001.png
|- word_002.jpg
|- word_003.jpg
| ...
```
除上述单张图像为一行格式之外,PaddleOCR也支持对离线增广后的数据进行训练,为了防止相同样本在同一个batch中被多次采样,我们可以将相同标签对应的图片路径写在一行中,以列表的形式给出,在训练中,PaddleOCR会随机选择列表中的一张图片进行训练。对应地,标注文件的格式如下。
```
["11.jpg", "12.jpg"] 简单可依赖
["21.jpg", "22.jpg", "23.jpg"] 用科技让复杂的世界更简单
3.jpg ocr
```
上述示例标注文件中,"11.jpg"和"12.jpg"的标签相同,都是
`简单可依赖`
,在训练的时候,对于该行标注,会随机选择其中的一张图片进行训练。
-
验证集
同训练集类似,验证集也需要提供一个包含所有图片的文件夹(test)和一个rec_gt_test.txt,验证集的结构如下所示:
```
|-train_data
|-rec
|- rec_gt_test.txt
|- test
|- word_001.jpg
|- word_002.jpg
|- word_003.jpg
| ...
```
<a
name=
"数据下载"
></a>
### 1.2 数据下载
-
ICDAR2015
若您本地没有数据集,可以在官网下载
[
ICDAR2015
](
http://rrc.cvc.uab.es/?ch=4&com=downloads
)
数据,用于快速验证。也可以参考
[
DTRB
](
https://github.com/clovaai/deep-text-recognition-benchmark#download-lmdb-dataset-for-traininig-and-evaluation-from-here
)
,下载 benchmark 所需的lmdb格式数据集。
如果希望复现SAR的论文指标,需要下载
[
SynthAdd
](
https://pan.baidu.com/share/init?surl=uV0LtoNmcxbO-0YA7Ch4dg
)
, 提取码:627x。此外,真实数据集icdar2013, icdar2015, cocotext, IIIT5也作为训练数据的一部分。具体数据细节可以参考论文SAR。
如果希望复现SAR的论文指标,需要下载
[
SynthAdd
](
https://pan.baidu.com/share/init?surl=uV0LtoNmcxbO-0YA7Ch4dg
)
, 提取码:627x。此外,真实数据集icdar2013, icdar2015, cocotext, IIIT5也作为训练数据的一部分。具体数据细节可以参考论文SAR。
如果你使用的是icdar2015的公开数据集,PaddleOCR 提供了一份用于训练 ICDAR2015 数据集的标签文件,通过以下方式下载:
```
# 训练集标签
wget -P ./train_data/ic15_data https://paddleocr.bj.bcebos.com/dataset/rec_gt_train.txt
# 测试集标签
wget -P ./train_data/ic15_data https://paddleocr.bj.bcebos.com/dataset/rec_gt_test.txt
```
PaddleOCR 也提供了数据格式转换脚本,可以将ICDAR官网 label 转换为PaddleOCR支持的数据格式。 数据转换工具在
`ppocr/utils/gen_label.py`
, 这里以训练集为例:
```
# 将官网下载的标签文件转换为 rec_gt_label.txt
python gen_label.py --mode="rec" --input_path="{path/of/origin/label}" --output_label="rec_gt_label.txt"
```
数据样式格式如下,(a)为原始图片,(b)为每张图片对应的 Ground Truth 文本文件:

-
多语言数据集
多语言模型的训练数据集均为100w的合成数据,使用了开源合成工具
[
text_renderer
](
https://github.com/Sanster/text_renderer
)
,少量的字体可以通过下面两种方式下载。
*
[
百度网盘
](
https://pan.baidu.com/s/1bS_u207Rm7YbY33wOECKDA
)
提取码:frgi
*
[
google drive
](
https://drive.google.com/file/d/18cSWX7wXSy4G0tbKJ0d9PuIaiwRLHpjA/view
)
<a
name=
"字典"
></a>
<a
name=
"字典"
></a>
### 1.
3
字典
### 1.
2
字典
最后需要提供一个字典({word_dict_name}.txt),使模型在训练时,可以将所有出现的字符映射为字典的索引。
最后需要提供一个字典({word_dict_name}.txt),使模型在训练时,可以将所有出现的字符映射为字典的索引。
...
@@ -174,7 +72,7 @@ PaddleOCR内置了一部分字典,可以按需使用。
...
@@ -174,7 +72,7 @@ PaddleOCR内置了一部分字典,可以按需使用。
如需自定义dic文件,请在
`configs/rec/rec_icdar15_train.yml`
中添加
`character_dict_path`
字段, 指向您的字典路径。
如需自定义dic文件,请在
`configs/rec/rec_icdar15_train.yml`
中添加
`character_dict_path`
字段, 指向您的字典路径。
<a
name=
"支持空格"
></a>
<a
name=
"支持空格"
></a>
### 1.
4
添加空格类别
### 1.
3
添加空格类别
如果希望支持识别"空格"类别, 请将yml文件中的
`use_space_char`
字段设置为
`True`
。
如果希望支持识别"空格"类别, 请将yml文件中的
`use_space_char`
字段设置为
`True`
。
...
...
doc/doc_ch/table_datasets.md
deleted
100644 → 0
View file @
2b6c887a
doc/doc_ch/training.md
View file @
da8991ef
...
@@ -81,13 +81,13 @@ Optimizer:
...
@@ -81,13 +81,13 @@ Optimizer:
- 检测:
- 检测:
- 英文数据集,ICDAR2015
- 英文数据集,ICDAR2015
- 中文数据集,LSVT街景数据集训练数据3w张图片
- 中文数据集,LSVT街景数据集训练数据3w张图片
- 识别:
- 识别:
- 英文数据集,MJSynth和SynthText合成数据,数据量上千万。
- 英文数据集,MJSynth和SynthText合成数据,数据量上千万。
- 中文数据集,LSVT街景数据集根据真值将图crop出来,并进行位置校准,总共30w张图像。此外基于LSVT的语料,合成数据500w。
- 中文数据集,LSVT街景数据集根据真值将图crop出来,并进行位置校准,总共30w张图像。此外基于LSVT的语料,合成数据500w。
- 小语种数据集,使用不同语料和字体,分别生成了100w合成数据集,并使用ICDAR-MLT作为验证集。
- 小语种数据集,使用不同语料和字体,分别生成了100w合成数据集,并使用ICDAR-MLT作为验证集。
其中,公开数据集都是开源的,用户可自行搜索下载,也可参考
[
中文数据集
](
.
/datasets.md
)
,合成数据暂不开源,用户可使用开源合成工具自行合成,可参考的合成工具包括
[
text_renderer
](
https://github.com/Sanster/text_renderer
)
、
[
SynthText
](
https://github.com/ankush-me/SynthText
)
、
[
TextRecognitionDataGenerator
](
https://github.com/Belval/TextRecognitionDataGenerator
)
等。
其中,公开数据集都是开源的,用户可自行搜索下载,也可参考
[
中文数据集
](
dataset
/datasets.md
)
,合成数据暂不开源,用户可使用开源合成工具自行合成,可参考的合成工具包括
[
text_renderer
](
https://github.com/Sanster/text_renderer
)
、
[
SynthText
](
https://github.com/ankush-me/SynthText
)
、
[
TextRecognitionDataGenerator
](
https://github.com/Belval/TextRecognitionDataGenerator
)
等。
<a
name=
"垂类场景"
></a>
<a
name=
"垂类场景"
></a>
### 3.2 垂类场景
### 3.2 垂类场景
...
@@ -120,17 +120,17 @@ PaddleOCR主要聚焦通用OCR,如果有垂类需求,您可以用PaddleOCR+
...
@@ -120,17 +120,17 @@ PaddleOCR主要聚焦通用OCR,如果有垂类需求,您可以用PaddleOCR+
**Q**
:训练CRNN识别时,如何选择合适的网络输入shape?
**Q**
:训练CRNN识别时,如何选择合适的网络输入shape?
A:一般高度采用32,最长宽度的选择,有两种方法:
A:一般高度采用32,最长宽度的选择,有两种方法:
(1)统计训练样本图像的宽高比分布。最大宽高比的选取考虑满足80%的训练样本。
(1)统计训练样本图像的宽高比分布。最大宽高比的选取考虑满足80%的训练样本。
(2)统计训练样本文字数目。最长字符数目的选取考虑满足80%的训练样本。然后中文字符长宽比近似认为是1,英文认为3:1,预估一个最长宽度。
(2)统计训练样本文字数目。最长字符数目的选取考虑满足80%的训练样本。然后中文字符长宽比近似认为是1,英文认为3:1,预估一个最长宽度。
**Q**
:识别训练时,训练集精度已经到达90了,但验证集精度一直在70,涨不上去怎么办?
**Q**
:识别训练时,训练集精度已经到达90了,但验证集精度一直在70,涨不上去怎么办?
A:训练集精度90,测试集70多的话,应该是过拟合了,有两个可尝试的方法:
A:训练集精度90,测试集70多的话,应该是过拟合了,有两个可尝试的方法:
(1)加入更多的增广方式或者调大增广prob的[概率](https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/ppocr/data/imaug/rec_img_aug.py#L341),默认为0.4。
(1)加入更多的增广方式或者调大增广prob的[概率](https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/ppocr/data/imaug/rec_img_aug.py#L341),默认为0.4。
(2)调大系统的[l2 dcay值](https://github.com/PaddlePaddle/PaddleOCR/blob/a501603d54ff5513fc4fc760319472e59da25424/configs/rec/ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yml#L47)
(2)调大系统的[l2 dcay值](https://github.com/PaddlePaddle/PaddleOCR/blob/a501603d54ff5513fc4fc760319472e59da25424/configs/rec/ch_ppocr_v1.1/rec_chinese_lite_train_v1.1.yml#L47)
**Q**
: 识别模型训练时,loss能正常下降,但acc一直为0
**Q**
: 识别模型训练时,loss能正常下降,但acc一直为0
...
@@ -141,12 +141,11 @@ PaddleOCR主要聚焦通用OCR,如果有垂类需求,您可以用PaddleOCR+
...
@@ -141,12 +141,11 @@ PaddleOCR主要聚焦通用OCR,如果有垂类需求,您可以用PaddleOCR+
***
***
具体的训练教程可点击下方链接跳转:
具体的训练教程可点击下方链接跳转:
-
[
文本检测模型训练
](
./detection.md
)
-
[
文本检测模型训练
](
./detection.md
)
-
[
文本识别模型训练
](
./recognition.md
)
-
[
文本识别模型训练
](
./recognition.md
)
-
[
文本方向分类器训练
](
./angle_class.md
)
-
[
文本方向分类器训练
](
./angle_class.md
)
-
[
知识蒸馏
](
./knowledge_distillation.md
)
-
[
知识蒸馏
](
./knowledge_distillation.md
)
doc/doc_ch/update.md
View file @
da8991ef
...
@@ -22,7 +22,7 @@
...
@@ -22,7 +22,7 @@
-
2020.7.15 整理OCR相关数据集、常用数据标注以及合成工具
-
2020.7.15 整理OCR相关数据集、常用数据标注以及合成工具
-
2020.7.9 添加支持空格的识别模型,识别效果,预测及训练方式请参考快速开始和文本识别训练相关文档
-
2020.7.9 添加支持空格的识别模型,识别效果,预测及训练方式请参考快速开始和文本识别训练相关文档
-
2020.7.9 添加数据增强、学习率衰减策略,具体参考
[
配置文件
](
./config.md
)
-
2020.7.9 添加数据增强、学习率衰减策略,具体参考
[
配置文件
](
./config.md
)
-
2020.6.8 添加
[
数据集
](
.
/datasets.md
)
,并保持持续更新
-
2020.6.8 添加
[
数据集
](
dataset
/datasets.md
)
,并保持持续更新
-
2020.6.5 支持
`attetnion`
模型导出
`inference_model`
-
2020.6.5 支持
`attetnion`
模型导出
`inference_model`
-
2020.6.5 支持单独预测识别时,输出结果得分
-
2020.6.5 支持单独预测识别时,输出结果得分
-
2020.5.30 提供超轻量级中文OCR在线体验
-
2020.5.30 提供超轻量级中文OCR在线体验
...
...
Prev
1
2
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment