您的位置:首页 > 其它

零基础入门CV赛事-Task1 赛题理解

2020-06-03 05:32 169 查看

赛题名称:零基础入门CV之街道字符识别

赛题目标:通过这道赛题可以引导大家走入计算机视觉的世界,主要针对竞赛选手上手视觉赛题,提高对数据建模能力。
赛题任务:赛题以计算机视觉中字符识别为背景,要求选手预测街道字符编码,这是一个典型的字符识别问题。

读取数据

import json
train_json = json.load(open(r'D:\study\cv\train.json'))

<div STYLE="page-break-after:always;"></div>
#数据标注处理
def parse_json(d):
arr = np.array([
d['top'],d['height'],d['left'],d['width'],d['label']
])
arr = arr.astype(int)
return arr

img = cv2.imread('D:\study\cv\mchar_train\000000.png')
arr = parse_json(train_json['000000.png'])

plt.figure(figsize=(10,10))
plt.subplot(1,arr.shape[1]+1,1)
plt.imshow(img)
plt.xticks([]);plt.yticks([])

for idx in range(arr.shape[1]):
plt.subplot(1,arr.shape[1]+1, idx+2)
plt.imshow(img[arr[0,idx]:arr[0,idx]+arr[1,idx],arr[2,idx]:arr[2,idx]+arr[3,idx]])
plt.title(arr[4,idx])
plt.xticks([]);plt.ytics([])

解题思路

1、简单入门思路:定长字符识别
在赛题数据集中大部分图像中字符个数为2-4个,最多的字符 个数为6个。
因此可以对于所有的图像都抽象为6个字符的识别问题,字符23填充为23XXXX,字符231填充为231XXX。
经过填充之后,原始的赛题可以简化了6个字符的分类问题。在每个字符的分类中会进行11个类别的分类,假如分类为填充字符,则表明该字符为空。
2、专业字符识别思路:不定长字符识别
在字符识别研究中,有特定的方法来解决此种不定长的字符识别问题,比较典型的有CRNN字符识别模型。
在本次赛题中给定的图像数据都比较规整,可以视为一个单词或者一个句子。
3、专业分类思路:检测再识别
在赛题数据中已经给出了训练集、验证集中所有图片中字符的位置,因此可以首先将字符的位置进行识别,利用物体检测的思路完成。
此种思路需构建字符检测模型,对测试集中的字符进行识别。可以参考物体检测模型SSD或者YOLO来完成。

环境配置有问题 解决中
#网速慢导致下载失败,一直重试下载,安装成功

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: