参考baseline,试用百度OCR框架进行OCR识别。可以参考PaddlePaddleOCR安装教程。装好PaddleOCR,数据源按路径复制到代码里,运行就ok啦!
根据官方教程,跟着一步一步走。
总结一下主要的流程:
步骤1:下载比赛图片
创建文件夹保存目录为/train_data/tianchi/image,
按照文件名进行保存,训练集和测试集存储在一起。
主要使用脚本:
python3 down_image.py
步骤2:下载预测模型
使用到PP预训练的模型,所以需要下载对应的模型权重文件。
直接使用“预配"参数可以出来结果,但是如果想要得到高分,还是要去做对应的调参
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
步骤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,
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*
看baseline 感觉还是有很多不太懂。目前就是跟着教程能走下来。配置环境遇到很多问题。