世界人工智能大赛 Top1 方案!手写体 OCR 识别

 Datawhale干货 

作者:王浩,结行科技算法工程师

参加了“世界人工智能创新大赛”——手写体 OCR 识别竞赛(任务一),取得了Top1的成绩。队伍随机组的,有人找我我就加了进来,这是我第一次做OCR相关的项目,所以随意起了个名字。下面通过这篇文章来详细介绍我们的方案。

478af0112b51351aae8199f4f2190cb3.png

实践背景

赛题背景

银行日常业务中涉及到各类凭证的识别录入,例如身份证录入、支票录入、对账单录入等。以往的录入方式主要是以人工录入为主,效率较低,人力成本较高。近几年来,OCR相关技术以其自动执行、人为干预较少等特点正逐步替代传统的人工录入方式。但OCR技术在实际应用中也存在一些问题,在各类凭证字段的识别中,手写体由于其字体差异性大、字数不固定、语义关联性较低、凭证背景干扰等原因,导致OCR识别率准确率不高,需要大量人工校正,对日常的银行录入业务造成了一定的影响。

赛题地址:http://ailab.aiwin.org.cn/competitions/65

赛题任务

本次赛题将提供手写体图像切片数据集,数据集从真实业务场景中,经过切片脱敏得到,参赛队伍通过识别技术,获得对应的识别结果。即:

  • 输入:手写体图像切片数据集

  • 输出:对应的识别结果

本任务提供开放可下载的训练集及测试集,允许线下建模或线上提供 Notebook 环境及 Terminal 容器环境(脱网)建模,输出识别结果完成赛题。

赛题数据

A. 数据规模和内容覆盖

56cea6687be090e0a4ea55ef9ad38cc0.png

B.数据示例

原始手写体图像共分为三类,分别涉及银行名称、年月日、金额三大类,分别示意如下:

4cfda26453767dec3b2d436540d3c6b8.png

相应图片切片中可能混杂有一定量的干扰信息,分别示例如下:

cd77146fdad3c8b41f455b2992a6b784.png

识别结果 JSON 在训练集中的格式如下:

json 文件内容规范:
{
 "image1": "陆万捌千零贰拾伍元整",
 "image2": "付经管院工资",
 "image3": "",
 ...
}

实践方案

通过在网上查阅资料,得知OCR比赛最常用的模型是CRNN+CTC。所以我最开始也是采用这个方案。

67d53ddb400059fa88f885b8a9a8f35b.png

上图是我找到的资料,有好多个版本。因为是第一次做OCR的项目,所以我优先选择有数据集的项目,这样可以快速的了解模型的输入输出。

所以我选择的第一个Attention_ocr.pytorch-master.zip,从名字上可以看出这个是加入注意力机制,感觉效果会好一些。

构建数据集

下图是Attention_ocr.pytorch-master.zip自带的数据集截图,从截图上可以看出,数据的格式:“图片路径+空格+标签”。我们也需要按照这样的格式构建数据集。

53061bb93c916ab64926814ebac5f02c.png

新建makedata.py文件,插入下面的代码。

import os
import json
#官方给的数据集
image_path_amount = "./data/train/amount/images" 
image_path_d
  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值