天池&Datawhale- 街景字符编码识别
Task1 赛题理解
赛题背景
需要选手预测真实场景下的字符识别,这是一个典型的字符识别问题**(分类问题)**
数据集说明
数据集来源自Google街景图像中的门牌号数据集(The Street View House Numbers Dataset, SVHN),并根据一定方式采样得到比赛数据集。
训练集数据包括3W张照片,验证集数据包括1W张照片,每张照片包括彩色图像、对应的编码类别和具体位置。
数据包组成
训练集图片文件夹(3W张,png格式),验证集图片文件夹(1W),测试集图片(4W张,png格式)
训练集,验证集标注文件每一字段说明
Field | Description |
---|---|
top | 左上角坐标X |
height | 字符高度 |
left | 左上角坐标X |
width | 字符宽度 |
label | 字符编码 |
评价标准
准确率
Score=
编
码
识
别
正
确
的
数
量
测
试
图
片
数
量
\frac{编码识别正确的数量}{测试图片数量}
测试图片数量编码识别正确的数量
解题思路
baseline提供了三种解题思路
1.将不定长字符识别转化为定长字符识别
根据对数据集的观察,图片中最多的字符个数为6个,所以将所有图像都抽象为6个字符的识别问题,图片中不满6个的部分填充字符X,问题转化为分别对6个字符进行分类
疑问:如何将图片中的含有字符的区域整块提取,同时怎么填充X,不是很理解
2.不定长字符识别
有特定方法解决不定长字符识别,比如CRNN,将图像数据视为一个单词或者一个句子。
3.先检测数字再识别
字符检测模型检测字符,把字符框出来
再进行多分类(这也恰是我想到的方法,可能也是大多数的人想到的方法?)
可以考虑物体检测模型SSD或者YOLO
总结
目前为止还是深度学习上的小白,只了解了CNN,同时还没有任何代码上的实践。接下来需要学习pytorch框架的使用,更多的深度神经网络模型(CRNN,YOLO)