PaddleOCR
PaddleOCR copied to clipboard
小图训练完后的模型识别率超级低
训练OCR的图片的大小基本是小于50K左右的图片,分辨率大概是200多×200多,使用ResNet50_vd_ssld_pretrained对数据进行训练,训练的图片数据是1385张,训练的次数是1200次 test文件夹的图片是277张,train文件夹的图片是1108张,训练的是det的模型
- 系统环境/System Environment:windows10
- 版本号/Version:Paddle: PaddleOCR: release/2.5 训练结束时的显示的训练结果 [2022/08/04 15:14:42] ppocr INFO: epoch: [1200/1200], global_step: 265160, lr: 0.001000, loss: 0.139509, loss_shrink_maps: 0.065475, loss_threshold_maps: 0.063840, loss_binary_maps: 0.013063, avg_reader_cost: 0.26215 s, avg_batch_cost: 0.57638 s, avg_samples: 5.0, ips: 8.67485 samples/s, eta: 0:00:24 [2022/08/04 15:14:48] ppocr INFO: epoch: [1200/1200], global_step: 265170, lr: 0.001000, loss: 0.128418, loss_shrink_maps: 0.060416, loss_threshold_maps: 0.057747, loss_binary_maps: 0.012089, avg_reader_cost: 0.29317 s, avg_batch_cost: 0.60848 s, avg_samples: 5.0, ips: 8.21717 samples/s, eta: 0:00:18 [2022/08/04 15:14:55] ppocr INFO: epoch: [1200/1200], global_step: 265180, lr: 0.001000, loss: 0.127022, loss_shrink_maps: 0.057083, loss_threshold_maps: 0.057747, loss_binary_maps: 0.011397, avg_reader_cost: 0.28417 s, avg_batch_cost: 0.60170 s, avg_samples: 5.0, ips: 8.30973 samples/s, eta: 0:00:12 [2022/08/04 15:15:01] ppocr INFO: epoch: [1200/1200], global_step: 265190, lr: 0.001000, loss: 0.131265, loss_shrink_maps: 0.059653, loss_threshold_maps: 0.058694, loss_binary_maps: 0.011885, avg_reader_cost: 0.28563 s, avg_batch_cost: 0.60158 s, avg_samples: 5.0, ips: 8.31142 samples/s, eta: 0:00:06 [2022/08/04 15:15:08] ppocr INFO: epoch: [1200/1200], global_step: 265200, lr: 0.001000, loss: 0.136902, loss_shrink_maps: 0.061963, loss_threshold_maps: 0.061488, loss_binary_maps: 0.012376, avg_reader_cost: 0.28534 s, avg_batch_cost: 0.59969 s, avg_samples: 5.0, ips: 8.33761 samples/s, eta: 0:00:00 [2022/08/04 15:15:08] ppocr INFO: save model in ./output/det_r50_vd/latest [2022/08/04 15:15:08] ppocr INFO: save model in ./output/det_r50_vd/iter_epoch_1200 [2022/08/04 15:15:08] ppocr INFO: best metric, hmean: 0.6481334392374901, precision: 0.5746478873239437, recall: 0.7431693989071039, fps: 20.858439296611856, best_epoch: 598
模型评估的结果 [2022/08/05 11:00:59] ppocr INFO: resume from ./output/det_r50_vd/best_accuracy [2022/08/05 11:00:59] ppocr INFO: metric in ckpt *************** [2022/08/05 11:00:59] ppocr INFO: hmean:0.6481334392374901 [2022/08/05 11:00:59] ppocr INFO: precision:0.5746478873239437 [2022/08/05 11:00:59] ppocr INFO: recall:0.7431693989071039 [2022/08/05 11:00:59] ppocr INFO: fps:20.858439296611856 [2022/08/05 11:00:59] ppocr INFO: best_epoch:598 [2022/08/05 11:00:59] ppocr INFO: start_epoch:599 eval model:: 100%|██████████████████████████████████████████████████████████████████▊| 276/277 [00:18<00:00, 14.90it/s] [2022/08/05 11:01:18] ppocr INFO: metric eval *************** [2022/08/05 11:01:18] ppocr INFO: precision:0.5746478873239437 [2022/08/05 11:01:18] ppocr INFO: recall:0.7431693989071039 [2022/08/05 11:01:18] ppocr INFO: hmean:0.6481334392374901 [2022/08/05 11:01:18] ppocr INFO: fps:16.68259834659779
个人感觉减少数据集和epoch
是要减少训练的图片和训练次数?
确认是否正确加载了预训练模型,另外可以根据数据量进行调整训练轮数epoch和学习率
确认是否加载了预训练模型,另外可以根据数据量进行调整训练训练数字和学习率
已经正确加载了预训练模型,如果预训练模型没加载成功应该是会报错才对
加载没成功不会报错,会出现warning,shape不匹配等log信息,可以检查一下哈
加载没有成功不会报错,会出现警告,形状不匹配等日志信息,可以检查一下哈
[2022/08/02 15:16:56] ppocr INFO: train with paddle 2.3.0 and device Place(gpu:0) [2022/08/02 15:16:56] ppocr INFO: Initialize indexs of datasets:['./image/train/Label.txt'] [2022/08/02 15:16:56] ppocr INFO: Initialize indexs of datasets:['./image/test/Label.txt'] [2022/08/02 15:17:02] ppocr INFO: load pretrain successful from ./pretrain_models/ResNet50_vd_ssld_pretrained [2022/08/02 15:17:02] ppocr INFO: train dataloader has 222 iters [2022/08/02 15:17:02] ppocr INFO: valid dataloader has 277 iters [2022/08/02 15:17:02] ppocr INFO: During the training process, after the 0th iteration, an evaluation is run every 2000 iterations 这个是日志显示的内容,证明训练模型加载成功了
试试这种非训练方法效果 https://blog.csdn.net/YY007H/article/details/124973777
分辨率大概是200多×200多
在训练,评估的预处理中尝试对图像进行padding,padding到640*640试试
尝试这种非训练方法效果 https://blog.csdn.net/YY007H/article/details/124973777
把配置文件中的EastRandomCropData的size修改到图片大小的范围就能解决了。个人猜想原因是之前训练小图片时size没修改,导致在训练的时候会把小图片resize成了大图片,这里可能就会导致训练有问题。但如果把size修改成了和训练图片差不多的大小,那么就不会有这个问题
大概是200多×200多
在,评估的测试中对图像进行训练,填充到 640*640
把配置文件中的EastRandomCropData的size修改到图片大小的范围就能解决了。个人猜想原因是之前训练小图片时size没修改,导致在训练的时候会把小图片resize成了大图片,这里可能就会导致训练有问题。但如果把size修改成了和训练图片差不多的大小,那么就不会有这个问题