CRNN论文笔记

CRNN是一种结合卷积神经网络和递归神经网络的端到端可训练模型,用于图像序列识别,如场景文本识别。它不需要字符分割或水平尺度归一化,能处理任意长度的序列,并在多种任务中表现出色。网络结构包括卷积层、循环层和转录层,通过连接时序分类(CTC)层进行标签序列的概率计算。CRNN的创新点在于其端到端训练、无需详细注释、灵活处理序列长度和生成紧凑模型的能力。
摘要由CSDN通过智能技术生成

CRNN

最近在看天池大赛的学习赛 零基础入门CV - 街景字符编码识别,其中官方给出的demo中baseline就有CRNN版本,因此在这里看一看CRNN的论文。
前期知识储备:

  1. 概率论:了解基本的概率论知识,掌握条件概率的概念和公式
  2. CNN: 了解卷积神经网络CNN的结构,掌握CNN的基本工作原理
  3. LSTM: 了解长短时记忆网络LSTM的结构,掌握LSTM的基本工作原理
  4. CTC: 了解CTC算法的思想,掌握基于DP实现CTC算法的前向、后向算法。


再增加几个问题:
Mask TextSpotter
该内容采用: 摘录重点部分+提出问题的方式,来阅读该篇论文。 后面会逐一的解答提出来的的问题。

make decision

  • 论文名称:An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition
    基于图像序列识别的端到端可训练神经网络及其在场景文本中识别中的应用

  • 作者:Baoguang Shi, Xiang Bai and Cong Yao

  • 机构:中国武汉华中科技大学电子信息与通信学院

  • 年份:2015 CVPR

  • 是否精读:是

  • 做出决定日期:2021-6-7

  • 论文地址:https://arxiv.org/pdf/1507.05717.pdf

step1:读摘要

    场景文本识别系统相比,所提出的体系结构具有四个显著的特性:
(1) 它是端到端可训练的,这与大多数现有算法的组件是分别训练和调整的相反。
(2) 它自然地处理任意长度的序列,不涉及字符分割或水平尺度归一化。
(3) 它不局限于任何预定义的字典,在无字典和基于字典的场景文本识别任务中都取得了显著的性能
(4) 它生成了一个有效但小得多的模型,这对于现实世界的应用场景更为实用。
在标准基准上的实验,包括IIIT-5k、Street View Text 和ICDAR数据集上证明了该算法优于现有的技术。此外、该算法在基于图像的乐谱识别任务中表现良好,验证了算法的通用性。

step2:读Introduction

    最近,社区看到了神经网络的强劲复兴,这主要是受到深度神经网络模型,特别是深度卷积神经网络(DCNN)在各种视觉任务中的巨大成功的刺激。然而,最近大多数与深度神经网络相关的工作都致力于对象类别的检测或分类[12,25]。在本文中,我们关注计算机视觉中的一个经典问题:基于图像的序列识别。在现实世界中,一组稳定的视觉对象,如场景文本、笔迹和乐谱,往往以序列的形式出现,而不是孤立出现。与一般的对象识别不同,识别这种类似序列的对象通常需要系统预测一系列的对象标签,而不是单个标签。因此,这种对象的识别自然可以归结为一个序列识别问题。序列状物体的另一个独特性质是它们的长度可能会有很大的不同。例如,英语单词既可以由2个字符组成,如“OK”,也可以由15个字符组成,如“congratulations”。因此,像DCNN [25,26]这样最流行的深度模型不能直接应用于序列预测,因为DCNN模型通常对具有固定维数的输入和输出进行操作,因此不能产生可变长度的标签序列。
    已经进行了一些尝试来针对特定的类似序列的对象(例如场景文本)解决这个问题。例如,[35,8]中的算法首先检测单个字符,然后用DCNN模型识别这些检测到的字符,DCNN模型使用标记的字符图像进行训练。这种方法通常需要训练一个强有力的字符检测器来准确地检测并从原始单词图像中剪切出每个字符。其他一些方法(如[22])将场景文本识别视为图像分类问题,并为每个英语单词(总共90K个单词)分配一个类别标签。它是一个庞大的训练模型,有大量的类,很难推广到其他类型的序列类对象,如中文文本、乐谱等。,因为这种序列的基本组合数可以大于100万。总之,目前基于DCNN的系统不能直接用于基于图像的序列识别。递归神经网络(RNN)模型是深度神经网络家族的另一个重要分支,主要设计用于处理序列。RNN的优点之一是在训练和测试中不需要序列目标图像中每个元素的位置。然而,将输入对象转换成图像特征序列的预处理步骤通常是必要的。
(…)
    本文的主要贡献是提出了一种新的神经网络模型,其网络结构是专门为识别图像中的序列状对象而设计的。所提出的神经网络模型被命名为卷积递归神经网络(CRNN),因为它是DCNN和RNN的组合。对于序列类对象,CRNN比传统的神经网络模型具有几个明显的优势:

  1. 它可以直接从序列标签(如单词)中学习,不需要详细的注释(如字符);
  2. 它在直接从图像数据中学习信息表示方面具有与DCNN相同的性质,既不需要手工特征,也不需要预处理步骤,包括二值化/分割、分量定位等。;
  3. 它具有与RNN相同的性质,能够产生一系列标签;
  4. 不受序列类物体长度的限制,在训练和测试阶段只需要高度归一化;
  5. 与现有技术相比,它在场景文本(单词识别)上实现了更好的或高度竞争的性能[23,8];
  6. 它包含的参数比标准的DCNN模型少得多,消耗的存储空间也更少。

