“英特尔创新大师杯”深度学习挑战赛 赛道1:通用场景OCR文本识别任务
DataWhale七月份组队学习——基于AI Studio平台
https://aistudio.baidu.com/aistudio
比赛简介
OCR (Optical Character Recognition,光学字符识别)是最早的计算机视觉任务之一。人类使用电子设备(图像采集装置)采集现实场景中打印的字符,然后通过检测字符的形状,用字符识别的方法将其翻译成计算机文字。随着技术的发展,OCR已经逐渐应用到社会的各种需求中。如今,我们可以在各个行业领域中看到OCR的广泛用途,包括:证件、车牌识别;物流分拣;智慧医疗;无纸化办公;文档检索等等。因此,在互联网时代中,OCR的应用算法,具有很大的商业价值。 在一些简单环境下,例如电子文档的识别,OCR的识别的准确率已经可以达到很高的水准。但是,OCR技术依然面临着很多难点,一些以往的算法在处理复杂图文场景里的文字时,依旧显得力不从心。因此,阿里云计算平台事业部团队联合英特尔举办此次OCR任务竞赛,旨在解决复杂场景中通用OCR识别的难点,以满足人们在不同行业应用中的需求。
赛题背景
本次比赛的主要目的是以端到端的方式检测和识别所提供图像中的每个文本实例。主要任务为中文脚本文本识别: 输入:场景文字图像 输出:中文脚本的每个文本实例的空间位置以及每次检测的预测单词的空间位置。
一、AI Studio
AI Studio是百度提供的一个算力提供平台,提供GPU计算资源,可以免去cuda和paddle的环境配置过程。 目前在平台可直接领取100小时的算力卡。
二、模型训练
1.下载比赛图片
python3 down_image.py
2.下载预测模型
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
由于OCR包括多个步骤,此时我们只对其中检测的部署进行fientune,所以其他部署的权重也需要下载。
下载完成后可以验证是否可以成功预测:
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,这里训练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/
在这里需要对configs/det/ch_ppocr_v2.0/ch_det_res18_dbv2.0.yml文件中的num_workers进行修改,由于AI Studio只有一张GPU卡,所以num_workers都需要修改为0,否则会报错。
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*
压缩包内容如下:
三、提交模型结果
提交预测结果,得分如下:
|