江水

  • 9

    获得赞
  • 1

    发布的文章
  • 1

    答辩的项目

手写英文字符识别top4----答辩

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

最后更新 2020/10/29 17:14 阅读 571

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

最后更新 2020/10/29 17:14

阅读 571

图像分类

       1. 问题分析 

看到这个题目,最先想到的是MNIST的手写数字识别,深度神经网络学习的Hello World! 然而,这个仿佛要难上许多。我们先看(吐槽)数据,里面是大小不一,但又相差不大的英文签名图片,每个人写法不一,有分离的,有连笔的,有粗的,有模糊的,有一半的,有人居然用没有墨水的笔签名,还有人自己名字写错,重新改写的,好吧,这些我都忍了,居然还有指鹿为马,明明是张三的签名,标签居然是李四!!!看到这样“真实”的数据,心中有一万匹马跑过!看来,数据得经过27层过滤。查阅了下资料,这种题一般有两种做法,第一种是将图片整体送入网络,直接得到签名。第二种是先将字符分离,逐个识别。不得不说第一种让人好喜欢,好直男,快刀斩乱麻,但是,做这样的直男,需要很大的本事才行,就如有人问撕葱:你为什么喜欢逛街?撕葱答:因为有钱啊!直不直!喜欢不喜欢! 

2. 数据处理 

既然选择了第二种方法,那么数据处理就显得尤为重要,字符分离的好坏,直接影响后面的识别。仔细观察数据,大致可以分为四类,第一类印刷体大概是”NOM:”这样,签名在后面的。第二类印刷体是“NOM”这样的,就是少了个冒号,签名在下面的。第三类是没有印刷体,第四类是看不清,或是空白的。所以重点是找到印刷体,就可以定位,进行图片切割。所以,数据处理又可以为分三步。

 一是印刷体定位。我用的是opencv的模板匹配,将印刷体定位之后,进行第一次切割,将签名切割出来。 

二是切割签名,得到单个字符。这里面要手工去噪声,没有连笔的字体好分离,有连笔的可以根据宽度或其它算法进行分离。 

三是计算空格位置。外国人的名字就是麻烦,只能根据字间距,估算出空格位置。一般来说,如果分割出来的字符个数与标签字符个数(不计空格)相同,就认为分离对了,保存下来,将来用作下步训练网络用。 

3.训练经过 

训练为两步:

 第一步是将前面得到的字符进行整形,得到28*28大小的图片,进行归一化处理。 

第二步是设计一个网络,进行训练。这就跟那个MNIST基本相同了,感觉随便一个模型都能得到不错的准确率。

训练方法:

reduce_lr =ReduceLROnPlateau(monitor='val_acc', mode='max', factor=0.1, patience=3,verbose=1) 

early_stopping =EarlyStopping(monitor='val_acc', mode='max', min_delta=0, patience=5,verbose=0) 

优化方式:adam

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

图像分类

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

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

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

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

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

今日签到成功

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

知道了