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

- [Getting Started](#getting-started)
  - [1.  Introduction](#1)
A
an1018 已提交
5 6 7 8
  - [2. Install](#2)
    - [2.1 Installation dependencies](#2.1)
    - [2.2 Install PaddleOCR](#2.2)
  - [3. Quick Start](#3)
A
an1018 已提交
9 10
    - [3.1 Download models](#3.1)
    - [3.2 Layout recovery](#3.2)
A
an1018 已提交
11 12 13

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

A
an1018 已提交
14
## 1. Introduction
A
an1018 已提交
15 16 17 18 19 20 21

Layout recovery means that after OCR recognition, the content is still arranged like the original document pictures, and the paragraphs are output to word document in the same order.

Layout recovery combines [layout analysis](../layout/README.md)[table recognition](../table/README.md) to better recover images, tables, titles, etc.
The following figure shows the result:

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

A
an1018 已提交
25 26
<a name="2"></a>

A
an1018 已提交
27 28 29 30 31 32 33 34 35 36 37 38
## 2. Install

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

### 2.1 Install dependencies

- **(1) Install PaddlePaddle**

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

# GPU installation
A
an1018 已提交
39
python3 -m pip install "paddlepaddle-gpu" -i https://mirror.baidu.com/pypi/simple
A
an1018 已提交
40 41

# CPU installation
A
an1018 已提交
42
python3 -m pip install "paddlepaddle" -i https://mirror.baidu.com/pypi/simple
A
an1018 已提交
43 44 45

````

A
an1018 已提交
46
For more requirements, please refer to the instructions in [Installation Documentation](https://www.paddlepaddle.org.cn/en/install/quick?docurl=/documentation/docs/en/install/pip/macos-pip_en.html).
A
an1018 已提交
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

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

### 2.2 Install PaddleOCR

- **(1) Download source code**

```bash
[Recommended] git clone https://github.com/PaddlePaddle/PaddleOCR

# If the pull cannot be successful due to network problems, you can also choose to use the hosting on the code cloud:
git clone https://gitee.com/paddlepaddle/PaddleOCR

# Note: Code cloud hosting code may not be able to synchronize the update of this github project in real time, there is a delay of 3 to 5 days, please use the recommended method first.
````

- **(2) Install recovery's `requirements`**

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

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

## 3. Quick Start
A
an1018 已提交
72

A
an1018 已提交
73
<a name="3.1"></a>
A
an1018 已提交
74
### 3.1 Download models
A
an1018 已提交
75 76 77

If input is English document, download English models:

A
an1018 已提交
78
```bash
A
an1018 已提交
79 80 81 82 83
cd PaddleOCR/ppstructure

# download model
mkdir inference && cd inference
# Download the detection model of the ultra-lightweight English PP-OCRv3 model and unzip it
A
an1018 已提交
84
https://paddleocr.bj.bcebos.com/PP-OCRv3/english/en_PP-OCRv3_det_infer.tar && tar xf en_PP-OCRv3_det_infer.tar
A
an1018 已提交
85
# Download the recognition model of the ultra-lightweight English PP-OCRv3 model and unzip it
A
an1018 已提交
86
wget https://paddleocr.bj.bcebos.com/PP-OCRv3/english/en_PP-OCRv3_rec_infer.tar && tar xf en_PP-OCRv3_rec_infer.tar
A
an1018 已提交
87
# Download the ultra-lightweight English table inch model and unzip it
A
an1018 已提交
88
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 已提交
89
# Download the layout model of publaynet dataset and unzip it
A
an1018 已提交
90
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 已提交
91
cd ..
A
an1018 已提交
92 93 94 95 96
```
If input is Chinese document,download Chinese models:
[Chinese and English ultra-lightweight PP-OCRv3 model](https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/README.md#pp-ocr-series-model-listupdate-on-september-8th)、[表格识别模型](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>
A
an1018 已提交
97
### 3.2 Layout recovery
A
an1018 已提交
98 99 100


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

A
an1018 已提交
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
After running, the docx of each picture will be saved in the directory specified by the output field

Field:

- image_dir:test file测试文件, can be picture, picture directory, pdf file, pdf file directory
- det_model_dir:OCR detection model path
- rec_model_dir:OCR recognition model path
- rec_char_dict_path:OCR recognition dict path. If the Chinese model is used, change to "../ppocr/utils/ppocr_keys_v1.txt". And if you trained the model on your own dataset, change to the trained dictionary
- table_model_dir:tabel recognition model path
- table_char_dict_path:tabel recognition dict path. If the Chinese model is used, no need to change
- layout_model_dir:layout analysis model path
- layout_dict_path:layout analysis dict path. If the Chinese model is used, change to "../ppocr/utils/dict/layout_dict/layout_cdla_dict.txt"
- recovery:whether to enable layout of recovery, default False
- save_pdf:when recovery file, whether to save pdf file, default False
- output:save the recovery result path