quickstart.md 7.0 KB
Newer Older
文幕地方's avatar
文幕地方 已提交
1 2
# PP-Structure 快速开始

Z
zhoujun 已提交
3 4 5 6 7 8 9 10
- [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脚本使用)
文幕地方's avatar
文幕地方 已提交
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

<a name="1"></a>

## 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 .

```

<a name="2"></a>

## 2. 便捷使用

<a name="21"></a>

### 2.1 命令行使用

* 版面分析+表格识别
Z
zhoujun 已提交
36

文幕地方's avatar
文幕地方 已提交
37 38 39 40 41 42 43 44 45 46 47 48 49
```bash
paddleocr --image_dir=../doc/table/1.png --type=structure
```

* VQA

coming soon

<a name="22"></a>

### 2.2 Python脚本使用

* 版面分析+表格识别
Z
zhoujun 已提交
50

文幕地方's avatar
文幕地方 已提交
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
```python
import os
import cv2
from paddleocr import PPStructure,draw_structure_result,save_structure_res

table_engine = PPStructure(show_log=True)

save_folder = './output/table'
img_path = '../doc/table/1.png'
img = cv2.imread(img_path)
result = table_engine(img)
save_structure_res(result, save_folder,os.path.basename(img_path).split('.')[0])

for line in result:
    line.pop('img')
    print(line)

from PIL import Image

font_path = '../doc/fonts/simfang.ttf' # PaddleOCR下提供字体包
image = Image.open(img_path).convert('RGB')
im_show = draw_structure_result(image, result,font_path=font_path)
im_show = Image.fromarray(im_show)
im_show.save('result.jpg')
```

* VQA

comming soon

<a name="23"></a>

### 2.3 返回结果说明
Z
zhoujun 已提交
84

文幕地方's avatar
文幕地方 已提交
85 86 87
PP-Structure的返回结果为一个dict组成的list,示例如下

* 版面分析+表格识别
Z
zhoujun 已提交
88

文幕地方's avatar
文幕地方 已提交
89 90 91 92 93 94 95 96 97
```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)])
  }
]
```
Z
zhoujun 已提交
98

文幕地方's avatar
文幕地方 已提交
99 100
dict 里各个字段说明如下

Z
zhoujun 已提交
101 102 103 104 105
| 字段 | 说明                                                                                                                       |
| ---- | -------------------------------------------------------------------------------------------------------------------------- |
| type | 图片区域的类型                                                                                                             |
| bbox | 图片区域的在原图的坐标,分别[左上角x,左上角y,右下角x,右下角y]                                                           |
| res  | 图片区域的OCR或表格识别结果。`<br>` 表格: 表格的HTML字符串; `<br>` OCR: 一个包含各个单行文字的检测坐标和识别结果的元组 |
文幕地方's avatar
文幕地方 已提交
106 107 108 109 110 111 112 113 114

* VQA

comming soon

<a name="24"></a>

### 2.4 参数说明

Z
zhoujun 已提交
115 116 117 118 119 120 121 122 123 124
| 字段               | 说明                                                                 | 默认值                                       |
| ------------------ | -------------------------------------------------------------------- | -------------------------------------------- |
| output             | excel和识别结果保存的地址                                            | ./output/table                               |
| table_max_len      | 表格结构模型预测时,图像的长边resize尺度                             | 488                                          |
| table_model_dir    | 表格结构模型 inference 模型地址                                      | None                                         |
| table_char_type    | 表格结构模型所用字典地址                                             | ../ppocr/utils/dict/table_structure_dict.txt |
| model_name_or_path | VQA SER模型地址                                                      | None                                         |
| max_seq_length     | VQA SER模型最大支持token长度                                         | 512                                          |
| label_map_path     | VQA SER 标签文件地址                                                 | ./vqa/labels/labels_ser.txt                  |
| mode               | pipeline预测模式,structure: 版面分析+表格识别; vqa: ser文档信息抽取 | structure                                    |
文幕地方's avatar
文幕地方 已提交
125 126 127

大部分参数和paddleocr whl包保持一致,见 [whl包文档](../doc/doc_ch/whl.md)

Z
zhoujun 已提交
128
运行完成后,每张图片会在 `output`字段指定的目录下有一个同名目录,图片里的每个表格会存储为一个excel,图片区域会被裁剪之后保存下来,excel文件和图片名名为表格在图片里的坐标。
文幕地方's avatar
文幕地方 已提交
129 130 131 132 133 134 135

<a name="3"></a>

## 3. Python脚本使用

* 版面分析+表格识别

文幕地方's avatar
fix  
文幕地方 已提交
136
```bash
文幕地方's avatar
文幕地方 已提交
137 138 139 140
cd ppstructure

# 下载模型
mkdir inference && cd inference
Z
zhoujun 已提交
141 142 143 144 145
# 下载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
# 下载超轻量级英文表格预测模型并解压
文幕地方's avatar
文幕地方 已提交
146 147 148
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 ..

Z
zhoujun 已提交
149 150
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 \
文幕地方's avatar
文幕地方 已提交
151 152 153 154 155 156 157
                          --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
```
Z
zhoujun 已提交
158 159

运行完成后,每张图片会在 `output`字段指定的目录下的 `talbe`目录下有一个同名目录,图片里的每个表格会存储为一个excel,图片区域会被裁剪之后保存下来,excel文件和图片名名为表格在图片里的坐标。
文幕地方's avatar
文幕地方 已提交
160 161 162

* VQA

文幕地方's avatar
fix  
文幕地方 已提交
163
```bash
文幕地方's avatar
文幕地方 已提交
164 165 166 167 168 169 170 171 172 173 174 175 176
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
```
Z
zhoujun 已提交
177 178

运行完成后,每张图片会在 `output`字段指定的目录下的 `vqa`目录下存放可视化之后的图片,图片名和输入图片名一致。