The Street View House Numbers (SVHN) Dataset是街景字符的数据集。该数据集用于modern-day map making。街景字符转录是字符序列识别问题。针对图片序列识别问题传统思路是定位、分割、识别,现在可以采用定长字符分类识别、CRNN不定长字符识别等方法。

问题描述:

  1. 零基础入门CV赛事- 街景字符编码识别要求选手识别图片中所有的字符,为了降低比赛难度,官方提供了训练集、验证集和测试集中所有字符的位置框。
  • 训练集数据包括3W张照片,验证集数据包括1W张照片,每张照片包括颜色图像和对应的编码类别和具体位置
  • 测试集A包括4W张照片,测试集B包括4W张照片
  • JSON标注中给出了训练数据每张图片对应的编码标签,和具体的字符框的位置(训练集、测试集和验证集都给出字符位置)。
  1. 另,图片中不仅包含字符序列,还有门框等干扰信息,为了提高准确率可根据JSON标注提供的数字框位置裁剪图片,如:
  2. 另,由于街景字符对应门牌编号,字符串序列的任意错误直接导致地图导航错误,因此街景字符识别以整体识别准确率为评价指标,整体准确率越高则模型性能越佳。

解决方案:

定长字符识别之多分类解决方案

Google2014年的论文《Multi-digit Number Recognition from Street View Imagery using Deep Convolutional Neural Networks》提出了基于深度卷积神经网络的定长字符分类识别方法。
图片中的字符串序列长度不定但不超过5个字符,可以将赛题抽象为一个定长字符识别问题,待识别字符序列为LXXXXX,其中

  • 每个X的取值范围为[0,1,2,3,4,5,6,7,8,9,空字符]
  • L代表字符串非空字符长度,取值范围[0,1,2,3,4,5,’>5’]
    定长字符识别的一种解决方案是直接对编码图片进行多分类操作(Multi-CNN):
  • 模型的输入是128∗128∗3128*128*3128∗128∗3的图片,经过一系列的CNN层进行特征提取,变成了一个含有4096个特征的向量H
  • 根据这4096个特征,分别经过6个Softmax层,分别对各个字符串进行分类(分别对5个X字符进行11个类别的分类以及1个L字符进行6个类别的分类。)
  • 将6个分类loss求和训练即可。
    这种方法思路简单,模型仅包含卷积层和全连接层,模型收敛快;但这种思路是将每个字符单独进行分类的,所以没有考虑到字符与字符之间的关系【这个主要存在于相关联的words字符识别中,数字间不知道有啥关联,难道第一个字符串代表长度,与后面位数的字符串存在关联?】,在精度上有一些欠缺。

不定长字符识别解决方案

CRNN+CTC字符识别模型可以解决不定长的字符识别问题。CRNN模型包括去除全连接层的CNN提取输入图像的Convolutional feature maps,深层双向LSTM网络继续提取序列特征,最后将RNN输出做softmax后,为字符输出。后面CTC的改进看不懂【CRNN+CTC更看不懂…】

检测再识别解决方案

此种思路需要构建字符检测模型,再对字符进行识别。物体检测模型参考SSD或者YOLO、Faster RCNN来完成。

参考

  • SVHN的Keras实现
  • 《Multi-digit Number Recognition from Street View Imagery using Deep Convolutional Neural Networks》
  • 【竞赛分享】TinyMind人民币面值及编码识别-第五名

