Pytorch应用之——人民币总结

由于实习原因,好久没有跟新博客了。今天总结一下参加tinymind人民币编码区识别比赛的经验跟代码。

人民币编码区识别比赛分为预赛与正赛。预赛很简单,识别纸币面额,我在前面的博客中讲述过,戳这里
简单讲一下,由于纸币背景简单,识别面值其实就是简单的分类问题,我的方法就是直接把图像塞进resnet18里,结果正确率是可以达到100%的。代码在这儿

主要介绍正赛,正赛是编码区识别。编码区的识别分为两个步骤。首先,我们要先把编码区找到,也就是将编码区从原图中裁剪出来。然后,通过裁剪出的图片以及它的编码区Label放入文本识别的框架里训练,获得模型,再test出结果。
在这里插入图片描述
编码区检测我使用了一些方法有目标检测也有文本Ocr的,如yolov3,EAST,CTPN。我从数据集中选取1500张来做它们的训练集,得出结果发现yolov3可以检测出来,但会出现检测不全的情况,EAST跟CTPN结果较好。原理不介绍了,我把yolov3的代码给大家戳这里

其实编码区检测大家效果都差不多,主要区别还是在文本识别。我用的是cnn+LSTM+ctc。主要思路是,讲编码区图片输入,经CNN降采样获得一个适合LSTM的feature map,然后放入LSTM,使得每个宽度之间获得前后的关联信息,这样对识别效果会有好处,当然你也可以舍弃rnn(比赛中有人做过)。CNN部分我用的VGG的网络结构,但最终训练集正确率99%而验证机的准确率只有90左右,出现了过拟合情况。不知道有没有大神告诉我怎么才能避免这种情况。

大致过程如上,最终结果95左右,虽然不高,但也完成了。主要跟大家分享经验思想以及代码,希望对大家有帮助。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值