算法竞赛实践-通用场景OCR文本识别任务_Baseline学习实践

OCR (Optical Character Recognition,光学字符识别)是最早的计算机视觉任务之一。人类使用电子设备(图像采集装置)采集现实场景中打印的字符,然后通过检测字符的形状,用字符识别的方法将其翻译成计算机文字。随着技术的发展,OCR已经逐渐应用到社会的各种需求中。

现在我们尝试参与天池算法比赛“通用场景OCR文本识别任务”。

“英特尔创新大师杯”深度学习挑战赛 赛道1:通用场景OCR文本识别任务
https://tianchi.aliyun.com/competition/entrance/531902/introduction

感谢Datawhale阿水提供的baseline
我们首先将写好的训练和预测代码克隆下来

git clone https://gitee.com/coggle/tianchi-intel-PaddleOCR
cd tianchi-intel-PaddleOCR
sh run.sh

这样我们就一键完成了训练和预测

分步解析

1. 下载图片
python down_image.py

保存目录为train_data/tianchi/image,按照文件名进行保存,训练集和测试集存储在一起。

步骤2:下载预测模型

由于OCR包括多个步骤,此时我们只对其中检测的部署进行fientune,所以其他部署的权重也需要下载。

mkdir inference && cd inference/

#下载模型
wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar
wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar
wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar

# 解压模型
tar -xf ch_ppocr_server_v2.0_rec_infer.tar 
tar -xf ch_ppocr_server_v2.0_det_infer.tar
tar -xf ch_ppocr_mobile_v2.0_cls_infer.tar

下载完成后可以验证是否可以成功预测:

python3 tools/infer/predict_system.py --image_dir="./1.jpg" --det_model_dir="./inference/ch_ppocr_server_v2.0_det_infer/"  --rec_model_dir="./inference/ch_ppocr_server_v2.0_rec_infer/" --cls_model_dir='./inference/ch_ppocr_mobile_v2.0_cls_infer/' --use_angle_cls=True --use_space_char=True

输出结果为:

dt_boxes num : 2, elapse : 0.9568207263946533
cls num  : 2, elapse : 0.006417512893676758
rec_res num  : 2, elapse : 0.05788707733154297
Predict time of ./1.jpg: 1.036s
土地整治与土壤修复研究中心, 0.973
华南农业大学-东图, 0.992

如果直接使用预训练模型,其实也可以得到不错的分数。但是比赛数据集与通用数据集存在差异,finetune后精度会更好。

步骤3:训练预检测模型

首先下载检测模块的预训练模型:

cd inference
wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_train.tar
tar -xf ch_ppocr_server_v2.0_det_train.tar

然后进行finetune,这里训练4个epoch,30分钟左右完成训练。

python3 tools/train.py -c configs/det/ch_ppocr_v2.0/ch_det_res18_db_v2.0.yml -o Global.pretrain_weights=./inference/ch_ppocr_server_v2.0_det_train/
步骤4:对测试集进行预测

训练完成后,接下来需要将模型权重导出,用于预测。并对测试集的图片进行预测,写入json。

# 将模型导出
python3 tools/export_model.py -c configs/det/ch_ppocr_v2.0/ch_det_res18_db_v2.0.yml -o Global.pretrained_model=output/ch_db_res18/best_accuracy  Global.save_inference_dir=output/ch_db_res18/

# 对测试集进行预测
python3 tools/infer/predict_system_tianchi.py --image_dir="./doc/imgs/11.jpg" --det_model_dir="output/ch_db_res18/"  --rec_model_dir="./inference/ch_ppocr_server_v2.0_rec_infer/" --cls_model_dir='./inference/ch_ppocr_mobile_v2.0_cls_infer/' --use_angle_cls=True --use_space_char=True

# 将结果文件压缩
zip -r submit.zip Xeon1OCR_round1_test*
提交结果到天池

在这里插入图片描述

参考资料
https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.1/doc/doc_ch/customize.md
https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.1/doc/doc_ch/recognition.md
https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.1/doc/doc_ch/inference.md

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值