【数据竞赛】CV赛题总结:人民币面值与编码识别

CV

人民币面值与编码

在2019年6月份参加了TinyMind人民币面值及编码识别比赛,最终获得了面试识别并列第二、编码识别初赛第三/复赛第五的成绩,在文本我将分享这次比赛的历程和我的学习收获,比赛代码和参考文献在文章末尾。

PART

01

赛题分析与解决方案

人民币作为我国法定货币,与生俱来,人见人爱。它在我们日常生活中的重要性不言而喻,每张人民币纸币都有一串唯一的字符号码,是人民币的重要标识。由于这串序列号的唯一性,若能在纸币识别装置上添加编码识别,让每张人民币的行走轨迹都可以被记录并存储,这样人民币都能进入银行监管之内,不仅有助于识别假币,还可以很大程度上协助攻破抢劫,盗窃人民币等非法事件。人民币编码识别技术在日常生活中具有很好的实用价值。

赛题任务1:⼈⺠币⾯值识别

要求参赛者根据训练集图片训练模型,识别人民币面值,并按要求提交验证集训练结果进行验证。评分采⽤top1准确率。

显而易见不同面值的人民币的图像具有很大区别,在赛题1中我们目标是将不同面值的人民币进行分类,即根据不同面值的图片进行分类操作。

解题思路:显然赛题1是一个典型的图像分类任务,直接使用CNN图像分类的流程就可以解决。具体的解决流程是Fine-Tune一个分类网络,并在测试集上进行TTA(Test Time Augmentation)操作,就可以解决。

赛题任务2:人民币编码识别

人民币编码识别目的是识别人民币具体的编码,人民币编码由10位组成,具体由冠号和编码两个部分。冠号一般为两个字母或者两个字母中间夹上一个数字的情况,编码则都是阿拉伯数字。编码识别使用编码整体准确率和字符logloss打分;

原始赛题只给定了人民币图像的类别和编码,但没有给定人民币具体的编码位置。,因此我自己标注200张带有位置信息的标注文件。具体来说编码识别任务进一步可以拆分为:编码定位和编码识别两个步骤。

在编码定位阶段,需要定位编码具体的位置;编码识别阶段则需要对具体编码进行识别。或许你可能会问,能不能直接将整张图直接进行编码识别,不进行编码定位的操作。但直接用整图进行识别的方式是不太可取的,首先整图噪音比较多,模型容易学习到噪音,其次图片太大占用的模型需要显存越大。那么在编码识别阶段能不能拆分成字符进行单个字符识别呢?这种方法也不可取,首先字符并不能完全切割彻底,其次字符与字符之间可能存在分布关键。比如冠号两个字符并不是独立的,所以切割成字符的形式也不太合理。

其实编码识别这个任务本质就是一个OCR任务,在OCR任务中也是具体包括编码定位和编码识别两个步骤。首先来看编码定位任务,编码定位任务目标是找到编码的位置。我的解决思路是使用物体检测的模型来定位编码,当然你也可以使用传统图像处理的方法来定位。


具体来说我是选择Faster-RCNN模型来训练了一个编码定位模型,为了定位的精度我没有选择SSD和YOLO模型。

在定位了人民币的编码之后,就是编码识别的步骤了。人民币编码的图片都是定长字符组成的,因此是一个定长字符识别的问题。有两种解决方法,思路1直接对编码图片进行多分类操作,10个字符则进行10个多分类;思路2使用CRNN+CTC的模型。

思路1编码图片的多分类操作(Multi-CNN),就是在分类CNN后面加上10个全连接层,进行10个分类操作,然后将10个分类loss求和训练即可。这种方法思路简单,模型仅包含卷积层和全连接层,模型收敛快;但这种思路是将每个字符单独进行分类的,所以没有考虑到字符与字符之间的关系,在精度上有一些欠缺。

思路2是直接使用CRNN+CTC的思路,这也是OCR字符识别的常见模型。当然现在也有一些后序的改进,比如Attention+CTC或者CNN+CTC的论文。后序的改进我在比赛中没有尝试,因为我觉得CRNN模型应该就能够解决水平编码识别的问题了。CRNN模型的优点是模型拟合能力强,模型的精度高;缺点是模型包含RNN/LSTM层,训练会稍微慢一些,也会受到训练字符分类的影响。

https://arxiv.org/pdf/1709.04303.pdf

CRNN我是用了Pytorch开源版本的,并修改了输入图片的尺寸,增加了max-pooling层(参考CRNN论文),使用resnet18提取CNN特征。

CRNN模型结构

在这个比赛中可以拆分K折训练,我们得到K个模型,并对测试集进行TTA操作,那么会对一个样本会有不同的预测结果,则需要对结果编码结果进行合并。具体可以进行结果平均和字符结果投票的操作。

样本变换

以上就是编码识别的两个模型,那么如何有效的对两个模型的结果进行有效融合呢?这里我是考虑到两个模型的差异:将Multi-CNN与CRNN模型进行结果融合,如果CRNN识别的编码结果存在问题,则使用Multi-CNN结果进行代替。

PART

02

比赛总结与展望

以上就是我对本次比赛的总结,流程上还是比较简单的。只需要将具体的任务进行拆分解决,最后Have Fun!有任何问题可以直接私信,谢谢!

  1. arxiv.org/pdf/1312.6082

  2. arxiv.org/pdf/1507.0571

  3. https://arxiv.org/pdf/1709.04303.pdf

  4. https://github.com/chongyangtao/Awesome-Scene-Text-Recognition

比赛代码开源:

https://github.com/datawhalechina/competition-baseline

往期精彩回顾




适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑AI基础下载(pdf更新到25集)机器学习的数学基础专辑获取一折本站知识星球优惠券,复制链接直接打开:https://t.zsxq.com/yFQV7am本站qq群1003271085,加入微信群请扫码喜欢文章,点个在看
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值