inference_en.md 22.7 KB
Newer Older
K
Khanh Tran 已提交
1

T
tink2123 已提交
2
# Reasoning based on Python prediction engine
K
Khanh Tran 已提交
3

W
WenmuZhou 已提交
4
The inference model (the model saved by `paddle.jit.save`) is generally a solidified model saved after the model training is completed, and is mostly used to give prediction in deployment.
K
Khanh Tran 已提交
5 6 7

The model saved during the training process is the checkpoints model, which saves the parameters of the model and is mostly used to resume training.

W
WenmuZhou 已提交
8
Compared with the checkpoints model, the inference model will additionally save the structural information of the model. It has superior performance in predicting in deployment and accelerating inferencing, is flexible and convenient, and is suitable for integration with actual systems. For more details, please refer to the document [Classification Framework](https://github.com/PaddlePaddle/PaddleClas/blob/master/docs/zh_CN/extension/paddle_inference.md).
K
Khanh Tran 已提交
9

W
WenmuZhou 已提交
10
Next, we first introduce how to convert a trained model into an inference model, and then we will introduce text detection, text recognition, angle class, and the concatenation of them based on inference model.
K
Khanh Tran 已提交
11

L
licx 已提交
12 13 14
- [CONVERT TRAINING MODEL TO INFERENCE MODEL](#CONVERT)
    - [Convert detection model to inference model](#Convert_detection_model)
    - [Convert recognition model to inference model](#Convert_recognition_model)
W
WenmuZhou 已提交
15 16 17
    - [Convert angle classification model to inference model](#Convert_angle_class_model)


L
licx 已提交
18 19 20 21 22
- [TEXT DETECTION MODEL INFERENCE](#DETECTION_MODEL_INFERENCE)
    - [1. LIGHTWEIGHT CHINESE DETECTION MODEL INFERENCE](#LIGHTWEIGHT_DETECTION)
    - [2. DB TEXT DETECTION MODEL INFERENCE](#DB_DETECTION)
    - [3. EAST TEXT DETECTION MODEL INFERENCE](#EAST_DETECTION)
    - [4. SAST TEXT DETECTION MODEL INFERENCE](#SAST_DETECTION)
W
WenmuZhou 已提交
23 24
    - [5. Multilingual model inference](#Multilingual model inference)

L
licx 已提交
25 26 27 28
- [TEXT RECOGNITION MODEL INFERENCE](#RECOGNITION_MODEL_INFERENCE)
    - [1. LIGHTWEIGHT CHINESE MODEL](#LIGHTWEIGHT_RECOGNITION)
    - [2. CTC-BASED TEXT RECOGNITION MODEL INFERENCE](#CTC-BASED_RECOGNITION)
    - [3. ATTENTION-BASED TEXT RECOGNITION MODEL INFERENCE](#ATTENTION-BASED_RECOGNITION)
W
WenmuZhou 已提交
29 30
    - [4. TEXT RECOGNITION MODEL INFERENCE USING CUSTOM CHARACTERS DICTIONARY](#USING_CUSTOM_CHARACTERS)
    - [5. MULTILINGUAL MODEL INFERENCE](MULTILINGUAL_MODEL_INFERENCE)
W
WenmuZhou 已提交
31 32 33 34 35

- [ANGLE CLASSIFICATION MODEL INFERENCE](#ANGLE_CLASS_MODEL_INFERENCE)
    - [1. ANGLE CLASSIFICATION MODEL INFERENCE](#ANGLE_CLASS_MODEL_INFERENCE)

- [TEXT DETECTION ANGLE CLASSIFICATION AND RECOGNITION INFERENCE CONCATENATION](#CONCATENATION)
L
licx 已提交
36 37
    - [1. LIGHTWEIGHT CHINESE MODEL](#LIGHTWEIGHT_CHINESE_MODEL)
    - [2. OTHER MODELS](#OTHER_MODELS)
W
WenmuZhou 已提交
38

L
licx 已提交
39
<a name="CONVERT"></a>
X
xxxpsyduck 已提交
40
## CONVERT TRAINING MODEL TO INFERENCE MODEL
L
licx 已提交
41
<a name="Convert_detection_model"></a>
X
xxxpsyduck 已提交
42
### Convert detection model to inference model
K
Khanh Tran 已提交
43

X
xxxpsyduck 已提交
44
Download the lightweight Chinese detection model:
K
Khanh Tran 已提交
45
```
W
WenmuZhou 已提交
46
wget -P ./ch_lite/ {link} && tar xf ./ch_lite/{file} -C ./ch_lite/
K
Khanh Tran 已提交
47
```
W
WenmuZhou 已提交
48

K
Khanh Tran 已提交
49 50
The above model is a DB algorithm trained with MobileNetV3 as the backbone. To convert the trained model into an inference model, just run the following command:
```
W
WenmuZhou 已提交
51 52
# -c Set the yml configuration file of the training algorithm, you need to write the path of the training model to be converted into the Global.checkpoints parameter in the configuration file, without adding the file suffixes .pdmodel, .pdopt or .pdparams.
# -o Set the address where the converted model will be saved.
T
tink2123 已提交
53

W
WenmuZhou 已提交
54
python3 tools/export_model.py -c configs/det/det_mv3_db_v1.1.yml -o ./inference/det_db/
K
Khanh Tran 已提交
55
```
W
WenmuZhou 已提交
56

W
WenmuZhou 已提交
57 58
When converting to an inference model, the configuration file used is the same as the configuration file used during training. In addition, you also need to set the `Global.checkpoints` parameter in the configuration file.
After the conversion is successful, there are three files in the model save directory:
K
Khanh Tran 已提交
59 60
```
inference/det_db/
W
WenmuZhou 已提交
61 62 63
    ├── det.pdiparams         # The parameter file of detection inference model which needs to be renamed to params
    ├── det.pdiparams.info    # The parameter information of detection inference model, which can be ignored
    └── det.pdmodel           # The program file of detection inference model which needs to be renamed to model
K
Khanh Tran 已提交
64 65
```

L
licx 已提交
66
<a name="Convert_recognition_model"></a>
X
xxxpsyduck 已提交
67
### Convert recognition model to inference model
K
Khanh Tran 已提交
68

X
xxxpsyduck 已提交
69
Download the lightweight Chinese recognition model:
K
Khanh Tran 已提交
70
```
W
WenmuZhou 已提交
71
wget -P ./ch_lite/ {link} && tar xf ./ch_lite/{file} -C ./ch_lite/
K
Khanh Tran 已提交
72 73 74 75
```

The recognition model is converted to the inference model in the same way as the detection, as follows:
```
W
WenmuZhou 已提交
76 77
# -c Set the yml configuration file of the training algorithm, you need to write the path of the training model to be converted into the Global.checkpoints parameter in the configuration file, without adding the file suffixes .pdmodel, .pdopt or .pdparams.
# -o Set the address where the converted model will be saved.
T
tink2123 已提交
78

W
WenmuZhou 已提交
79
python3 tools/export_model.py -c configs/cls/cls_mv3.yml -o ./inference/cls/
K
Khanh Tran 已提交
80 81 82 83
```

If you have a model trained on your own dataset with a different dictionary file, please make sure that you modify the `character_dict_path` in the configuration file to your dictionary file path.

W
WenmuZhou 已提交
84
After the conversion is successful, there are three files in the model save directory:
K
Khanh Tran 已提交
85
```
W
WenmuZhou 已提交
86 87 88 89
inference/det_db/
    ├── rec.pdiparams         # The parameter file of recognition inference model which needs to be renamed to params
    ├── rec.pdiparams.info    # The parameter information of recognition inference model, which can be ignored
    └── rec.pdmodel           # The program file of detection recognition model which needs to be renamed to model
K
Khanh Tran 已提交
90 91
```

W
WenmuZhou 已提交
92 93 94 95 96
<a name="Convert_angle_class_model"></a>
### Convert angle classification model to inference model

Download the angle classification model:
```
W
WenmuZhou 已提交
97
wget -P ./ch_lite/ {link} && tar xf ./ch_lite/{file} -C ./ch_lite/
W
WenmuZhou 已提交
98 99 100 101
```

The angle classification model is converted to the inference model in the same way as the detection, as follows:
```
W
WenmuZhou 已提交
102 103
# -c Set the yml configuration file of the training algorithm, you need to write the path of the training model to be converted into the Global.checkpoints parameter in the configuration file, without adding the file suffixes .pdmodel, .pdopt or .pdparams.
# -o Set the address where the converted model will be saved.
W
WenmuZhou 已提交
104

W
WenmuZhou 已提交
105
python3 tools/export_model.py -c configs/cls/cls_mv3.yml -o ./inference/cls/
W
WenmuZhou 已提交
106 107 108 109 110 111 112 113 114 115
```

After the conversion is successful, there are two files in the directory:
```
/inference/cls/
  └─  model     Identify the saved model files
  └─  params    Identify the parameter files of the inference model
```


L
licx 已提交
116
<a name="DETECTION_MODEL_INFERENCE"></a>
X
xxxpsyduck 已提交
117
## TEXT DETECTION MODEL INFERENCE
K
Khanh Tran 已提交
118

T
tink2123 已提交
119 120
The following will introduce the lightweight Chinese detection model inference, DB text detection model inference and EAST text detection model inference. The default configuration is based on the inference setting of the DB text detection model.
Because EAST and DB algorithms are very different, when inference, it is necessary to **adapt the EAST text detection algorithm by passing in corresponding parameters**.
K
Khanh Tran 已提交
121

L
licx 已提交
122
<a name="LIGHTWEIGHT_DETECTION"></a>
X
xxxpsyduck 已提交
123
### 1. LIGHTWEIGHT CHINESE DETECTION MODEL INFERENCE
K
Khanh Tran 已提交
124

X
xxxpsyduck 已提交
125
For lightweight Chinese detection model inference, you can execute the following commands:
K
Khanh Tran 已提交
126 127 128 129 130 131 132

```
python3 tools/infer/predict_det.py --image_dir="./doc/imgs/2.jpg" --det_model_dir="./inference/det_db/"
```

The visual text detection results are saved to the ./inference_results folder by default, and the name of the result file is prefixed with'det_res'. Examples of results are as follows:

133
![](../imgs_results/det_res_2.jpg)
K
Khanh Tran 已提交
134

W
WenmuZhou 已提交
135 136 137
The size of the image is limited by the parameters `limit_type` and `det_limit_side_len`, `limit_type=max` is to limit the length of the long side <`det_limit_side_len`, and `limit_type=min` is to limit the length of the short side>`det_limit_side_len`,
When the picture does not meet the restriction conditions (for `limit_type=max`and  long side >`det_limit_side_len` or for `min` and short side <`det_limit_side_len`), the image will be scaled proportionally.
This parameter is set to `limit_type='max', det_max_side_len=960` by default. If the resolution of the input picture is relatively large, and you want to use a larger resolution prediction, you can execute the following command:
K
Khanh Tran 已提交
138 139

```
W
WenmuZhou 已提交
140
python3 tools/infer/predict_det.py --image_dir="./doc/imgs/2.jpg" --det_model_dir="./inference/det_db/" --det_limit_type=max --det_limit_side_len=1200
K
Khanh Tran 已提交
141 142 143 144 145 146 147
```

If you want to use the CPU for prediction, execute the command as follows
```
python3 tools/infer/predict_det.py --image_dir="./doc/imgs/2.jpg" --det_model_dir="./inference/det_db/" --use_gpu=False
```

L
licx 已提交
148
<a name="DB_DETECTION"></a>
X
xxxpsyduck 已提交
149
### 2. DB TEXT DETECTION MODEL INFERENCE
K
Khanh Tran 已提交
150

W
WenmuZhou 已提交
151
First, convert the model saved in the DB text detection training process into an inference model. Taking the model based on the Resnet50_vd backbone network and trained on the ICDAR2015 English dataset as an example ([model download link](link)), you can use the following command to convert:
K
Khanh Tran 已提交
152 153

```
W
WenmuZhou 已提交
154 155
# -c Set the yml configuration file of the training algorithm, you need to write the path of the training model to be converted into the Global.checkpoints parameter in the configuration file, without adding the file suffixes .pdmodel, .pdopt or .pdparams.
# -o Set the address where the converted model will be saved.
K
Khanh Tran 已提交
156

W
WenmuZhou 已提交
157
python3 tools/export_model.py -c configs/det/det_r50_vd_db.yml -o "./inference/det_db"
K
Khanh Tran 已提交
158 159 160 161 162 163 164 165 166 167
```

DB text detection model inference, you can execute the following command:

```
python3 tools/infer/predict_det.py --image_dir="./doc/imgs_en/img_10.jpg" --det_model_dir="./inference/det_db/"
```

The visualized text detection results are saved to the `./inference_results` folder by default, and the name of the result file is prefixed with 'det_res'. Examples of results are as follows:

168
![](../imgs_results/det_res_img_10_db.jpg)
K
Khanh Tran 已提交
169 170 171

**Note**: Since the ICDAR2015 dataset has only 1,000 training images, mainly for English scenes, the above model has very poor detection result on Chinese text images.

L
licx 已提交
172
<a name="EAST_DETECTION"></a>
X
xxxpsyduck 已提交
173
### 3. EAST TEXT DETECTION MODEL INFERENCE
K
Khanh Tran 已提交
174

W
WenmuZhou 已提交
175
First, convert the model saved in the EAST text detection training process into an inference model. Taking the model based on the Resnet50_vd backbone network and trained on the ICDAR2015 English dataset as an example ([model download link](link)), you can use the following command to convert:
K
Khanh Tran 已提交
176 177

```
W
WenmuZhou 已提交
178 179
# -c Set the yml configuration file of the training algorithm, you need to write the path of the training model to be converted into the Global.checkpoints parameter in the configuration file, without adding the file suffixes .pdmodel, .pdopt or .pdparams.
# -o Set the address where the converted model will be saved.
K
Khanh Tran 已提交
180 181 182

python3 tools/export_model.py -c configs/det/det_r50_vd_east.yml -o Global.checkpoints="./models/det_r50_vd_east/best_accuracy" Global.save_inference_dir="./inference/det_east"
```
L
licx 已提交
183
**For EAST text detection model inference, you need to set the parameter ``--det_algorithm="EAST"``**, run the following command:
K
Khanh Tran 已提交
184 185 186 187

```
python3 tools/infer/predict_det.py --image_dir="./doc/imgs_en/img_10.jpg" --det_model_dir="./inference/det_east/" --det_algorithm="EAST"
```
L
licx 已提交
188

K
Khanh Tran 已提交
189 190
The visualized text detection results are saved to the `./inference_results` folder by default, and the name of the result file is prefixed with 'det_res'. Examples of results are as follows:

191
![](../imgs_results/det_res_img_10_east.jpg)
K
Khanh Tran 已提交
192

L
licx 已提交
193 194 195 196 197 198
**Note**: EAST post-processing locality aware NMS has two versions: Python and C++. The speed of C++ version is obviously faster than that of Python version. Due to the compilation version problem of NMS of C++ version, C++ version NMS will be called only in Python 3.5 environment, and python version NMS will be called in other cases.


<a name="SAST_DETECTION"></a>
### 4. SAST TEXT DETECTION MODEL INFERENCE
#### (1). Quadrangle text detection model (ICDAR2015)  
W
WenmuZhou 已提交
199
First, convert the model saved in the SAST text detection training process into an inference model. Taking the model based on the Resnet50_vd backbone network and trained on the ICDAR2015 English dataset as an example ([model download link](link)), you can use the following command to convert:
L
licx 已提交
200 201

```
W
WenmuZhou 已提交
202 203 204 205
# -c Set the yml configuration file of the training algorithm, you need to write the path of the training model to be converted into the Global.checkpoints parameter in the configuration file, without adding the file suffixes .pdmodel, .pdopt or .pdparams.
# -o Set the address where the converted model will be saved.

python3 tools/export_model.py -c configs/det/det_r50_vd_sast_icdar15.yml -o "./inference/det_sast_ic15"
L
licx 已提交
206 207 208
```

**For SAST quadrangle text detection model inference, you need to set the parameter `--det_algorithm="SAST"`**, run the following command:
K
Khanh Tran 已提交
209

L
licx 已提交
210 211 212 213 214
```
python3 tools/infer/predict_det.py --det_algorithm="SAST" --image_dir="./doc/imgs_en/img_10.jpg" --det_model_dir="./inference/det_sast_ic15/"
```

The visualized text detection results are saved to the `./inference_results` folder by default, and the name of the result file is prefixed with 'det_res'. Examples of results are as follows:
K
Khanh Tran 已提交
215

L
licx 已提交
216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232
![](../imgs_results/det_res_img_10_sast.jpg)

#### (2). Curved text detection model (Total-Text)  
First, convert the model saved in the SAST text detection training process into an inference model. Taking the model based on the Resnet50_vd backbone network and trained on the Total-Text English dataset as an example ([model download link](https://paddleocr.bj.bcebos.com/SAST/sast_r50_vd_total_text.tar)), you can use the following command to convert:

```
python3 tools/export_model.py -c configs/det/det_r50_vd_sast_totaltext.yml -o Global.checkpoints="./models/sast_r50_vd_total_text/best_accuracy" Global.save_inference_dir="./inference/det_sast_tt"
```

**For SAST curved text detection model inference, you need to set the parameter `--det_algorithm="SAST"` and `--det_sast_polygon=True`**, run the following command:

```
python3 tools/infer/predict_det.py --det_algorithm="SAST" --image_dir="./doc/imgs_en/img623.jpg" --det_model_dir="./inference/det_sast_tt/" --det_sast_polygon=True
```

The visualized text detection results are saved to the `./inference_results` folder by default, and the name of the result file is prefixed with 'det_res'. Examples of results are as follows:

M
MissPenguin 已提交
233
![](../imgs_results/det_res_img623_sast.jpg)
L
licx 已提交
234 235 236 237

**Note**: SAST post-processing locality aware NMS has two versions: Python and C++. The speed of C++ version is obviously faster than that of Python version. Due to the compilation version problem of NMS of C++ version, C++ version NMS will be called only in Python 3.5 environment, and python version NMS will be called in other cases.

<a name="RECOGNITION_MODEL_INFERENCE"></a>
X
xxxpsyduck 已提交
238
## TEXT RECOGNITION MODEL INFERENCE
K
Khanh Tran 已提交
239

X
xxxpsyduck 已提交
240
The following will introduce the lightweight Chinese recognition model inference, other CTC-based and Attention-based text recognition models inference. For Chinese text recognition, it is recommended to choose the recognition model based on CTC loss. In practice, it is also found that the result of the model based on Attention loss is not as good as the one based on CTC loss. In addition, if the characters dictionary is modified during training, make sure that you use the same characters set during inferencing. Please check below for details.
K
Khanh Tran 已提交
241 242


L
licx 已提交
243
<a name="LIGHTWEIGHT_RECOGNITION"></a>
X
xxxpsyduck 已提交
244
### 1. LIGHTWEIGHT CHINESE TEXT RECOGNITION MODEL REFERENCE
K
Khanh Tran 已提交
245

X
xxxpsyduck 已提交
246
For lightweight Chinese recognition model inference, you can execute the following commands:
K
Khanh Tran 已提交
247 248 249 250 251

```
python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words/ch/word_4.jpg" --rec_model_dir="./inference/rec_crnn/"
```

252
![](../imgs_words/ch/word_4.jpg)
K
Khanh Tran 已提交
253 254 255 256 257 258

After executing the command, the prediction results (recognized text and score) of the above image will be printed on the screen.

Predicts of ./doc/imgs_words/ch/word_4.jpg:['实力活力', 0.89552695]


L
licx 已提交
259
<a name="CTC-BASED_RECOGNITION"></a>
X
xxxpsyduck 已提交
260
### 2. CTC-BASED TEXT RECOGNITION MODEL INFERENCE
K
Khanh Tran 已提交
261 262 263

Taking STAR-Net as an example, we introduce the recognition model inference based on CTC loss. CRNN and Rosetta are used in a similar way, by setting the recognition algorithm parameter `rec_algorithm`.

W
WenmuZhou 已提交
264
First, convert the model saved in the STAR-Net text recognition training process into an inference model. Taking the model based on Resnet34_vd backbone network, using MJSynth and SynthText (two English text recognition synthetic datasets) for training, as an example ([model download address](link)). It can be converted as follow:
K
Khanh Tran 已提交
265 266

```
W
WenmuZhou 已提交
267 268
# -c Set the yml configuration file of the training algorithm, you need to write the path of the training model to be converted into the Global.checkpoints parameter in the configuration file, without adding the file suffixes .pdmodel, .pdopt or .pdparams.
# -o Set the address where the converted model will be saved.
K
Khanh Tran 已提交
269

W
WenmuZhou 已提交
270
python3 tools/export_model.py -c configs/rec/rec_r34_vd_tps_bilstm_ctc.yml -o "./inference/starnet"
K
Khanh Tran 已提交
271 272 273 274 275 276 277
```

For STAR-Net text recognition model inference, execute the following commands:

```
python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words_en/word_336.png" --rec_model_dir="./inference/starnet/" --rec_image_shape="3, 32, 100" --rec_char_type="en"
```
X
xxxpsyduck 已提交
278

L
licx 已提交
279
<a name="ATTENTION-BASED_RECOGNITION"></a>
X
xxxpsyduck 已提交
280
### 3. ATTENTION-BASED TEXT RECOGNITION MODEL INFERENCE
281
![](../imgs_words_en/word_336.png)
K
Khanh Tran 已提交
282 283 284 285 286

After executing the command, the recognition result of the above image is as follows:

Predicts of ./doc/imgs_words_en/word_336.png:['super', 0.9999555]

X
xxxpsyduck 已提交
287
**Note**:Since the above model refers to [DTRB](https://arxiv.org/abs/1904.01906) text recognition training and evaluation process, it is different from the training of lightweight Chinese recognition model in two aspects:
K
Khanh Tran 已提交
288 289 290 291 292 293 294 295 296 297

- The image resolution used in training is different: the image resolution used in training the above model is [3,32,100], while during our Chinese model training, in order to ensure the recognition effect of long text, the image resolution used in training is [3, 32, 320]. The default shape parameter of the inference stage is the image resolution used in training phase, that is [3, 32, 320]. Therefore, when running inference of the above English model here, you need to set the shape of the recognition image through the parameter `rec_image_shape`.

- Character list: the experiment in the DTRB paper is only for 26 lowercase English characters and 10 numbers, a total of 36 characters. All upper and lower case characters are converted to lower case characters, and characters not in the above list are ignored and considered as spaces. Therefore, no characters dictionary file is used here, but a dictionary is generated by the below command. Therefore, the parameter `rec_char_type` needs to be set during inference, which is specified as "en" in English.

```
self.character_str = "0123456789abcdefghijklmnopqrstuvwxyz"
dict_character = list(self.character_str)
```

L
licx 已提交
298
<a name="USING_CUSTOM_CHARACTERS"></a>
W
WenmuZhou 已提交
299
### 4. TEXT RECOGNITION MODEL INFERENCE USING CUSTOM CHARACTERS DICTIONARY
X
xxxpsyduck 已提交
300
If the chars dictionary is modified during training, you need to specify the new dictionary path by setting the parameter `rec_char_dict_path` when using your inference model to predict.
L
LDOUBLEV 已提交
301 302 303 304 305

```
python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words_en/word_336.png" --rec_model_dir="./your inference model" --rec_image_shape="3, 32, 100" --rec_char_type="en" --rec_char_dict_path="your text dict path"
```

W
WenmuZhou 已提交
306
<a name="MULTILINGUAL_MODEL_INFERENCE"></a>
W
WenmuZhou 已提交
307
### 5. MULTILINGAUL MODEL INFERENCE
W
WenmuZhou 已提交
308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338
If you need to predict other language models, when using inference model prediction, you need to specify the dictionary path used by `--rec_char_dict_path`. At the same time, in order to get the correct visualization results,
You need to specify the visual font path through `--vis_font_path`. There are small language fonts provided by default under the `doc/` path, such as Korean recognition:

```
python3 tools/infer/predict_rec.py --image_dir="./doc/imgs_words/korean/1.jpg" --rec_model_dir="./your inference model" --rec_char_type="korean" --rec_char_dict_path="ppocr/utils/dict/korean_dict.txt" --vis_font_path="doc/korean.ttf"
```
![](../imgs_words/korean/1.jpg)

After executing the command, the prediction result of the above figure is:

``` text
2020-09-19 16:15:05,076-INFO:      index: [205 206  38  39]
2020-09-19 16:15:05,077-INFO:      word : 바탕으로
2020-09-19 16:15:05,077-INFO:      score: 0.9171358942985535
```

<a name="ANGLE_CLASSIFICATION_MODEL_INFERENCE"></a>
## ANGLE CLASSIFICATION MODEL INFERENCE

The following will introduce the angle classification model inference.


<a name="ANGLE_CLASS_MODEL_INFERENCE"></a>
### 1.ANGLE CLASSIFICATION MODEL INFERENCE

For angle classification model inference, you can execute the following commands:

```
python3 tools/infer/predict_cls.py --image_dir="./doc/imgs_words/ch/word_4.jpg" --cls_model_dir="./inference/cls/"
```

W
WenmuZhou 已提交
339
![](../imgs_words_en/word_10.png)
W
WenmuZhou 已提交
340 341 342

After executing the command, the prediction results (classification angle and score) of the above image will be printed on the screen.

W
WenmuZhou 已提交
343 344 345 346
```
infer_img: doc/imgs_words_en/word_10.png
     result: ('0', 0.9999995)
```
W
WenmuZhou 已提交
347

L
licx 已提交
348
<a name="CONCATENATION"></a>
W
WenmuZhou 已提交
349
## TEXT DETECTION ANGLE CLASSIFICATION AND RECOGNITION INFERENCE CONCATENATION
K
Khanh Tran 已提交
350

L
licx 已提交
351
<a name="LIGHTWEIGHT_CHINESE_MODEL"></a>
X
xxxpsyduck 已提交
352
### 1. LIGHTWEIGHT CHINESE MODEL
K
Khanh Tran 已提交
353

W
WenmuZhou 已提交
354
When performing prediction, you need to specify the path of a single image or a folder of images through the parameter `image_dir`, the parameter `det_model_dir` specifies the path to detect the inference model, the parameter `cls_model_dir` specifies the path to angle classification inference model and the parameter `rec_model_dir` specifies the path to identify the inference model. The parameter `use_angle_cls` is used to control whether to enable the angle classification model.The visualized recognition results are saved to the `./inference_results` folder by default.
K
Khanh Tran 已提交
355 356

```
W
WenmuZhou 已提交
357 358 359 360 361
# use direction classifier
python3 tools/infer/predict_system.py --image_dir="./doc/imgs/2.jpg" --det_model_dir="./inference/det_db/" --cls_model_dir="./inference/cls/" --rec_model_dir="./inference/rec_crnn/" --use_angle_cls=true

# not use use direction classifier
python3 tools/infer/predict_system.py --image_dir="./doc/imgs/2.jpg" --det_model_dir="./inference/det_db/" --rec_model_dir="./inference/rec_crnn/"
K
Khanh Tran 已提交
362 363 364 365
```

After executing the command, the recognition result image is as follows:

366
![](../imgs_results/2.jpg)
K
Khanh Tran 已提交
367

L
licx 已提交
368
<a name="OTHER_MODELS"></a>
X
xxxpsyduck 已提交
369
### 2. OTHER MODELS
K
Khanh Tran 已提交
370

L
licx 已提交
371 372 373 374 375
If you want to try other detection algorithms or recognition algorithms, please refer to the above text detection model inference and text recognition model inference, update the corresponding configuration and model.

**Note: due to the limitation of rotation logic of detected box, SAST curved text detection model (using the parameter `det_sast_polygon=True`) is not supported for model combination yet.**

The following command uses the combination of the EAST text detection and STAR-Net text recognition:
K
Khanh Tran 已提交
376 377 378 379 380 381 382

```
python3 tools/infer/predict_system.py --image_dir="./doc/imgs_en/img_10.jpg" --det_model_dir="./inference/det_east/" --det_algorithm="EAST" --rec_model_dir="./inference/starnet/" --rec_image_shape="3, 32, 100" --rec_char_type="en"
```

After executing the command, the recognition result image is as follows:

383
![](../imgs_results/img_10.jpg)