PaddleOCR模型训练
作者:互联网
环境准备
1.PaddlePaddle 按照官网安装即可
2.PaddleOCR 下载zip压缩包
3.PPOCRLabel PaddleOCR中以包含
4.需要训练的数据图片
使用PPOCRLabel标注数据
1.打开PPOCRLabel并打开数据文件夹
1. 将下载好的PaddleOCR解压并进入解压后的目录PPOCRLabel
2. 在PPOCRLabel目录下运行cmd
3. 执行以下命令打开PPOCRLabel: PPOCRLabel --lang ch
对图片数据进行标注修正
可选用左下角自动标注或手动进行标注,如果需要识别表格必须右侧表格标注,自动标注后如有不对的需要手动进行修正。
例如下图中的一个单元格识别成了两个数据标注框
可以手动删除多余的标注框,然后修改相应的标注框内容,确认无误后点击确认进行下一张图片的标注。
说有数据全部标注确认后导出结果。
导出有顺序,如果需要导出表格Json结果必须先导出标记结果和识别结果
导出的文件说明
文件名 | 说明 |
---|---|
Label.txt | 检测标签,可直接用于PPOCR检测模型训练。用户每确认5张检测结果后,程序会进行自动写入。当用户关闭应用程序或切换文件路径后同样会进行写入。 |
fileState.txt | 图片状态标记文件,保存当前文件夹下已经被用户手动确认过的图片名称。 |
Cache.cach | 缓存文件,保存模型自动识别的结果。 |
rec_gt.txt | 识别标签。可直接用于PPOCR识别模型训练。需用户手动点击菜单栏“文件” - "导出识别结果"后产生。 |
crop_img | 识别数据。按照检测框切割后的图片。与rec_gt.txt同时产生。 |
tableRec_excel_output | 表格识别生成的excel文件 |
annotation.json | 导出的表格Json标注数据 。 |
使用标注好的数据进行模型训练
这里以表格训练为例,其余的修改配置文件即可
完整的配置文件说明可以参考配置文件
首先修改配置文件 PaddleOCR\configs\table\table_mv3.yml
修改相应的训练集数据文件夹(数据图片的路径)、数据标签路径(导出的annotation.json或者Label.txt或rec_gt.txt)和验证集数据文件夹和标签路径
我修改后的配置文件
如果是PaddlePaddle-CPU 则将以下配置文件的 use_gpu: True 改为 use_gpu: False
Global:
use_gpu: True
epoch_num: 400
log_smooth_window: 20
print_batch_step: 5
save_model_dir: ./output/table_infer/
save_epoch_step: 3
# evaluation is run every 400 iterations after the 0th iteration
eval_batch_step: [0, 2]
cal_metric_during_train: True
pretrained_model:
checkpoints:
save_inference_dir:
use_visualdl: False
infer_img: doc/table/table.jpg
# for data or label process
character_dict_path: ppocr/utils/dict/table_structure_dict.txt
character_type: en
max_text_length: 100
max_elem_length: 800
max_cell_num: 500
infer_mode: False
process_total_num: 0
process_cut_num: 0
Optimizer:
name: Adam
beta1: 0.9
beta2: 0.999
clip_norm: 5.0
lr:
learning_rate: 0.001
regularizer:
name: 'L2'
factor: 0.00000
Architecture:
model_type: table
algorithm: TableAttn
Backbone:
name: MobileNetV3
scale: 1.0
model_name: large
Head:
name: TableAttentionHead
hidden_size: 256
l2_decay: 0.00001
loc_type: 2
max_text_length: 100
max_elem_length: 800
max_cell_num: 500
Loss:
name: TableAttentionLoss
structure_weight: 100.0
loc_weight: 10000.0
PostProcess:
name: TableLabelDecode
Metric:
name: TableMetric
main_indicator: acc
# 训练集配置
Train:
dataset:
name: PubTabDataSet
data_dir: C:\\Users\77175\Desktop\table\train # 训练集数据文件夹
label_file_path: C:\\Users\77175\Desktop\table\annotation.json #数据集标签路径
transforms:
- DecodeImage: # load image
img_mode: BGR
channel_first: False
- ResizeTableImage:
max_len: 4
- TableLabelEncode:
- NormalizeImage:
scale: 1./255.
mean: [0.485, 0.456, 0.406]
std: [0.229, 0.224, 0.225]
order: 'hwc'
- PaddingTableImage:
- ToCHWImage:
- KeepKeys:
keep_keys: ['image', 'structure', 'bbox_list', 'sp_tokens', 'bbox_list_mask']
loader:
shuffle: True
batch_size_per_card: 4
drop_last: True
num_workers: 1
# 验证集配置
Eval:
dataset:
name: PubTabDataSet
data_dir: C:\\Users\77175\Desktop\table\train #验证集数据文件夹
label_file_path: C:\\Users\77175\Desktop\table\annotation.json #验证集标签路径
transforms:
- DecodeImage: # load image
img_mode: BGR
channel_first: False
- ResizeTableImage:
max_len: 4
- TableLabelEncode:
- NormalizeImage:
scale: 1./255.
mean: [0.485, 0.456, 0.406]
std: [0.229, 0.224, 0.225]
order: 'hwc'
- PaddingTableImage:
- ToCHWImage:
- KeepKeys:
keep_keys: ['image', 'structure', 'bbox_list', 'sp_tokens', 'bbox_list_mask']
loader:
shuffle: False
drop_last: False
batch_size_per_card: 4
num_workers: 1
开始训练模型
在PPOCRLabel目录下运行cmd执行以下命令
# 单机单卡训练
python tools/train.py -c configs/table/table_mv3.yml
# 单机多卡训练,通过 --gpus 参数设置使用的GPU ID
python -m paddle.distributed.launch --gpus '0,1,2,3' tools/train.py -c configs/table/table_mv3.yml
训练后会在输出文件夹下生成训练模型
将训练模型转换成推理模型
python tools/export_model.py -c configs/table/table_mv3.yml -o Global.pretrained_model=./output/table_mv3/best_accuracy Global.load_static_weights=False Global.save_inference_dir=./table_infer
训练好的推理模型进行验证和测试后就可使用了
补充
windows如果是cuda可以配置环境变量,在环境变量中添加 变量名:CUDA_VISIBLE_DEVICES 变量值:0 (你gup)
如果提示内存不足可以修改配置文件的训练时单卡batch size字段:batch_size_per_card 大小
标签:False,name,训练,PaddleOCR,模型,PPOCRLabel,table,标注 来源: https://www.cnblogs.com/zwbsoft/p/16331779.html