输入:手写体图像切片数据集
输出:对应的识别结果
赛题在赛程中分设为两个独立任务,各自设定不同条件的训练集、测试集和建模环境,概述如下:
任务一:提供开放可下载的训练集及测试集,允许线下建模或线上提供 Notebook 环境及 Terminal 容器环境(脱网)建模,输出识别结果完成赛题。
任务二:提供不可下载的训练集,要求线上通过 Terminal 容器环境(脱网)建模后提交模型,由系统输入测试集(即对选手不可见),输出识别结果完成赛题。
上述两个任务的更具体情况请参见第五节赛题赛程的详细说明。
四、赛题数据
A. 数据规模和内容覆盖
| | 任务一 | 任务二 |
| — | — | — |
| 训练集(含验证集,请自行划分) | 8 千张图像,包含年份、金额2种信息 | 3 万张图像,包含银行名称、年份、月份、日期、金额5 种信息。 |
| 测试集 | 2 千张图像 | 设定 AB榜:A 榜:5 千张图像B 榜:5 千张图像 |
B.数据内容示例:
原始手写体图像共分为三类,分别涉及银行名称、年月日、金额三大类,分别示意如下:
相应图片切片中可能混杂有一定量的干扰信息,分别示例如下;
识别结果 JSON 在训练集中的格式如下(请注意选手提交的结果文件 JSON 和训练集中的 JSON 格式不同):
json 文件内容规范:
{
“image1”: “陆万捌千零贰拾伍元整”,
“image2”: “付经管院工资”,
“image3”: “”,
…
}
五、赛题赛程和提交要求
本赛题共分成三个大阶段:
线上比赛(包含任务一和任务二) ———— 解决方案复审 ———— 终选答辩
赛程总览示意如下:
===============================================================
通过在网上查阅资料,得知OCR比赛最常用的模型是CRNN+CTC。所以我最开始也是采用这个方案。
上图是我找到的资料,有好多个版本。因为是第一次做OCR的项目,所以我优先选择有数据集的项目,这样可以快速的了解模型的输入输出。
所以我选择的第一个Attention_ocr.pytorch-master.zip,从名字上可以看出这个是加入注意力机制,感觉效果会好一些。
下图是Attention_ocr.pytorch-master.zip自带的数据集截图,从截图上可以看出,数据的格式:“图片路径+空格+标签”。我们也需要按照这样的格式构建数据集。
新建makedata.py文件,插入下面的代码。
import os
import json
#官方给的数据集
image_path_amount = “./data/train/amount/images”
image_path_date = “./data/train/date/images”
#增强数据集
image_path_test=‘./data/gan_test_15000/images/0’