赛题名称:零基础入门CV之街道字符识别
赛题目标:通过这道赛题可以引导大家走入计算机视觉的世界,主要针对竞赛选手上手视觉赛题,提高对数据建模能力。
赛题任务:赛题以计算机视觉中字符识别为背景,要求选手预测街道字符编码,这是一个典型的字符识别问题。
通过分析,所以我们很明显的想到需要对给定的数据集,进行先检测字符位置,可以选取YOLO4进行对字符位置进行检测,不过官方同时也给出了标注区域,该标注区域存储在JSON文件内,主要数据包含了图片的高度、宽度、字符开始位置的left_Width,以及上方的top_height位置,以及字符的label数据,所以将图片输入进去后,通过该数据做一个字符区域的界定,或者采用YOLO4进行区域界定后作为网络输入,可以去除掉周边空白区域对模型训练的干扰,最终得到的输出与label做多分类的交叉熵损失。通过查看loss可以看出我们的模型训练效果,但是需要考虑是否会对模型产生过拟合现象,可以考虑进行K折交叉验证的方法进行合理的避免。
训练集包含了3W张街道字符照片及1W张验证图片、可以知道的是我们需要通过比赛方未公布的测试集进行评估我们的模型效果,每张图片包括了颜色图像和对应的编码类别和具体位置,测试集未公布,但是已知的是测试集包含了两个部分,其中测试集A包括了4W张照片,测试集B包括了4W张图片。
比赛方给出了json数据读取方式,可以得到分割出来的单字符,较为方便,可以使得多字符识别问题变为了循环下的单字符识别问题,值得注意的是由于比赛采用了不定长字符识别,所以这里其实可以将前面获取的分割下的结果全部添加到一个list内然后对list内的数据进行单字符识别后然后在输出出来,最终使得问题简化为单字符识别最后根据各个字符的位置进行排序输出得到多字符检测的任务。
也可以采用定长的方式,由于数据包含了2-6的字符数据,在多字符下,可以认为2字符的话可以将其定为6字符后面4字符为空不输出实现多字符的检测,但是浪费额外的空间。也可以从模型的角度对该问题进行处理,比如CRNN字符识别模型便可以从模型的方式来处理该问题
也可以采用先检测在识别的方法,先通过物体检测的方法去检测出各个字符的位置然后得到位置后再识别(SSD、YOLO去检测)再由字符识别模型进行字符的识别
模型考虑到对图片进行识别字符、所以采用CNN,这可以选择Resnet、VGG等分类模型,将字符进行分类0-9的10分类问题。
综上所示,本次赛题虽然是一个简单的字符识别问题,但有多种解法可以使用到计算机视觉领域中的各个模型,是非常适合大家入门学习的。
三种解决思路的难度从低到高,因此建议入门学习的同学可以先学习定长字符识别的思路。在文档之后的内容中我们也会以定长字符识别为例,让大家逐渐入门计算机视觉。









网友评论