README_ch.md 5.0 KB
Newer Older
A
an1018 已提交
1 2 3 4 5
[English](README.md) | 简体中文

# 版面恢复使用说明

- [1. 简介](#1)
A
an1018 已提交
6 7 8 9 10
- [2. 安装](#2)
  - [2.1 安装依赖](#2.1)
  - [2.2 安装PaddleOCR](#2.2)

- [3. 使用](#3)
A
an1018 已提交
11 12
  - [3.1 下载模型](#3.1)
  - [3.2 版面恢复](#3.2)
A
an1018 已提交
13 14 15 16


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

A
an1018 已提交
17
## 1. 简介
A
an1018 已提交
18 19 20

版面恢复就是在OCR识别后,内容仍然像原文档图片那样排列着,段落不变、顺序不变的输出到word文档中等。

A
an1018 已提交
21
版面恢复结合了[版面分析](../layout/README_ch.md)[表格识别](../table/README_ch.md)技术,从而更好地恢复图片、表格、标题等内容,支持pdf文档、文档图片格式的输入文件,下图展示了版面恢复的结果:
A
an1018 已提交
22 23

<div align="center">
A
an1018 已提交
24
<img src="../docs/recovery/recovery.jpg"  width = "700" />
A
an1018 已提交
25
</div>
A
an1018 已提交
26

A
an1018 已提交
27 28
<a name="2"></a>

A
an1018 已提交
29 30 31 32 33 34 35 36 37 38 39 40
## 2. 安装

<a name="2.1"></a>

### 2.1 安装依赖

- **(1) 安装PaddlePaddle**

```bash
python3 -m pip install --upgrade pip

# GPU安装
A
an1018 已提交
41
python3 -m pip install "paddlepaddle-gpu" -i https://mirror.baidu.com/pypi/simple
A
an1018 已提交
42 43

# CPU安装
A
an1018 已提交
44
python3 -m pip install "paddlepaddle" -i https://mirror.baidu.com/pypi/simple
A
an1018 已提交
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73

```

更多需求,请参照[安装文档](https://www.paddlepaddle.org.cn/install/quick)中的说明进行操作。

<a name="2.2"></a>

### 2.2 安装PaddleOCR

- **(1)下载版面恢复源码**

```bash
【推荐】git clone https://github.com/PaddlePaddle/PaddleOCR

# 如果因为网络问题无法pull成功,也可选择使用码云上的托管:
git clone https://gitee.com/paddlepaddle/PaddleOCR

# 注:码云托管代码可能无法实时同步本github项目更新,存在3~5天延时,请优先使用推荐方式。
```

- **(2)安装recovery的`requirements`**

```bash
python3 -m pip install -r ppstructure/recovery/requirements.txt
```

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

## 3. 使用
A
an1018 已提交
74

A
an1018 已提交
75
<a name="3.1"></a>
A
an1018 已提交
76

A
an1018 已提交
77 78 79 80
### 3.1 下载模型

如果输入为英文文档类型,下载英文模型

A
an1018 已提交
81
```bash
A
an1018 已提交
82 83 84 85
cd PaddleOCR/ppstructure

# 下载模型
mkdir inference && cd inference
A
an1018 已提交
86 87 88 89 90 91
# 下载英文超轻量PP-OCRv3检测模型并解压
wget https://paddleocr.bj.bcebos.com/PP-OCRv3/english/en_PP-OCRv3_det_infer.tar && tar xf en_PP-OCRv3_det_infer.tar
# 下载英文超轻量PP-OCRv3识别模型并解压
wget https://paddleocr.bj.bcebos.com/PP-OCRv3/english/en_PP-OCRv3_rec_infer.tar && tar xf en_PP-OCRv3_rec_infer.tar
# 下载英文表格识别模型并解压
wget https://paddleocr.bj.bcebos.com/ppstructure/models/slanet/en_ppstructure_mobile_v2.0_SLANet_infer.tar && tar xf en_ppstructure_mobile_v2.0_SLANet_infer.tar
U
user1018 已提交
92
# 下载英文版面分析模型
A
an1018 已提交
93
wget https://paddleocr.bj.bcebos.com/ppstructure/models/layout/picodet_lcnet_x1_0_fgd_layout_infer.tar && tar xf picodet_lcnet_x1_0_fgd_layout_infer.tar
A
an1018 已提交
94
cd ..
A
an1018 已提交
95 96 97
```

如果输入为中文文档类型,在下述链接中下载中文模型即可:
U
user1018 已提交
98

A
an1018 已提交
99 100 101 102 103 104 105 106
[PP-OCRv3中英文超轻量文本检测和识别模型](https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/README_ch.md#pp-ocr%E7%B3%BB%E5%88%97%E6%A8%A1%E5%9E%8B%E5%88%97%E8%A1%A8%E6%9B%B4%E6%96%B0%E4%B8%AD)[表格识别模型](https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/ppstructure/docs/models_list.md#22-表格识别模型)[版面分析模型](https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/ppstructure/docs/models_list.md#1-版面分析模型)

<a name="3.2"></a>

### 3.2 版面恢复

使用下载的模型恢复给定文档的版面,以英文模型为例,执行如下命令:

A
an1018 已提交
107
```bash
U
user1018 已提交
108 109 110
python3 predict_system.py \
    --image_dir=./docs/table/1.png \
    --det_model_dir=inference/en_PP-OCRv3_det_infer \
A
an1018 已提交
111
    --rec_model_dir=inference/en_PP-OCRv3_rec_infer \
U
user1018 已提交
112
    --rec_char_dict_path=../ppocr/utils/en_dict.txt \
A
an1018 已提交
113
    --table_model_dir=inference/en_ppstructure_mobile_v2.0_SLANet_infer \
U
user1018 已提交
114
    --table_char_dict_path=../ppocr/utils/dict/table_structure_dict.txt \
A
an1018 已提交
115
    --layout_model_dir=inference/picodet_lcnet_x1_0_fgd_layout_infer \
U
user1018 已提交
116 117 118
    --layout_dict_path=../ppocr/utils/dict/layout_dict/layout_publaynet_dict.txt \
    --vis_font_path=../doc/fonts/simfang.ttf \
    --recovery=True \
A
an1018 已提交
119 120
    --save_pdf=False \
    --output=../output/
A
an1018 已提交
121 122
```

A
an1018 已提交
123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
运行完成后,恢复版面的docx文档会保存到`output`字段指定的目录下

字段含义:

- image_dir:测试文件,可以是图片、图片目录、pdf文件、pdf文件目录
- det_model_dir:OCR检测模型路径
- rec_model_dir:OCR识别模型路径
- rec_char_dict_path:OCR识别字典,如果更换为中文模型,需要更改为"../ppocr/utils/ppocr_keys_v1.txt",如果您在自己的数据集上训练的模型,则更改为训练的字典的文件
- table_model_dir:表格识别模型路径
- table_char_dict_path:表格识别字典,如果更换为中文模型,不需要更换字典
- layout_model_dir:版面分析模型路径
- layout_dict_path:版面分析字典,如果更换为中文模型,需要更改为"../ppocr/utils/dict/layout_dict/layout_cdla_dict.txt"
- recovery:是否进行版面恢复,默认False
- save_pdf:进行版面恢复导出docx文档的同时,是否保存为pdf文件,默认为False
- output:版面恢复结果保存路径