step3:读 Conclusion

    在本文中,我们提出了一种新的神经网络结构,称为卷积递归神经网络,它综合了卷积神经网络和递归神经网络(RNN)的优点。CRNN能够获取不同维度的输入图像,并产生不同长度的预测它直接在粗略的级别标签(例如单词)上运行,在训练阶段不需要对每个单独的元素(例如字符)进行详细的注释。此外,由于CRNN放弃了传统神经网络中使用的完全连接的层,它导致了更紧凑和有效的模型。所有这些特性使得CRNN成为一种优秀的基于图像的序列识别方法。
    在场景文本识别基准上的实验表明,与传统方法以及其他基于CNN和RNN的算法相比,该算法取得了优越或高度竞争的性能。这证实了所提出算法的优点。此外,CRNN在光学音乐识别(OMR)的基准上明显优于其他竞争对手,验证了CRNN的通用性。
    实际上,CRNN是一个通用框架,因此它可以应用于其他领域和问题(如汉字识别),这些领域和问题涉及图像中的序列预测。进一步加快CRNN的速度,使其在现实应用中更加实用,是未来值得探索的另一个方向。

step4:The Proposed Network Architure

    如下图所示,CRNN的网络结构从下到上由三个部分组成,包括卷积层、循环层和转录层。在CRNN的底部,卷积层自动从每个输入图像中提取特征序列
    在卷积网络的顶部,建立一个递归网络,用于对卷积层输出的特征序列的每一帧进行预测。采用循环神经网络顶部的转录层将循环层的每帧预测翻译成标签序列。虽然该神经网络由不同类型的网络结构(如CNN和RNN)组成,但它可以用一个损失函数进行联合训练
在这里插入图片描述
图1。网络架构。该体系结构由三部分组成:
  1)卷积层,从输入图像中提取特征序列;
  2)递归层,预测每个帧的标签分布;
  3)转录层,其将每帧预测翻译成最终的标记序列。

2.1 特征序列提取 Feature Sequence Extraction

    在CRNN模型中,卷积层的组成部分是通过从标准的CNN模型中提取卷积层和最大池层(去除全连接层)来构造的。这种组件用于从输入图像中提取顺序特征表示。在输入网络之前,所有图像都需要缩放到相同的高度。然后,从卷积层的分量产生的特征映射中提取特征向量序列,这是递归层的输入。具体地,特征序列的每个特征向量在特征图上按列从左到右生成。这意味着第I个特征向量是所有地图的第I列的连接。在我们的设置中,每一列的宽度都固定为一个像素。
    由于卷积、最大池和元素激活函数的层在局部区域上操作,它们是平移不变的。因此,特征图的每一列对应于原始图像的矩形区域(称为感受野),并且这样的矩形区域从左到右与它们在特征图上的对应列的顺序相同。如图2所示,特征序列中的每个向量与感受野相关联,并且可以被认为是该区域的图像描述符。
在这里插入图片描述

  • 图2。感受野。提取的特征序列中的每个向量与输入图像上的感受野相关联,并且可以被认为是该区域的特征向量。

    深度卷积特征具有鲁棒性、丰富性和可训练性,已被广泛用于不同类型的视觉识别任务[25,12]。一些以前的方法已经使用CNN学习像场景文本这样的序列对象的鲁棒表示[22]。然而,这些方法通常通过CNN提取整个图像的整体表示,然后收集局部深层特征以识别连续对象的每个组成部分。由于CNN需要将输入图像缩放到固定的大小,以满足其固定的输入维度,因此它不适用于类似序列的对象,因为它们的长度变化很大。在CRNN中,我们将深层特征表达成序列表示,以便对序列状对象的长度变化保持不变

2.2 序列标记 Sequence Labeling

深层双向递归神经网络建立在卷积层的顶部,作为递归层。
在特征序列中 x = x 1 , , x T x = x_1,,x_T x=x1,,xT,循环特征层为每一帧 x t x_t xt预测一个标签 y t y_t yt。循环层的优势有三个方面。
    首先,RNN有很强的捕捉序列中上下文信息的能力。使用上下文线索进行基于图像的序列识别比单独处理每个符号更稳定、更有帮助。以场景文字识别为例,宽字符可能需要连续几帧才能完整描述(参见图2)。
    此外,一些模棱两可的字符在观察它们的上下文时更容易区分,例如,通过对比字符高度比分别识别它们更容易识别“il”。
    其次,RNN可以将误差微分反向传播到其输入端,即卷积层,从而允许我们在一个统一的网络中联合训练递归层和卷积层。
    第三,RNN能够操作任意长度的序列,从头到尾遍历。

    传统的RNN单元在其输入和输出层之间有一个自连接的隐藏层。每次接收序列中的帧 x t x_t

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值