commit
6b9fb83e59
|
@ -1,22 +1,24 @@
|
|||
|
||||
# 目录
|
||||
- [1. 文字检测](#1-----)
|
||||
* [1.1 数据准备](#11-----)
|
||||
* [1.2 下载预训练模型](#12--------)
|
||||
* [1.3 启动训练](#13-----)
|
||||
* [1.4 断点训练](#14-----)
|
||||
* [1.5 更换Backbone 训练](#15---backbone---)
|
||||
* [1.6 指标评估](#16-----)
|
||||
* [1.7 测试检测效果](#17-------)
|
||||
* [1.8 转inference模型测试](#18--inference----)
|
||||
- [2. FAQ](#2-faq)
|
||||
|
||||
|
||||
<a name="1-----"></a>
|
||||
# 1. 文字检测
|
||||
# 文字检测
|
||||
|
||||
本节以icdar2015数据集为例,介绍PaddleOCR中检测模型训练、评估、测试的使用方式。
|
||||
|
||||
- [1. 准备数据和模型](#1--------)
|
||||
* [1.1 数据准备](#11-----)
|
||||
* [1.2 下载预训练模型](#12--------)
|
||||
- [2. 开始训练](#2-----)
|
||||
* [2.1 启动训练](#21-----)
|
||||
* [2.2 断点训练](#22-----)
|
||||
* [2.3 更换Backbone 训练](#23---backbone---)
|
||||
- [3. 模型评估与预测](#3--------)
|
||||
* [3.1 指标评估](#31-----)
|
||||
* [3.2 测试检测效果](#32-------)
|
||||
- [4. 模型导出与预测](#4--------)
|
||||
- [5. FAQ](#5-faq)
|
||||
|
||||
<a name="1--------"></a>
|
||||
# 1. 准备数据和模型
|
||||
|
||||
<a name="11-----"></a>
|
||||
## 1.1 数据准备
|
||||
|
||||
|
@ -83,8 +85,11 @@ wget -P ./pretrain_models/ https://paddle-imagenet-models-name.bj.bcebos.com/dyg
|
|||
wget -P ./pretrain_models/ https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/ResNet50_vd_ssld_pretrained.pdparams
|
||||
```
|
||||
|
||||
<a name="13-----"></a>
|
||||
## 1.3 启动训练
|
||||
<a name="2-----"></a>
|
||||
# 2. 开始训练
|
||||
|
||||
<a name="21-----"></a>
|
||||
## 2.1 启动训练
|
||||
|
||||
*如果您安装的是cpu版本,请将配置文件中的 `use_gpu` 字段修改为false*
|
||||
|
||||
|
@ -106,8 +111,8 @@ python3 -m paddle.distributed.launch --gpus '0,1,2,3' tools/train.py -c configs/
|
|||
python3 tools/train.py -c configs/det/det_mv3_db.yml -o Optimizer.base_lr=0.0001
|
||||
```
|
||||
|
||||
<a name="14-----"></a>
|
||||
## 1.4 断点训练
|
||||
<a name="22-----"></a>
|
||||
## 2.2 断点训练
|
||||
|
||||
如果训练程序中断,如果希望加载训练中断的模型从而恢复训练,可以通过指定Global.checkpoints指定要加载的模型路径:
|
||||
```shell
|
||||
|
@ -116,8 +121,8 @@ python3 tools/train.py -c configs/det/det_mv3_db.yml -o Global.checkpoints=./you
|
|||
|
||||
**注意**:`Global.checkpoints`的优先级高于`Global.pretrain_weights`的优先级,即同时指定两个参数时,优先加载`Global.checkpoints`指定的模型,如果`Global.checkpoints`指定的模型路径有误,会加载`Global.pretrain_weights`指定的模型。
|
||||
|
||||
<a name="15---backbone---"></a>
|
||||
## 1.5 更换Backbone 训练
|
||||
<a name="23---backbone---"></a>
|
||||
## 2.3 更换Backbone 训练
|
||||
|
||||
PaddleOCR将网络划分为四部分,分别在[ppocr/modeling](../../ppocr/modeling)下。 进入网络的数据将按照顺序(transforms->backbones->
|
||||
necks->heads)依次通过这四个部分。
|
||||
|
@ -164,8 +169,11 @@ args1: args1
|
|||
|
||||
**注意**:如果要更换网络的其他模块,可以参考[文档](./add_new_algorithm.md)。
|
||||
|
||||
<a name="16-----"></a>
|
||||
## 1.6 指标评估
|
||||
<a name="3--------"></a>
|
||||
# 3. 模型评估与预测
|
||||
|
||||
<a name="31-----"></a>
|
||||
## 3.1 指标评估
|
||||
|
||||
PaddleOCR计算三个OCR检测相关的指标,分别是:Precision、Recall、Hmean(F-Score)。
|
||||
|
||||
|
@ -177,8 +185,8 @@ python3 tools/eval.py -c configs/det/det_mv3_db.yml -o Global.checkpoints="{pat
|
|||
|
||||
* 注:`box_thresh`、`unclip_ratio`是DB后处理所需要的参数,在评估EAST模型时不需要设置
|
||||
|
||||
<a name="17-------"></a>
|
||||
## 1.7 测试检测效果
|
||||
<a name="32-------"></a>
|
||||
## 3.2 测试检测效果
|
||||
|
||||
测试单张图像的检测效果
|
||||
```shell
|
||||
|
@ -195,8 +203,8 @@ python3 tools/infer_det.py -c configs/det/det_mv3_db.yml -o Global.infer_img="./
|
|||
python3 tools/infer_det.py -c configs/det/det_mv3_db.yml -o Global.infer_img="./doc/imgs_en/" Global.pretrained_model="./output/det_db/best_accuracy"
|
||||
```
|
||||
|
||||
<a name="18--inference----"></a>
|
||||
## 1.8 转inference模型测试
|
||||
<a name="4--------"></a>
|
||||
# 4. 模型导出与预测
|
||||
|
||||
inference 模型(`paddle.jit.save`保存的模型)
|
||||
一般是模型训练,把模型结构和模型参数保存在文件中的固化模型,多用于预测部署场景。
|
||||
|
@ -218,8 +226,8 @@ python3 tools/infer/predict_det.py --det_algorithm="DB" --det_model_dir="./outpu
|
|||
python3 tools/infer/predict_det.py --det_algorithm="EAST" --det_model_dir="./output/det_db_inference/" --image_dir="./doc/imgs/" --use_gpu=True
|
||||
```
|
||||
|
||||
<a name="2"></a>
|
||||
# 2. FAQ
|
||||
<a name="5-faq"></a>
|
||||
# 5. FAQ
|
||||
|
||||
Q1: 训练模型转inference 模型之后预测效果不一致?
|
||||
**A**:此类问题出现较多,问题多是trained model预测时候的预处理、后处理参数和inference model预测的时候的预处理、后处理参数不一致导致的。以det_mv3_db.yml配置文件训练的模型为例,训练模型、inference模型预测结果不一致问题解决方式如下:
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
# CONTENT
|
||||
|
||||
- [Paste Your Document In Here](#paste-your-document-in-here)
|
||||
- [1. TEXT DETECTION](#1-text-detection)
|
||||
* [1.1 DATA PREPARATION](#11-data-preparation)
|
||||
* [1.2 DOWNLOAD PRETRAINED MODEL](#12-download-pretrained-model)
|
||||
* [1.3 START TRAINING](#13-start-training)
|
||||
* [1.4 LOAD TRAINED MODEL AND CONTINUE TRAINING](#14-load-trained-model-and-continue-training)
|
||||
* [1.5 TRAINING WITH NEW BACKBONE](#15-training-with-new-backbone)
|
||||
* [1.6 EVALUATION](#16-evaluation)
|
||||
* [1.7 TEST](#17-test)
|
||||
* [1.8 INFERENCE MODEL PREDICTION](#18-inference-model-prediction)
|
||||
- [2. FAQ](#2-faq)
|
||||
|
||||
|
||||
# 1. TEXT DETECTION
|
||||
# TEXT DETECTION
|
||||
|
||||
This section uses the icdar2015 dataset as an example to introduce the training, evaluation, and testing of the detection model in PaddleOCR.
|
||||
|
||||
- [1. DATA AND WEIGHTS PREPARATIO](#1-data-and-weights-preparatio)
|
||||
* [1.1 DATA PREPARATION](#11-data-preparation)
|
||||
* [1.2 DOWNLOAD PRETRAINED MODEL](#12-download-pretrained-model)
|
||||
- [2. TRAINING](#2-training)
|
||||
* [2.1 START TRAINING](#21-start-training)
|
||||
* [2.2 LOAD TRAINED MODEL AND CONTINUE TRAINING](#22-load-trained-model-and-continue-training)
|
||||
* [2.3 TRAINING WITH NEW BACKBONE](#23-training-with-new-backbone)
|
||||
- [3. EVALUATION AND TEST](#3-evaluation-and-test)
|
||||
* [3.1 EVALUATION](#31-evaluation)
|
||||
* [3.2 TEST](#32-test)
|
||||
- [4. INFERENCE](#4-inference)
|
||||
- [2. FAQ](#2-faq)
|
||||
|
||||
# 1 DATA AND WEIGHTS PREPARATIO
|
||||
|
||||
## 1.1 DATA PREPARATION
|
||||
|
||||
The icdar2015 dataset contains train set which has 1000 images obtained with wearable cameras and test set which has 500 images obtained with wearable cameras. The icdar2015 can be obtained from [official website](https://rrc.cvc.uab.es/?ch=4&com=downloads). Registration is required for downloading.
|
||||
|
@ -75,7 +75,10 @@ wget -P ./pretrain_models/ https://paddle-imagenet-models-name.bj.bcebos.com/dyg
|
|||
|
||||
```
|
||||
|
||||
## 1.3 START TRAINING
|
||||
# 2. TRAINING
|
||||
|
||||
## 2.1 START TRAINING
|
||||
|
||||
*If CPU version installed, please set the parameter `use_gpu` to `false` in the configuration.*
|
||||
```shell
|
||||
python3 tools/train.py -c configs/det/det_mv3_db.yml \
|
||||
|
@ -98,7 +101,7 @@ python3 -m paddle.distributed.launch --gpus '0,1,2,3' tools/train.py -c configs
|
|||
|
||||
```
|
||||
|
||||
## 1.4 LOAD TRAINED MODEL AND CONTINUE TRAINING
|
||||
## 2.2 LOAD TRAINED MODEL AND CONTINUE TRAINING
|
||||
If you expect to load trained model and continue the training again, you can specify the parameter `Global.checkpoints` as the model path to be loaded.
|
||||
|
||||
For example:
|
||||
|
@ -109,7 +112,7 @@ python3 tools/train.py -c configs/det/det_mv3_db.yml -o Global.checkpoints=./you
|
|||
**Note**: The priority of `Global.checkpoints` is higher than that of `Global.pretrain_weights`, that is, when two parameters are specified at the same time, the model specified by `Global.checkpoints` will be loaded first. If the model path specified by `Global.checkpoints` is wrong, the one specified by `Global.pretrain_weights` will be loaded.
|
||||
|
||||
|
||||
## 1.5 TRAINING WITH NEW BACKBONE
|
||||
## 2.3 TRAINING WITH NEW BACKBONE
|
||||
|
||||
The network part completes the construction of the network, and PaddleOCR divides the network into four parts, which are under [ppocr/modeling](../../ppocr/modeling). The data entering the network will pass through these four parts in sequence(transforms->backbones->
|
||||
necks->heads).
|
||||
|
@ -159,7 +162,9 @@ After adding the four-part modules of the network, you only need to configure th
|
|||
|
||||
**NOTE**: More details about replace Backbone and other mudule can be found in [doc](add_new_algorithm_en.md).
|
||||
|
||||
## 1.6 EVALUATION
|
||||
# 3. EVALUATION AND TEST
|
||||
|
||||
## 3.1 EVALUATION
|
||||
|
||||
PaddleOCR calculates three indicators for evaluating performance of OCR detection task: Precision, Recall, and Hmean(F-Score).
|
||||
|
||||
|
@ -174,7 +179,7 @@ python3 tools/eval.py -c configs/det/det_mv3_db.yml -o Global.checkpoints="{pat
|
|||
|
||||
* Note: `box_thresh` and `unclip_ratio` are parameters required for DB post-processing, and not need to be set when evaluating the EAST and SAST model.
|
||||
|
||||
## 1.7 TEST
|
||||
## 3.2 TEST
|
||||
|
||||
Test the detection result on a single image:
|
||||
```shell
|
||||
|
@ -192,7 +197,7 @@ Test the detection result on all images in the folder:
|
|||
python3 tools/infer_det.py -c configs/det/det_mv3_db.yml -o Global.infer_img="./doc/imgs_en/" Global.pretrained_model="./output/det_db/best_accuracy"
|
||||
```
|
||||
|
||||
## 1.8 INFERENCE MODEL PREDICTION
|
||||
# 4. INFERENCE
|
||||
|
||||
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.
|
||||
|
||||
|
|
Loading…
Reference in New Issue