The Street View House Numbers (SVHN) Dataset是街景字符的数据集。该数据集用于modern-day map making。街景字符转录是字符序列识别问题。针对图片序列识别问题传统思路是定位、分割、识别,而Google2014年的论文《Multi-digit Number Recognition from Street View Imagery using Deep Convolutional Neural Networks》提出了基于深度卷积神经网络的方法。
问题描述:
- 图片中的字符串序列长度不定但不超过5个字符,可以将赛题抽象为一个定长字符识别问题,待识别字符序列为LXXXXX,其中
- 每个X的取值范围为[0,1,2,3,4,5,6,7,8,9,空字符]
- L代表字符串非空字符长度,取值范围[0,1,2,3,4,5,’>5’]
- 另,图片中不仅包含字符序列,还有门框等干扰信息,为了提高准确率可根据json文件提供的数字框位置裁剪图片,如:
→
- 另,由于街景字符对应门牌编号,字符串序列的任意错误直接导致地图导航错误,因此街景字符识别以整体识别准确率为评价指标,整体准确率越高则模型性能越佳。
解决方案:
定长字符识别的一种解决方案是直接对编码图片进行多分类操作(Multi-CNN):
- 模型的输入是的图片,经过一系列的CNN层进行特征提取,变成了一个含有4096个特征的向量H
- 根据这4096个特征,分别经过6个Softmax层,分别对各个字符串进行分类(分别对5个X字符进行11个类别的分类以及1个L字符进行6个类别的分类。)
- 将6个分类loss求和训练即可。
这种方法思路简单,模型仅包含卷积层和全连接层,模型收敛快;但这种思路是将每个字符单独进行分类的,所以没有考虑到字符与字符之间的关系,在精度上有一些欠缺。比如第一个字符串代表长度,与后面位数的字符串存在关联。
参考
- SVHN的Keras实现
- 《Multi-digit Number Recognition from Street View Imagery using Deep Convolutional Neural Networks》
- 【竞赛分享】TinyMind人民币面值及编码识别-第五名