README_ch.md 2.8 KB
Newer Older
W
WenmuZhou 已提交
1 2
# PaddleStructure

文幕地方's avatar
文幕地方 已提交
3 4
安装layoutparser
```sh
W
WenmuZhou 已提交
5
pip3 install https://paddleocr.bj.bcebos.com/whl/layoutparser-0.0.0-py3-none-any.whl
文幕地方's avatar
文幕地方 已提交
6 7
```

W
WenmuZhou 已提交
8
## 1. pipeline介绍
W
WenmuZhou 已提交
9 10

PaddleStructure 是一个用于复杂板式文字OCR的工具包,流程如下
W
WenmuZhou 已提交
11
![pipeline](../doc/table/pipeline.jpg)
W
WenmuZhou 已提交
12 13 14 15 16 17 18 19 20 21 22 23

在PaddleStructure中,图片会先经由layoutparser进行版面分析,在版面分析中,会对图片里的区域进行分类,根据根据类别进行对于的ocr流程。

目前layoutparser会输出五个类别:
1. Text
2. Title
3. Figure
4. List
5. Table
   
1-4类走传统的OCR流程,5走表格的OCR流程。

W
WenmuZhou 已提交
24
## 2. LayoutParser
W
WenmuZhou 已提交
25

W
WenmuZhou 已提交
26
[文档](layout/README.md)
W
WenmuZhou 已提交
27

W
WenmuZhou 已提交
28
## 3. Table OCR
W
WenmuZhou 已提交
29 30 31

[文档](table/README_ch.md)

W
opt doc  
WenmuZhou 已提交
32
## 4. 预测引擎推理
W
WenmuZhou 已提交
33

W
opt doc  
WenmuZhou 已提交
34 35
使用如下命令即可完成预测引擎的推理
```python
W
WenmuZhou 已提交
36
python3 predict_system.py --det_model_dir=path/to/det_model_dir --rec_model_dir=path/to/rec_model_dir --table_model_dir=path/to/table_model_dir --image_dir=../doc/table/1.png --rec_char_dict_path=../ppocr/utils/dict/table_dict.txt --table_char_dict_path=../ppocr/utils/dict/table_structure_dict.txt --rec_char_type=EN --det_limit_side_len=736 --det_limit_type=min --output ../output/table
W
opt doc  
WenmuZhou 已提交
37 38 39 40 41 42
```
运行完成后,每张图片会output字段指定的目录下有一个同名目录,图片里的每个表格会存储为一个excel,excel文件名为表格在图片里的坐标。

## 5. PaddleStructure whl包介绍

### 5.1 使用
W
WenmuZhou 已提交
43

W
opt doc  
WenmuZhou 已提交
44
5.1.1 代码使用
W
WenmuZhou 已提交
45
```python
W
WenmuZhou 已提交
46
import os
W
WenmuZhou 已提交
47
import cv2
W
WenmuZhou 已提交
48
from paddlestructure import PaddleStructure,draw_result,save_res
W
WenmuZhou 已提交
49

W
WenmuZhou 已提交
50
table_engine = PaddleStructure(show_log=True)
W
WenmuZhou 已提交
51

W
WenmuZhou 已提交
52
save_folder = './output/table'
W
WenmuZhou 已提交
53 54 55
img_path = '../doc/table/1.png'
img = cv2.imread(img_path)
result = table_engine(img)
W
WenmuZhou 已提交
56 57
save_res(result, save_folder,os.path.basename(img_path).split('.')[0])

W
WenmuZhou 已提交
58 59 60 61 62
for line in result:
    print(line)

from PIL import Image

W
WenmuZhou 已提交
63
font_path = 'path/to/PaddleOCR/doc/fonts/simfang.ttf'
W
WenmuZhou 已提交
64 65 66 67 68 69
image = Image.open(img_path).convert('RGB')
im_show = draw_result(image, result,font_path=font_path)
im_show = Image.fromarray(im_show)
im_show.save('result.jpg')
```

W
opt doc  
WenmuZhou 已提交
70
5.1.2 命令行使用
W
WenmuZhou 已提交
71 72 73 74
```bash
paddlestructure --image_dir=../doc/table/1.png
```

W
WenmuZhou 已提交
75 76 77 78 79 80
### 参数说明
大部分参数和paddleocr whl包保持一致,见 [whl包文档](../doc/doc_ch/whl.md)

| 字段                    | 说明                                            | 默认值           |
|------------------------|------------------------------------------------------|------------------|
| output                 | excel和识别结果保存的地址                    | ./output/table            |
W
opt doc  
WenmuZhou 已提交
81 82 83
| table_max_len      |  表格结构模型预测时,图像的长边resize尺度             |  488            |
| table_model_dir      |  表格结构模型 inference 模型地址             |  None            |
| table_char_type      |  表格结构模型所用字典地址             |  ../ppocr/utils/dict/table_structure_dict.tx            |
W
WenmuZhou 已提交
84 85