别人的公园

  • 9

    获得赞
  • 0

    发布的文章
  • 1

    答辩的项目

手写英文字体识别 Top1

Batch大小为32,循环次数为10次,通过在线上环境完成训练,模型最优精度评分为87.06。

最后更新 2020/10/27 16:03 阅读 959

手写英文字体识别(名企内推)

最后更新 2020/10/27 16:03

阅读 959

ResNeXt ResNeSt

大家好,我是别人的公园。

我的介绍主要分三个部分展开,分别是数据处理、模型方法和感想与建议。


一、数据处理

首先是数据这一块训练数据最大的特点就是,碎片化,很杂乱,看上去分布似乎一样,其实包含了很多噪声。

但是由于标签只提供了数据的内容,没有提供bounding box或者是mask,因此这也是整个比赛提分的最大障碍。

针对这个问题,我用了一个最笨的办法。就是引入个人强先验知识。

我首先针对所有图像进行了数据长宽分布的统计,横轴是长,纵轴是宽,可以看到这个分布就是这个样子,然后我根绝图片尺寸的分布对不同尺寸的图像进行了裁切。

当然这个裁切的设计并不准确,很多时候也没切准,但是也该让模型有点鲁棒性,所以就这样考虑了。当然可以尝试一些其他方法,比如可以用opencv工具进行投影法、连通图等进行预处理切割。

我同时对数据分布也进行了统计,大部分数据的长度分布在5-10个字符的长度。

参数设置

epoch设置为23,为什么是23是因为我的生日是23号,哈哈哈,batchsize设置为64。

关于数据增强,值得一提的是,在文字识别中不能用水平翻转,给弄反就弄巧成拙了,大概就是进行了

  • resize
  • 微小的rotate
  • 微小的仿射
  • 微小的颜色抖动
  • 归一化
  • cutout增加了一点遮挡噪声,提升模型鲁棒性。

二、模型方法

模型方法用的是最经典的文字识别模型,CRNN,是录用在2017年的人工智能顶刊上。

说到文字识别,主要可以分为定长和变长,定长主要是针对固定长度的文字识别,如验证码,这种场景比较简单。

变长更常见,就是标签长度可长可短,变长的方法目前主流的有两种,一种是CRNN为代表,一种是基于Attention的方法了。我用的是基于CRNN,训练更快,且推理速度也更快,Attention更擅长挖掘序列关系,适合短语句识别。

在比赛当中,我使用的不是最原始的CRNN,我对它进行了一点微小的改进,不再是简单地用几层CNN堆叠,所以我用了resnext和resnest去替换了前面的CNN层,用resnext50的前6层替换了原来CRNN的前面4层卷积。并且修改了resnext50的第一个卷积层,改小了kernelsize,stride和padding,相当于调小了第一层的感受野。

后面就几乎一样了,送到双向的LSTM中。然后resnest同理,最后对两个模型预测进行了融合,也没有用更多模型了。


三、感想与建议

首先还是要非常感谢flyai平台,提供这个机会能大家一起交流。

  • 改进的小意见

首先是对CRNN的改进,比如针对CNN的backbone的一些修改还可以尝试,大模型可以考虑senet等,如果是想落地,可以尝试mobilenet,shufflenet或者ghostnet等。

还可以对rnn的结构进行一些调整,比如采用gru等等。

也可以考虑使用基于attentiuon的模型,或者像paddleocr提供的starnet模型的方法,都可以去尝试一下。

  • 针对平台一点小建议

前期我尝试了很久,每次运行到一段时间就卡死了一样,然后就放弃了。最后一个礼拜看评论区说是环境版本配置的问题,才尝试,终于训练起来。确实浪费不少时间和积分呀,也没有太多时间进行改进和炼丹。


最后感谢大家的收听,如果有什么问题,可以在评论区提出大家一起讨论。谢谢了。

本文为作者在FlyAI平台发布的原创内容,采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,转载请附上原文出处链接和本声明。
本文链接地址:https://flyai.com/n/153737
立即参加 手写英文字体识别(名企内推)
代码展示

ResNeXt ResNeSt

选择查看文件
$vue{codeKeys}
  • $vue{ix}
赞赏贡献者还可以查看和下载优质代码内容哦!
赞赏 ¥40.00元
©以上内容仅用于在FlyAI平台交流学习,禁止转载、商用;违者将依法追究法律责任。
讨论
500字
表情
每日优质讨论奖励 20FAI
发送
每日优质讨论奖励 20FAI
删除确认
是否删除该条评论?
取消 删除
感谢您的关注
该篇内容公开后我们将会给你推送公开通知
好的
发布成功!
您的公开申请已发送至后台审核,
通过后将公开展示本详情页!
知道了
向贡献者赞赏
¥40.00
微信支付
支付宝

请先绑定您的微信账号 点击立即绑定

立即支付
温馨提示:
支付成功后不支持申请退款,请理性消费;
支付成功将自动解锁当前页面代码内容,付款前请确认账号信息。
微信扫码支付
请前往Web网页进行支付

敬请谅解,如有疑问请联系FlyAI客服

知道了
举报
请选择举报理由
确定
提示
确定要删除?
取消删除

今日签到成功

获得 $vue{sianData.sign_fai} FAI的GPU算力积分

知道了