美文网首页AI
Task1 赛题理解

Task1 赛题理解

作者: 泥人冷风 | 来源:发表于2020-05-19 19:23 被阅读0次

1. 理解赛题背景

  • 零基础入门系列赛事第二场 :零基础入门CV赛事之街景字符识别

  • 典型计算机视觉识别:预测真实场景下的字符识别

  • 引导入门方式-数据科学库、通用流程和baseline方案

  • 有助于掌握数据竞赛基本技能,及数据建模

2. 赛题数据

  • 基于SVHN原始数据,降低难度追加位置框的比赛用数据

  • 下载json数据标签和zip图像的关系:

json数据标签

字段 含义
top 左上角坐标X
height 字符高度
left 左上角坐标Y
width 字符宽度
label 字符编码

zip图像

json数据对应图像位置

下载地址

[训练集]-3W

图像-mchar_train.zip(345.91MB)
数据标签-mchar_train.json(3.16MB)

[验证集]-1W

图像-mchar_val.zip(200.16MB)
数据标签-mchar_val.json(1.03MB)

[测试集A]-4W

图像-mchar_test_a.zip(370.6MB)

[提交测试结果]-参考CSV

预测结果-mchar_sample_submit_A.csv(507.83KB)

特例:识别一张图片的多个字符的JSON标注:

原始图片 图片JSON标注数据格式
000000.png json

3. 评测指标

Score=编码识别正确的数量/测试集图片数量

4. 读取数据

代码示例:

import json
train_json = json.load(open('../input/train.json'))

# 数据标注处理
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('../input/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.yticks([])

5. 解题思路

赛题图像集特点如下:

字符属性 图片
字符:42 字符个数:2 42.png
字符:241 字符个数:3 241.png
字符:7358 字符个数:4 7358.png

难点

对不定长的字符进行识别(与传统的图像分类任务有所不同)

概括(三个方向)

  • 简单入门思路:定长字符识别

关键点:固定长度,不足补X

  • 专业字符识别思路:不定长字符识别

关键点:特定方法如-CRNN字符识别模型

  • 专业分类思路:检测再识别

关键点:
--利用字符在图像中位置(训练集、验证集中)
--物体监测
--参考模型:SSD或者YOLO

6. 小结

本次赛题特点:

  • 简单字符识别
  • 多种解法(由浅入深)

相关文章

网友评论

    本文标题:Task1 赛题理解

    本文链接:https://www.haomeiwen.com/subject/prhiohtx.html