From 7f604d01341053b72803e46f4d691fca6e1bbde4 Mon Sep 17 00:00:00 2001 From: MissPenguin Date: Mon, 18 Apr 2022 07:28:22 +0000 Subject: [PATCH] update --- README_ch.md | 9 +- doc/doc_ch/quickstart.md | 64 +-------- .../docs => doc/ppstructure}/imgs/0.png | Bin doc/ppstructure/inference.md | 50 +++++++ .../docs => doc/ppstructure}/installation.md | 0 {ppstructure/docs => doc/ppstructure}/kie.md | 0 .../docs => doc/ppstructure}/kie_en.md | 0 .../docs => doc/ppstructure}/models_list.md | 23 ++-- .../docs => doc/ppstructure}/quickstart.md | 122 +++++++----------- 9 files changed, 124 insertions(+), 144 deletions(-) rename {ppstructure/docs => doc/ppstructure}/imgs/0.png (100%) create mode 100644 doc/ppstructure/inference.md rename {ppstructure/docs => doc/ppstructure}/installation.md (100%) rename {ppstructure/docs => doc/ppstructure}/kie.md (100%) rename {ppstructure/docs => doc/ppstructure}/kie_en.md (100%) rename {ppstructure/docs => doc/ppstructure}/models_list.md (91%) rename {ppstructure/docs => doc/ppstructure}/quickstart.md (55%) diff --git a/README_ch.md b/README_ch.md index fa9c89e1..df1c50ff 100755 --- a/README_ch.md +++ b/README_ch.md @@ -75,12 +75,15 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力 | ------- | ------- | ------- | -------- | --------- | -------- | | | | | | | | +更多模型下载(包括多语言),可以参考[PP-Structure 系列模型下载](./doc/ppstructure/models_list.md) + ## 文档教程 - [运行环境准备](./doc/doc_ch/environment.md) - [快速开始(中英文/多语言/文档分析)](./doc/doc_ch/quickstart.md) - [PP-OCR文本检测识别🔥](./doc/doc_ch/ppocr_introduction.md) + - [快速开始](./doc/doc_ch/quickstart.md) - [模型库](./doc/doc_ch/models_list.md) - [模型训练](./doc/doc_ch/training.md) - [文本检测](./doc/doc_ch/detection.md) @@ -98,14 +101,16 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力 - [Paddle2ONNX模型转化与预测](./deploy/paddle2onnx/readme.md) - [Benchmark](./doc/doc_ch/benchmark.md) - [PP-Structure文档分析🔥](./ppstructure/README_ch.md) - - [模型库](./doc/doc_ch/models_list_structrure.md) + - [快速开始](./doc/ppstructure/quickstart.md) + - [模型库](./doc/ppstructure/models_list.md) - [模型训练](./doc/doc_ch/training.md) - [版面分析](./ppstructure/layout/README_ch.md) - [表格识别](./ppstructure/table/README_ch.md) - - [关键信息提取](./ppstructure/docs/kie.md) + - [关键信息提取](./doc/ppstructure/kie.md) - [DocVQA](./ppstructure/docs/kie.md) - [推理部署](./deploy/readme_ch.md) - [基于Python预测引擎推理](./doc/doc_ch/inference_ppstructure.md) + - [基于C++预测引擎推理](./doc/doc_ch/inference_ppstructure.md) - [服务化部署](./deploy/pdserving/README_CN.md) - [前沿算法与模型🚀](./doc/doc_ch/algorithm.md) - [文本检测算法](./doc/doc_ch/algorithm_overview.md#11-%E6%96%87%E6%9C%AC%E6%A3%80%E6%B5%8B%E7%AE%97%E6%B3%95) diff --git a/doc/doc_ch/quickstart.md b/doc/doc_ch/quickstart.md index 64b5ad39..f41e44bd 100644 --- a/doc/doc_ch/quickstart.md +++ b/doc/doc_ch/quickstart.md @@ -1,4 +1,4 @@ -# PaddleOCR快速开始 +# PaddleOCR 快速开始 - [1. 安装](#1) - [1.1 安装PaddlePaddle](#11) @@ -45,15 +45,7 @@ pip install "paddleocr>=2.0.1" # 推荐使用2.0.1+版本 ``` -- 对于Windows环境用户: - - 直接通过pip安装的shapely库可能出现`[winRrror 126] 找不到指定模块的问题`。建议从[这里](https://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely)下载shapely安装包完成安装, - -- 使用**版面分析**功能时,运行以下命令**安装 Layout-Parser** - - ```bash - pip3 install -U https://paddleocr.bj.bcebos.com/whl/layoutparser-0.0.0-py3-none-any.whl - ``` +- 对于Windows环境用户:直接通过pip安装的shapely库可能出现`[winRrror 126] 找不到指定模块的问题`。建议从[这里](https://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely)下载shapely安装包完成安装。 @@ -155,57 +147,7 @@ paddleocr --image_dir ./imgs_en/254.jpg --lang=en 全部语种及其对应的缩写列表可查看[多语言模型教程](./multi_languages.md) -#### 2.1.3 版面分析 - -版面分析是指对文档图片中的文字、标题、列表、图片和表格5类区域进行划分。对于前三类区域,直接使用OCR模型完成对应区域文字检测与识别,并将结果保存在txt中。对于表格类区域,经过表格结构化处理后,表格图片转换为相同表格样式的Excel文件。图片区域会被单独裁剪成图像。 - -使用PaddleOCR的版面分析功能,需要指定`--type=structure` - -```bash -paddleocr --image_dir=./table/1.png --type=structure -``` - -- **返回结果说明** - - PP-Structure的返回结果为一个dict组成的list,示例如下 - - ```shell - [{ 'type': 'Text', - 'bbox': [34, 432, 345, 462], - 'res': ([[36.0, 437.0, 341.0, 437.0, 341.0, 446.0, 36.0, 447.0], [41.0, 454.0, 125.0, 453.0, 125.0, 459.0, 41.0, 460.0]], - [('Tigure-6. The performance of CNN and IPT models using difforen', 0.90060663), ('Tent ', 0.465441)]) - } - ] - ``` - - 其中各个字段说明如下 - - | 字段 | 说明 | - | ---- | ------------------------------------------------------------ | - | type | 图片区域的类型 | - | bbox | 图片区域的在原图的坐标,分别[左上角x,左上角y,右下角x,右下角y] | - | res | 图片区域的OCR或表格识别结果。
表格: 表格的HTML字符串;
OCR: 一个包含各个单行文字的检测坐标和识别结果的元组 | - - 运行完成后,每张图片会在`output`字段指定的目录下有一个同名目录,图片里的每个表格会存储为一个excel,图片区域会被裁剪之后保存下来,excel文件和图片名为表格在图片里的坐标。 - - ``` - /output/table/1/ - └─ res.txt - └─ [454, 360, 824, 658].xlsx 表格识别结果 - └─ [16, 2, 828, 305].jpg 被裁剪出的图片区域 - └─ [17, 361, 404, 711].xlsx 表格识别结果 - ``` - -- **参数说明** - - | 字段 | 说明 | 默认值 | - | --------------- | ---------------------------------------- | -------------------------------------------- | - | output | excel和识别结果保存的地址 | ./output/table | - | table_max_len | 表格结构模型预测时,图像的长边resize尺度 | 488 | - | table_model_dir | 表格结构模型 inference 模型地址 | None | - | table_char_type | 表格结构模型所用字典地址 | ../ppocr/utils/dict/table_structure_dict.txt | - 大部分参数和paddleocr whl包保持一致,见 [whl包文档](./whl.md) @@ -291,4 +233,4 @@ im_show.save('result.jpg') 通过本节内容,相信您已经熟练掌握PaddleOCR whl包的使用方法并获得了初步效果。 -PaddleOCR是一套丰富领先实用的OCR工具库,打通数据、模型训练、压缩和推理部署全流程,因此在[下一节](./paddleOCR_overview.md)中我们将首先为您介绍PaddleOCR的全景图,然后克隆PaddleOCR项目,正式开启PaddleOCR的应用之旅。 +PaddleOCR是一套丰富领先实用的OCR工具库,打通数据、模型训练、压缩和推理部署全流程,您可以参考[文档教程](../../README_ch.md#文档教程),正式开启PaddleOCR的应用之旅。 diff --git a/ppstructure/docs/imgs/0.png b/doc/ppstructure/imgs/0.png similarity index 100% rename from ppstructure/docs/imgs/0.png rename to doc/ppstructure/imgs/0.png diff --git a/doc/ppstructure/inference.md b/doc/ppstructure/inference.md new file mode 100644 index 00000000..bfcdbd0c --- /dev/null +++ b/doc/ppstructure/inference.md @@ -0,0 +1,50 @@ +# 基于Python预测引擎推理 + +- [版面分析+表格识别](#1) +- [DocVQA](#2) + + +## 1. 版面分析+表格识别 + +```bash +cd ppstructure + +# 下载模型 +mkdir inference && cd inference +# 下载PP-OCRv2文本检测模型并解压 +wget https://paddleocr.bj.bcebos.com/PP-OCRv2/chinese/ch_PP-OCRv2_det_slim_quant_infer.tar && tar xf ch_PP-OCRv2_det_slim_quant_infer.tar +# 下载PP-OCRv2文本识别模型并解压 +wget https://paddleocr.bj.bcebos.com/PP-OCRv2/chinese/ch_PP-OCRv2_rec_slim_quant_infer.tar && tar xf ch_PP-OCRv2_rec_slim_quant_infer.tar +# 下载超轻量级英文表格预测模型并解压 +wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/table/en_ppocr_mobile_v2.0_table_structure_infer.tar && tar xf en_ppocr_mobile_v2.0_table_structure_infer.tar +cd .. + +python3 predict_system.py --det_model_dir=inference/ch_PP-OCRv2_det_slim_quant_infer \ + --rec_model_dir=inference/ch_PP-OCRv2_rec_slim_quant_infer \ + --table_model_dir=inference/en_ppocr_mobile_v2.0_table_structure_infer \ + --image_dir=../doc/table/1.png \ + --rec_char_dict_path=../ppocr/utils/ppocr_keys_v1.txt \ + --table_char_dict_path=../ppocr/utils/dict/table_structure_dict.txt \ + --output=../output/table \ + --vis_font_path=../doc/fonts/simfang.ttf +``` +运行完成后,每张图片会在`output`字段指定的目录下的`talbe`目录下有一个同名目录,图片里的每个表格会存储为一个excel,图片区域会被裁剪之后保存下来,excel文件和图片名名为表格在图片里的坐标。 + + +## 2. DocVQA + +```bash +cd ppstructure + +# 下载模型 +mkdir inference && cd inference +# 下载SER xfun 模型并解压 +wget https://paddleocr.bj.bcebos.com/pplayout/PP-Layout_v1.0_ser_pretrained.tar && tar xf PP-Layout_v1.0_ser_pretrained.tar +cd .. + +python3 predict_system.py --model_name_or_path=vqa/PP-Layout_v1.0_ser_pretrained/ \ + --mode=vqa \ + --image_dir=vqa/images/input/zh_val_0.jpg \ + --vis_font_path=../doc/fonts/simfang.ttf +``` +运行完成后,每张图片会在`output`字段指定的目录下的`vqa`目录下存放可视化之后的图片,图片名和输入图片名一致。 \ No newline at end of file diff --git a/ppstructure/docs/installation.md b/doc/ppstructure/installation.md similarity index 100% rename from ppstructure/docs/installation.md rename to doc/ppstructure/installation.md diff --git a/ppstructure/docs/kie.md b/doc/ppstructure/kie.md similarity index 100% rename from ppstructure/docs/kie.md rename to doc/ppstructure/kie.md diff --git a/ppstructure/docs/kie_en.md b/doc/ppstructure/kie_en.md similarity index 100% rename from ppstructure/docs/kie_en.md rename to doc/ppstructure/kie_en.md diff --git a/ppstructure/docs/models_list.md b/doc/ppstructure/models_list.md similarity index 91% rename from ppstructure/docs/models_list.md rename to doc/ppstructure/models_list.md index 5de7394d..c7dab999 100644 --- a/ppstructure/docs/models_list.md +++ b/doc/ppstructure/models_list.md @@ -1,15 +1,15 @@ -- [PP-Structure 系列模型列表](#pp-structure-系列模型列表) - - [1. LayoutParser 模型](#1-layoutparser-模型) - - [2. OCR和表格识别模型](#2-ocr和表格识别模型) - - [2.1 OCR](#21-ocr) - - [2.2 表格识别模型](#22-表格识别模型) - - [3. VQA模型](#3-vqa模型) - - [4. KIE模型](#4-kie模型) - # PP-Structure 系列模型列表 +- [1. 版面分析模型](#1) +- [2. OCR和表格识别模型](#2) + - [2.1 OCR](#21) + - [2.2 表格识别模型](#22) +- [3. VQA模型](#3) +- [4. KIE模型](#4) + -## 1. LayoutParser 模型 + +## 1. 版面分析模型 |模型名称|模型简介|下载地址|label_map| | --- | --- | --- | --- | @@ -17,8 +17,10 @@ | ppyolov2_r50vd_dcn_365e_tableBank_word | TableBank Word 数据集训练的版面分析模型,只能检测表格 | [推理模型](https://paddle-model-ecology.bj.bcebos.com/model/layout-parser/ppyolov2_r50vd_dcn_365e_tableBank_word.tar) | {0:"Table"}| | ppyolov2_r50vd_dcn_365e_tableBank_latex | TableBank Latex 数据集训练的版面分析模型,只能检测表格 | [推理模型](https://paddle-model-ecology.bj.bcebos.com/model/layout-parser/ppyolov2_r50vd_dcn_365e_tableBank_latex.tar) | {0:"Table"}| + ## 2. OCR和表格识别模型 + ### 2.1 OCR |模型名称|模型简介|推理模型大小|下载地址| @@ -28,12 +30,14 @@ 如需要使用其他OCR模型,可以在 [PP-OCR model_list](../../doc/doc_ch/models_list.md) 下载模型或者使用自己训练好的模型配置到 `det_model_dir`, `rec_model_dir`两个字段即可。 + ### 2.2 表格识别模型 |模型名称|模型简介|推理模型大小|下载地址| | --- | --- | --- | --- | |en_ppocr_mobile_v2.0_table_structure|PubLayNet数据集训练的英文表格场景的表格结构预测|18.6M|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/table/en_ppocr_mobile_v2.0_table_structure_infer.tar) / [训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.1/table/en_ppocr_mobile_v2.0_table_structure_train.tar) | + ## 3. VQA模型 |模型名称|模型简介|推理模型大小|下载地址| @@ -44,6 +48,7 @@ |re_LayoutLMv2_xfun_zh|基于LayoutLMv2在xfun中文数据集上训练的RE模型|765M|[推理模型 coming soon]() / [训练模型](https://paddleocr.bj.bcebos.com/pplayout/re_LayoutLMv2_xfun_zh.tar) | |ser_LayoutLM_xfun_zh|基于LayoutLM在xfun中文数据集上训练的SER模型|430M|[推理模型 coming soon]() / [训练模型](https://paddleocr.bj.bcebos.com/pplayout/ser_LayoutLM_xfun_zh.tar) | + ## 4. KIE模型 |模型名称|模型简介|模型大小|下载地址| diff --git a/ppstructure/docs/quickstart.md b/doc/ppstructure/quickstart.md similarity index 55% rename from ppstructure/docs/quickstart.md rename to doc/ppstructure/quickstart.md index 52e0c77d..331c96a1 100644 --- a/ppstructure/docs/quickstart.md +++ b/doc/ppstructure/quickstart.md @@ -1,43 +1,55 @@ # PP-Structure 快速开始 -- [PP-Structure 快速开始](#pp-structure-快速开始) - - [1. 安装依赖包](#1-安装依赖包) - - [2. 便捷使用](#2-便捷使用) - - [2.1 命令行使用](#21-命令行使用) - - [2.2 Python脚本使用](#22-python脚本使用) - - [2.3 返回结果说明](#23-返回结果说明) - - [2.4 参数说明](#24-参数说明) - - [3. Python脚本使用](#3-python脚本使用) - +- [1. 安装依赖包](#1) +- [2. 便捷使用](#2) + - [2.1 命令行使用](#21) + - [2.1.1 版面分析+表格识别](#211) + - [2.1.2 DocVQA](#212) + - [2.2 Python脚本使用](#22) + - [2.2.1 版面分析+表格识别](#221) + - [2.2.2 DocVQA](#222) + - [2.3 返回结果说明](#23) + - [2.3.1 版面分析+表格识别](#231) + - [2.3.2 DocVQA](#232) + - [2.4 参数说明](#24) + + + ## 1. 安装依赖包 ```bash -pip install "paddleocr>=2.3.0.2" # 推荐使用2.3.0.2+版本 -pip3 install -U https://paddleocr.bj.bcebos.com/whl/layoutparser-0.0.0-py3-none-any.whl - -# 安装 PaddleNLP -git clone https://github.com/PaddlePaddle/PaddleNLP -b develop -cd PaddleNLP -pip3 install -e . +# 安装 paddleocr,推荐使用2.3.0.2+版本 +pip3 install "paddleocr>=2.3.0.2" +# 安装 版面分析依赖包layoutparser(如不需要版面分析功能,可跳过) +pip3 install -U https://paddleocr.bj.bcebos.com/whl/layoutparser-0.0.0-py3-none-any.whl +# 安装 DocVQA依赖包paddlenlp(如不需要DocVQA功能,可跳过) +pip install paddlenlp ``` + ## 2. 便捷使用 -### 2.1 命令行使用 - -* 版面分析+表格识别 + +### 2.1 命令行使用 + + +#### 2.1.1 版面分析+表格识别 ```bash paddleocr --image_dir=../doc/table/1.png --type=structure ``` -* VQA + +#### 2.1.2 DocVQA 请参考:[文档视觉问答](../vqa/README.md)。 + ### 2.2 Python脚本使用 -* 版面分析+表格识别 + +#### 2.2.1 版面分析+表格识别 + ```python import os import cv2 @@ -64,14 +76,17 @@ im_show = Image.fromarray(im_show) im_show.save('result.jpg') ``` -* VQA + +#### 2.2.2 DocVQA 请参考:[文档视觉问答](../vqa/README.md)。 + ### 2.3 返回结果说明 PP-Structure的返回结果为一个dict组成的list,示例如下 -* 版面分析+表格识别 + +#### 2.3.1 版面分析+表格识别 ```shell [ { 'type': 'Text', @@ -89,7 +104,18 @@ dict 里各个字段说明如下 |bbox|图片区域的在原图的坐标,分别[左上角x,左上角y,右下角x,右下角y]| |res|图片区域的OCR或表格识别结果。
表格: 表格的HTML字符串;
OCR: 一个包含各个单行文字的检测坐标和识别结果的元组| -* VQA +运行完成后,每张图片会在`output`字段指定的目录下有一个同名目录,图片里的每个表格会存储为一个excel,图片区域会被裁剪之后保存下来,excel文件和图片名为表格在图片里的坐标。 + + ``` + /output/table/1/ + └─ res.txt + └─ [454, 360, 824, 658].xlsx 表格识别结果 + └─ [16, 2, 828, 305].jpg 被裁剪出的图片区域 + └─ [17, 361, 404, 711].xlsx 表格识别结果 + ``` + + +#### 2.3.2 DocVQA 请参考:[文档视觉问答](../vqa/README.md)。 @@ -109,51 +135,3 @@ dict 里各个字段说明如下 | mode | pipeline预测模式,structure: 版面分析+表格识别; VQA: SER文档信息抽取 | structure | 大部分参数和PaddleOCR whl包保持一致,见 [whl包文档](../../doc/doc_ch/whl.md) - -运行完成后,每张图片会在`output`字段指定的目录下有一个同名目录,图片里的每个表格会存储为一个excel,图片区域会被裁剪之后保存下来,excel文件和图片名名为表格在图片里的坐标。 - -## 3. Python脚本使用 - -* 版面分析+表格识别 - -```bash -cd ppstructure - -# 下载模型 -mkdir inference && cd inference -# 下载PP-OCRv2文本检测模型并解压 -wget https://paddleocr.bj.bcebos.com/PP-OCRv2/chinese/ch_PP-OCRv2_det_slim_quant_infer.tar && tar xf ch_PP-OCRv2_det_slim_quant_infer.tar -# 下载PP-OCRv2文本识别模型并解压 -wget https://paddleocr.bj.bcebos.com/PP-OCRv2/chinese/ch_PP-OCRv2_rec_slim_quant_infer.tar && tar xf ch_PP-OCRv2_rec_slim_quant_infer.tar -# 下载超轻量级英文表格预测模型并解压 -wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/table/en_ppocr_mobile_v2.0_table_structure_infer.tar && tar xf en_ppocr_mobile_v2.0_table_structure_infer.tar -cd .. - -python3 predict_system.py --det_model_dir=inference/ch_PP-OCRv2_det_slim_quant_infer \ - --rec_model_dir=inference/ch_PP-OCRv2_rec_slim_quant_infer \ - --table_model_dir=inference/en_ppocr_mobile_v2.0_table_structure_infer \ - --image_dir=../doc/table/1.png \ - --rec_char_dict_path=../ppocr/utils/ppocr_keys_v1.txt \ - --table_char_dict_path=../ppocr/utils/dict/table_structure_dict.txt \ - --output=../output/table \ - --vis_font_path=../doc/fonts/simfang.ttf -``` -运行完成后,每张图片会在`output`字段指定的目录下的`talbe`目录下有一个同名目录,图片里的每个表格会存储为一个excel,图片区域会被裁剪之后保存下来,excel文件和图片名名为表格在图片里的坐标。 - -* VQA - -```bash -cd ppstructure - -# 下载模型 -mkdir inference && cd inference -# 下载SER xfun 模型并解压 -wget https://paddleocr.bj.bcebos.com/pplayout/PP-Layout_v1.0_ser_pretrained.tar && tar xf PP-Layout_v1.0_ser_pretrained.tar -cd .. - -python3 predict_system.py --model_name_or_path=vqa/PP-Layout_v1.0_ser_pretrained/ \ - --mode=vqa \ - --image_dir=vqa/images/input/zh_val_0.jpg \ - --vis_font_path=../doc/fonts/simfang.ttf -``` -运行完成后,每张图片会在`output`字段指定的目录下的`vqa`目录下存放可视化之后的图片,图片名和输入图片名一致。 -- GitLab