街景字符编码识别-Task1:赛题题解


赛题入口

学习目标

  • 理解赛题背景和赛题数据
  • 完成赛题报名和数据下载,理解赛题的解题思路

了解赛题

1.赛题数据

  • 赛题以街道字符为为赛题数据,该数据来自收集的SVHN街道字符,并进行了匿名采样处理。
  • 训练集数据包括3W张照片,验证集数据包括1W张照片,每张照片包括颜色图像和对应的编码类别和具体位置
  • 测试集A包括4W张照片,测试集B包括4W张照片。

2.数据标签

  • 对于训练数据每张图片将给出对于的编码标签,和具体的字符框的位置(训练集、验证集都给出字符位置),用于模型训练
  • 样例
    训练集图片
    训练集图片
    对应json标签
"000000.png": {"height": [219, 219], "label": [1, 9], "left": [246, 323], "top": [77, 81], "width": [81, 96]}
  • 解读
FieldDescription
top内部具体字符框的左上角y坐标
left内部具体字符框的左上角x坐标
height内部具体字符框高度
width内部具体字符框宽度
label内部具体字符框编码(类别)

对位位置
在这里插入图片描述

3.评测指标

  • 选手提交结果与实际图片的编码进行对比,以编码整体识别准确率为评价指标。任何一个字符错误都为错误,最终评测指标结果越大越好,具体计算公式如下:

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

4.数据读取

  • json标签的读取及图片的显示
    例图
    在这里插入图片描述
    在这里插入图片描述
    python处理代码
import cv2
import json
import numpy as np

train_json = json.load(open('./train_json.json'))
img = cv2.imread('./imgs/000000.png')
# 数据标注处理
def parse_json(d):
   arr = np.array([
       d['top'], d['height'], d['left'],  d['width'], d['label']
   ])
   arr = arr.astype(int)
   return arr

arr = parse_json(train_json['000000.png'])
print(arr)
colors = (0, 0, 255)
for num in range(0, len(arr[0])):
   img_copy = img.copy()
   cv2.rectangle(img_copy, (arr[2][num], arr[0][num]), (arr[2][num]+arr[3][num], arr[0][num]+arr[1][num]), colors, 5)
   cv2.putText(img_copy, str(arr[4][num]), (20, 150), cv2.FONT_HERSHEY_COMPLEX, 5.0, (0, 0, 255), 2)
   cv2.imwrite('./0_{}.jpg'.format(num), img_copy)
   num+=1

5.解题思路

初步想法:训练图片检测与图片分类两个模型分别用于字符位置的识别与字符类别的判断

图片检测模型

  • 采用常用目标检测算法,如Faster-RCNN,YOLO,Pelee等搭建字符识别网络
  • 框架可采用个人是熟悉的框架,如Tensorflow, Pytorch,Keras等
  • 输入图片,以字符位置坐标作为label

图片预处理

  • 将检测模型输出的图片进行切割,分割框选出的字符图片
  • 将分割后的图片进行二值化处理,便于后续模型的训练
  • 可将二值化的图片进行数据增强,提高模型的泛化能力

图片分类模型

  • 可采用熟悉框架搭建图片分类网络
  • 输入为二值化后的字符图片,label为字符类别,此项目采用10个类别的分类
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值