664 lines
13 KiB
Markdown
664 lines
13 KiB
Markdown
# 识别结果
|
|
|
|
参数基本采用默认参数,都训练 **10轮** 。
|
|
|
|
|
|
|
|
|
|
|
|
## PP-OCRv5_server (极好)
|
|
|
|
识别效果:**极好** ,基本都是别出来了,并且正确。
|
|
|
|

|
|
|
|
### PP-OCRv5_server_det.yml
|
|
|
|
```yaml
|
|
Global:
|
|
model_name: PP-OCRv5_server_det # To use static model for inference.
|
|
debug: false
|
|
use_gpu: true
|
|
epoch_num: &epoch_num 10
|
|
log_smooth_window: 20
|
|
print_batch_step: 10
|
|
save_model_dir: ./output-v5server/PP-OCRv5_server_det
|
|
save_epoch_step: 200
|
|
eval_batch_step:
|
|
- 0
|
|
- 200
|
|
cal_metric_during_train: false
|
|
checkpoints:
|
|
pretrained_model: ./pretrain_models/PP-OCRv5_server_det_pretrained.pdparams
|
|
save_inference_dir: null
|
|
use_visualdl: false
|
|
infer_img: doc/imgs_en/img_10.jpg
|
|
save_res_path: ./checkpoints/det_db/predicts_db.txt
|
|
distributed: false
|
|
|
|
Architecture:
|
|
model_type: det
|
|
algorithm: DB
|
|
Transform: null
|
|
Backbone:
|
|
name: PPHGNetV2_B4
|
|
det: True
|
|
Neck:
|
|
name: LKPAN
|
|
out_channels: 256
|
|
intracl: true
|
|
Head:
|
|
name: PFHeadLocal
|
|
k: 50
|
|
mode: "large"
|
|
|
|
|
|
Loss:
|
|
name: DBLoss
|
|
balance_loss: true
|
|
main_loss_type: DiceLoss
|
|
alpha: 5
|
|
beta: 10
|
|
ohem_ratio: 3
|
|
|
|
Optimizer:
|
|
name: Adam
|
|
beta1: 0.9
|
|
beta2: 0.999
|
|
lr:
|
|
name: Cosine
|
|
learning_rate: 0.001 #(8*8c)
|
|
warmup_epoch: 2
|
|
regularizer:
|
|
name: L2
|
|
factor: 1e-6
|
|
|
|
PostProcess:
|
|
name: DBPostProcess
|
|
thresh: 0.3
|
|
box_thresh: 0.6
|
|
max_candidates: 1000
|
|
unclip_ratio: 1.5
|
|
|
|
Metric:
|
|
name: DetMetric
|
|
main_indicator: hmean
|
|
|
|
Train:
|
|
dataset:
|
|
name: SimpleDataSet
|
|
data_dir: ./data/input0/images #图片文件夹路径
|
|
label_file_list:
|
|
- ./det_train_label.txt #标签路径
|
|
ratio_list: [1.0]
|
|
transforms:
|
|
- DecodeImage:
|
|
img_mode: BGR
|
|
channel_first: false
|
|
- DetLabelEncode: null
|
|
- CopyPaste: null
|
|
- IaaAugment:
|
|
augmenter_args:
|
|
- type: Fliplr
|
|
args:
|
|
p: 0.5
|
|
- type: Affine
|
|
args:
|
|
rotate:
|
|
- -10
|
|
- 10
|
|
- type: Resize
|
|
args:
|
|
size:
|
|
- 0.5
|
|
- 3
|
|
- EastRandomCropData:
|
|
size:
|
|
- 640
|
|
- 640
|
|
max_tries: 50
|
|
keep_ratio: true
|
|
- MakeBorderMap:
|
|
shrink_ratio: 0.4
|
|
thresh_min: 0.3
|
|
thresh_max: 0.7
|
|
total_epoch: *epoch_num
|
|
- MakeShrinkMap:
|
|
shrink_ratio: 0.4
|
|
min_text_size: 8
|
|
total_epoch: *epoch_num
|
|
- NormalizeImage:
|
|
scale: 1./255.
|
|
mean:
|
|
- 0.485
|
|
- 0.456
|
|
- 0.406
|
|
std:
|
|
- 0.229
|
|
- 0.224
|
|
- 0.225
|
|
order: hwc
|
|
- ToCHWImage: null
|
|
- KeepKeys:
|
|
keep_keys:
|
|
- image
|
|
- threshold_map
|
|
- threshold_mask
|
|
- shrink_map
|
|
- shrink_mask
|
|
loader:
|
|
shuffle: true
|
|
drop_last: false
|
|
batch_size_per_card: 10
|
|
num_workers: 1
|
|
|
|
Eval:
|
|
dataset:
|
|
name: SimpleDataSet
|
|
data_dir: ./data/input0/images
|
|
label_file_list:
|
|
- ./det_eval_label.txt
|
|
transforms:
|
|
- DecodeImage:
|
|
img_mode: BGR
|
|
channel_first: false
|
|
- DetLabelEncode: null
|
|
- DetResizeForTest:
|
|
- NormalizeImage:
|
|
scale: 1./255.
|
|
mean:
|
|
- 0.485
|
|
- 0.456
|
|
- 0.406
|
|
std:
|
|
- 0.229
|
|
- 0.224
|
|
- 0.225
|
|
order: hwc
|
|
- ToCHWImage: null
|
|
- KeepKeys:
|
|
keep_keys:
|
|
- image
|
|
- shape
|
|
- polys
|
|
- ignore_tags
|
|
loader:
|
|
shuffle: false
|
|
drop_last: false
|
|
batch_size_per_card: 1
|
|
num_workers: 1
|
|
profiler_options: null
|
|
```
|
|
|
|
### PP-OCRv5_server_rec.yml
|
|
|
|
```yaml
|
|
Global:
|
|
model_name: PP-OCRv5_server_rec # To use static model for inference.
|
|
debug: false
|
|
use_gpu: true
|
|
epoch_num: 10
|
|
log_smooth_window: 20
|
|
print_batch_step: 10
|
|
save_model_dir: ./output-v5server/PP-OCRv5_server_rec
|
|
save_epoch_step: 200
|
|
eval_batch_step: [0, 200]
|
|
cal_metric_during_train: true
|
|
calc_epoch_interval: 1
|
|
pretrained_model: ./pretrain_models/PP-OCRv5_server_rec_pretrained.pdparams
|
|
checkpoints:
|
|
save_inference_dir:
|
|
use_visualdl: false
|
|
infer_img: doc/imgs_words/ch/word_1.jpg
|
|
character_dict_path: ./ppocr/utils/dict/ppocrv5_dict.txt
|
|
max_text_length: &max_text_length 25
|
|
infer_mode: false
|
|
use_space_char: true
|
|
distributed: true
|
|
save_res_path: ./output-v5server/rec/predicts_ppocrv5.txt
|
|
d2s_train_image_shape: [3, 48, 320]
|
|
|
|
|
|
Optimizer:
|
|
name: Adam
|
|
beta1: 0.9
|
|
beta2: 0.999
|
|
lr:
|
|
name: Cosine
|
|
learning_rate: 0.0005
|
|
warmup_epoch: 1
|
|
regularizer:
|
|
name: L2
|
|
factor: 3.0e-05
|
|
|
|
|
|
Architecture:
|
|
model_type: rec
|
|
algorithm: SVTR_HGNet
|
|
Transform:
|
|
Backbone:
|
|
name: PPHGNetV2_B4
|
|
text_rec: True
|
|
Head:
|
|
name: MultiHead
|
|
head_list:
|
|
- CTCHead:
|
|
Neck:
|
|
name: svtr
|
|
dims: 120
|
|
depth: 2
|
|
hidden_dims: 120
|
|
kernel_size: [1, 3]
|
|
use_guide: True
|
|
Head:
|
|
fc_decay: 0.00001
|
|
- NRTRHead:
|
|
nrtr_dim: 384
|
|
max_text_length: *max_text_length
|
|
|
|
Loss:
|
|
name: MultiLoss
|
|
loss_config_list:
|
|
- CTCLoss:
|
|
- NRTRLoss:
|
|
|
|
PostProcess:
|
|
name: CTCLabelDecode
|
|
|
|
Metric:
|
|
name: RecMetric
|
|
main_indicator: acc
|
|
|
|
Train:
|
|
dataset:
|
|
name: MultiScaleDataSet
|
|
ds_width: false
|
|
data_dir: ./RecTrainData/
|
|
ext_op_transform_idx: 1
|
|
label_file_list:
|
|
- ./rec_train_label.txt
|
|
transforms:
|
|
- DecodeImage:
|
|
img_mode: BGR
|
|
channel_first: false
|
|
- RecAug:
|
|
- MultiLabelEncode:
|
|
gtc_encode: NRTRLabelEncode
|
|
- KeepKeys:
|
|
keep_keys:
|
|
- image
|
|
- label_ctc
|
|
- label_gtc
|
|
- length
|
|
- valid_ratio
|
|
sampler:
|
|
name: MultiScaleSampler
|
|
scales: [[320, 32], [320, 48], [320, 64]]
|
|
first_bs: &bs 12
|
|
fix_bs: false
|
|
divided_factor: [8, 16] # w, h
|
|
is_training: True
|
|
loader:
|
|
shuffle: true
|
|
batch_size_per_card: 10
|
|
drop_last: true
|
|
num_workers: 1
|
|
Eval:
|
|
dataset:
|
|
name: SimpleDataSet
|
|
data_dir: ./RecEvalData/
|
|
label_file_list:
|
|
- ./rec_eval_label.txt
|
|
transforms:
|
|
- DecodeImage:
|
|
img_mode: BGR
|
|
channel_first: false
|
|
- MultiLabelEncode:
|
|
gtc_encode: NRTRLabelEncode
|
|
- RecResizeImg:
|
|
image_shape: [3, 48, 320]
|
|
- KeepKeys:
|
|
keep_keys:
|
|
- image
|
|
- label_ctc
|
|
- label_gtc
|
|
- length
|
|
- valid_ratio
|
|
loader:
|
|
shuffle: false
|
|
drop_last: false
|
|
batch_size_per_card: 1
|
|
num_workers: 1
|
|
```
|
|
|
|
|
|
|
|
## PP-OCRv5_mobile
|
|
|
|
### PP-OCRv5_mobile_det.yml
|
|
|
|
```yaml
|
|
Global:
|
|
model_name: PP-OCRv5_mobile_det # To use static model for inference.
|
|
debug: false
|
|
use_gpu: true
|
|
epoch_num: &epoch_num 100
|
|
log_smooth_window: 20
|
|
print_batch_step: 100
|
|
save_model_dir: ./output-v5mobile/PP-OCRv5_mobile_det
|
|
save_epoch_step: 200
|
|
eval_batch_step:
|
|
- 0
|
|
- 200
|
|
cal_metric_during_train: false
|
|
checkpoints:
|
|
pretrained_model: https://paddleocr.bj.bcebos.com/pretrained/PPLCNetV3_x0_75_ocr_det.pdparams
|
|
save_inference_dir: null
|
|
use_visualdl: false
|
|
infer_img: doc/imgs_en/img_10.jpg
|
|
save_res_path: ./checkpoints/det_db/predicts_db.txt
|
|
d2s_train_image_shape: [3, 640, 640]
|
|
distributed: true
|
|
|
|
Architecture:
|
|
model_type: det
|
|
algorithm: DB
|
|
Transform: null
|
|
Backbone:
|
|
name: PPLCNetV3
|
|
scale: 0.75
|
|
det: True
|
|
Neck:
|
|
name: RSEFPN
|
|
out_channels: 96
|
|
shortcut: True
|
|
Head:
|
|
name: DBHead
|
|
k: 50
|
|
fix_nan: True
|
|
|
|
Loss:
|
|
name: DBLoss
|
|
balance_loss: true
|
|
main_loss_type: DiceLoss
|
|
alpha: 5
|
|
beta: 10
|
|
ohem_ratio: 3
|
|
|
|
Optimizer:
|
|
name: Adam
|
|
beta1: 0.9
|
|
beta2: 0.999
|
|
lr:
|
|
name: Cosine
|
|
learning_rate: 0.001 #(8*8c)
|
|
warmup_epoch: 2
|
|
regularizer:
|
|
name: L2
|
|
factor: 5.0e-05
|
|
|
|
PostProcess:
|
|
name: DBPostProcess
|
|
thresh: 0.3
|
|
box_thresh: 0.6
|
|
max_candidates: 1000
|
|
unclip_ratio: 1.5
|
|
|
|
Metric:
|
|
name: DetMetric
|
|
main_indicator: hmean
|
|
|
|
Train:
|
|
dataset:
|
|
name: SimpleDataSet
|
|
data_dir: ./data/input0/images #图片文件夹路径
|
|
label_file_list:
|
|
- ./det_train_label.txt #标签路径
|
|
ratio_list: [1.0]
|
|
transforms:
|
|
- DecodeImage:
|
|
img_mode: BGR
|
|
channel_first: false
|
|
- DetLabelEncode: null
|
|
- CopyPaste: null
|
|
- IaaAugment:
|
|
augmenter_args:
|
|
- type: Fliplr
|
|
args:
|
|
p: 0.5
|
|
- type: Affine
|
|
args:
|
|
rotate:
|
|
- -10
|
|
- 10
|
|
- type: Resize
|
|
args:
|
|
size:
|
|
- 0.5
|
|
- 3
|
|
- EastRandomCropData:
|
|
size:
|
|
- 640
|
|
- 640
|
|
max_tries: 50
|
|
keep_ratio: true
|
|
- MakeBorderMap:
|
|
shrink_ratio: 0.4
|
|
thresh_min: 0.3
|
|
thresh_max: 0.7
|
|
total_epoch: *epoch_num
|
|
- MakeShrinkMap:
|
|
shrink_ratio: 0.4
|
|
min_text_size: 8
|
|
total_epoch: *epoch_num
|
|
- NormalizeImage:
|
|
scale: 1./255.
|
|
mean:
|
|
- 0.485
|
|
- 0.456
|
|
- 0.406
|
|
std:
|
|
- 0.229
|
|
- 0.224
|
|
- 0.225
|
|
order: hwc
|
|
- ToCHWImage: null
|
|
- KeepKeys:
|
|
keep_keys:
|
|
- image
|
|
- threshold_map
|
|
- threshold_mask
|
|
- shrink_map
|
|
- shrink_mask
|
|
loader:
|
|
shuffle: true
|
|
drop_last: false
|
|
batch_size_per_card: 14
|
|
num_workers: 1
|
|
|
|
Eval:
|
|
dataset:
|
|
name: SimpleDataSet
|
|
data_dir: ./data/input0/images
|
|
label_file_list:
|
|
- ./det_eval_label.txt
|
|
transforms:
|
|
- DecodeImage:
|
|
img_mode: BGR
|
|
channel_first: false
|
|
- DetLabelEncode: null
|
|
- DetResizeForTest:
|
|
- NormalizeImage:
|
|
scale: 1./255.
|
|
mean:
|
|
- 0.485
|
|
- 0.456
|
|
- 0.406
|
|
std:
|
|
- 0.229
|
|
- 0.224
|
|
- 0.225
|
|
order: hwc
|
|
- ToCHWImage: null
|
|
- KeepKeys:
|
|
keep_keys:
|
|
- image
|
|
- shape
|
|
- polys
|
|
- ignore_tags
|
|
loader:
|
|
shuffle: false
|
|
drop_last: false
|
|
batch_size_per_card: 1
|
|
num_workers: 1
|
|
profiler_options: null
|
|
```
|
|
|
|
|
|
|
|
### PP-OCRv5_mobile_rec.yml
|
|
|
|
```yaml
|
|
Global:
|
|
model_name: PP-OCRv5_mobile_rec # To use static model for inference.
|
|
debug: false
|
|
use_gpu: true
|
|
epoch_num: 75
|
|
log_smooth_window: 20
|
|
print_batch_step: 10
|
|
save_model_dir: ./output/PP-OCRv5_mobile_rec
|
|
save_epoch_step: 10
|
|
eval_batch_step: [0, 2000]
|
|
cal_metric_during_train: true
|
|
pretrained_model: https://paddle-model-ecology.bj.bcebos.com/paddlex/official_pretrained_model/PP-OCRv5_mobile_rec_pretrained.pdparams
|
|
checkpoints:
|
|
save_inference_dir:
|
|
use_visualdl: false
|
|
infer_img: doc/imgs_words/ch/word_1.jpg
|
|
character_dict_path: ./ppocr/utils/dict/ppocrv5_dict.txt
|
|
max_text_length: &max_text_length 25
|
|
infer_mode: false
|
|
use_space_char: true
|
|
distributed: true
|
|
save_res_path: ./output/rec/predicts_ppocrv5.txt
|
|
d2s_train_image_shape: [3, 48, 320]
|
|
|
|
|
|
Optimizer:
|
|
name: Adam
|
|
beta1: 0.9
|
|
beta2: 0.999
|
|
lr:
|
|
name: Cosine
|
|
learning_rate: 0.0005
|
|
warmup_epoch: 5
|
|
regularizer:
|
|
name: L2
|
|
factor: 3.0e-05
|
|
|
|
|
|
Architecture:
|
|
model_type: rec
|
|
algorithm: SVTR_LCNet
|
|
Transform:
|
|
Backbone:
|
|
name: PPLCNetV3
|
|
scale: 0.95
|
|
Head:
|
|
name: MultiHead
|
|
head_list:
|
|
- CTCHead:
|
|
Neck:
|
|
name: svtr
|
|
dims: 120
|
|
depth: 2
|
|
hidden_dims: 120
|
|
kernel_size: [1, 3]
|
|
use_guide: True
|
|
Head:
|
|
fc_decay: 0.00001
|
|
- NRTRHead:
|
|
nrtr_dim: 384
|
|
max_text_length: *max_text_length
|
|
|
|
Loss:
|
|
name: MultiLoss
|
|
loss_config_list:
|
|
- CTCLoss:
|
|
- NRTRLoss:
|
|
|
|
PostProcess:
|
|
name: CTCLabelDecode
|
|
|
|
Metric:
|
|
name: RecMetric
|
|
main_indicator: acc
|
|
|
|
Train:
|
|
dataset:
|
|
name: MultiScaleDataSet
|
|
ds_width: false
|
|
data_dir: ./RecTrainData/
|
|
ext_op_transform_idx: 1
|
|
label_file_list:
|
|
- ./rec_train_label.txt
|
|
transforms:
|
|
- DecodeImage:
|
|
img_mode: BGR
|
|
channel_first: false
|
|
- RecConAug:
|
|
prob: 0.5
|
|
ext_data_num: 2
|
|
image_shape: [48, 320, 3]
|
|
max_text_length: *max_text_length
|
|
- RecAug:
|
|
- MultiLabelEncode:
|
|
gtc_encode: NRTRLabelEncode
|
|
- KeepKeys:
|
|
keep_keys:
|
|
- image
|
|
- label_ctc
|
|
- label_gtc
|
|
- length
|
|
- valid_ratio
|
|
sampler:
|
|
name: MultiScaleSampler
|
|
scales: [[320, 32], [320, 48], [320, 64]]
|
|
first_bs: &bs 128
|
|
fix_bs: false
|
|
divided_factor: [8, 16] # w, h
|
|
is_training: True
|
|
loader:
|
|
shuffle: true
|
|
batch_size_per_card: 14
|
|
drop_last: true
|
|
num_workers: 1
|
|
Eval:
|
|
dataset:
|
|
name: SimpleDataSet
|
|
data_dir: ./RecEvalData/
|
|
label_file_list:
|
|
- ./rec_eval_label.txt
|
|
transforms:
|
|
- DecodeImage:
|
|
img_mode: BGR
|
|
channel_first: false
|
|
- MultiLabelEncode:
|
|
gtc_encode: NRTRLabelEncode
|
|
- RecResizeImg:
|
|
image_shape: [3, 48, 320]
|
|
- KeepKeys:
|
|
keep_keys:
|
|
- image
|
|
- label_ctc
|
|
- label_gtc
|
|
- length
|
|
- valid_ratio
|
|
loader:
|
|
shuffle: false
|
|
drop_last: false
|
|
batch_size_per_card: 14
|
|
num_workers: 1
|
|
```
|
|
|