街景字符识别1-街景字符编码SVHN相关推荐

  1. 天池-街景字符编码识别2-数据读取与数据扩增

    本此使用[定长字符识别]思路来构建模型 赛题地址 零基础入门CV赛事- 街景字符编码识别 关于更详细的数据预处理可=可以参考我的另一篇博文: 卷积神经网络性能优化(提高准确率) 2 数据读取与数据扩增 ...

  2. 天池-街景字符编码识别1-赛题理解

    赛题地址 零基础入门CV赛事- 街景字符编码识别 前期环境 运行环境及安装 运行环境 python3.7 pytorch1.3.1 有GPU 首先在Anaconda中创建一个专门用于本次练习赛的虚拟环 ...

  3. 天池学习赛——街景字符编码识别(得分上0.93)

    项目代码已上传至github需要的可以自行下载 目录 1 比赛介绍 2 解题思路 3 比赛数据集 4 模型训练 5 更改detect.py文件 6 上传文件 1 比赛介绍 项目链接:零基础入门CV - ...

  4. 天池大赛:街景字符编码识别——Part2:数据读取与数据扩增

    街景字符编码识别 更新流程↓ Task01:赛题理解 Task02:数据读取与数据扩增 Task03:字符识别模型 Task04:模型训练与验证 Task05:模型集成 底到镜一 比赛链接 Part2 ...

  5. 零基础入门CV赛事- 街景字符编码识别

    零基础入门CV赛事- 街景字符编码识别 Task01 学习目标 数据介绍 Task01任务内容 数据读取 解题思路 学习目标 熟悉计算机视觉赛事 完成典型的字符识别问题 掌握CV领域赛事的编程和解题思 ...

  6. 零基础入门CV赛事—街景字符编码识别—task2数据读取与扩增

    数据读取与扩增 上节学习了街景字符编码识别的解题思路,让我们对本赛题有了基本的idea,这节在定长字符编码的思路基础上学习读取数据和数据扩增. 图像数据读取 由于赛题数据是图像数据,赛题的任务是识别图 ...

  7. 计算机视觉实践(街景字符编码识别)-Task2 数据读取与数据扩增

    计算机视觉实践(街景字符编码识别)-Task2 数据读取与数据扩增 2.1.数据读取与数据扩增 本章主要内容为数据读取.数据扩增方法和Pytorch读取赛题数据三个部分组成. 2.1 学习目标 学习P ...

  8. 阿里天池比赛——街景字符编码识别

    文章目录 前言 一.街景字符编码识别 1. 目标 2. 数据集 3. 指标 总结 前言 之前参加阿里天池比赛,好久了,一直没有时间整理,现在临近毕业,趁论文外审期间,赶紧把东西整理了,5月底学校就要让 ...

  9. 阿里天池街景字符编码YOLO5方案

    前言 最近在做OCR相关的任务,用到了阿里天池一个街景字符识别比赛的数据集,索性就分享一下相关方案,我采用YOLO5模型,最终在平台提交分数也做到了0.924,没有经过任何优化,可以看出YOLO5的效 ...

最新文章

  1. linux6系统下用nginx配置https
  2. 计算最长公共数字串个数
  3. jquery的disabled
  4. JMeter初探-安装与使用
  5. 某角数卡发卡网程序V1.7.1版本开源源码
  6. C# 取电信公网IP并发送邮件
  7. 把算术表达式 表示为一个c语言表达式,正确的写法是____,C与C++程序设计-中国大学mooc-题库零氪...
  8. 与或非逻辑 页面展示html,一种实现与非、或非门逻辑的忆阻器电路
  9. 短时间让大家对C++ STL有所学习
  10. 已锁定 java.lang.Object@25ff46f5
  11. 速度提升3000倍,微软FastNeRF首次实现200FPS高保真神经渲染
  12. C++ ORM ODB入门
  13. 【TSP】基于matlab改进的人工鱼群算法求解旅行商问题【含Matlab源码 1479期】
  14. 计算机技术应用于测量,在测量绘图中计算机技术应用探析.doc
  15. 使用 Kind 搭建你的本地 Kubernetes 集群
  16. SQL中的随机函数-笔记
  17. 所以,《彩虹六号:围攻》到底需要怎么样的测试服?
  18. 鲁大师7月新机流畅榜:realme GT大师探索版拿下冠军!
  19. 【leetcode】442. Find All Duplicates in an Array(Python C++)
  20. 国产芯片时代来袭 SIT1028是一款内部集成高压LDO稳压源的本地互联网络(LIN)物理层收发器 TJA 1028T

热门文章

  1. 计算机基础能力入学测试,计算机基础试题入学测试+答案.doc
  2. 卡耐基梅隆计算机科学课件,美国卡耐基梅隆学计算机科学硕士.pdf
  3. Oracle 11g 局域网多端口连接配置 同一Wifi下
  4. 汇编语言程序设计读书笔记(4)- 程序设计基础之一
  5. 开发用什么linux系统版本,6种适用于开发人员的Linux发行版本!
  6. 日语敬语(自谦语 郑重语 尊他语)详解
  7. 国家电网往年提前批资讯,看看你报考的省份什么时候去你们学校?
  8. 是你多么温馨的目光 教我坚毅望着前路
  9. 细数颈椎病的7大危害,可致瘫痪中风高血压
  10. C#常用日期格式处理转换