【论文解读】图像序列识别:CRNN技术在场景文本识别中的应用与突破(附论文地址)

news2024/12/24 8:15:18

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

这篇文章的标题是《An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition》,作者是Baoguang Shi, Xiang Bai和Cong Yao,来自中国武汉的华中科技大学电子信息与通信学院。文章主要研究了基于图像的序列识别问题,特别是场景文本识别,这是基于图像的序列识别中最重要和最具挑战性的任务之一。以下是对论文内容的解读:

研究背景与动机

该论文主要集中在解决基于图像的序列识别问题,尤其是场景文本识别。以下是研究背景和动机的几个关键点:

  1. 深度学习在视觉任务中的成功:近年来,深度学习,特别是深度卷积神经网络(DCNN)在各种视觉任务中取得了巨大成功。然而,大多数相关工作集中在对象类别的检测或分类上,而不是序列识别。

  2. 序列识别的独特挑战:与一般的对象识别不同,序列识别(例如场景文本、手写文本和乐谱)要求系统预测一系列对象标签,而不是单个标签。这些序列对象的长度可能会有显著变化,这使得直接应用DCNN模型变得困难,因为它们通常处理固定尺寸的输入和输出。

  3. 现有方法的局限性:现有的基于DCNN的场景文本识别方法通常需要先检测单个字符,然后使用DCNN模型进行识别,这要求训练一个强大的字符检测器来准确检测和裁剪原始单词图像中的每个字符。此外,将场景文本识别视为图像分类问题的方法需要一个大型的、包含数百万类别的模型,这难以泛化到其他类型的序列对象。

  4. 序列建模的需求:序列识别问题需要能够捕捉序列内部的上下文信息,这是传统的DCNN模型所不具备的。递归神经网络(RNN)是为处理序列而设计的,但它们通常需要将输入对象图像转换为图像特征序列的预处理步骤,这限制了现有基于RNN的系统无法以端到端的方式进行训练和优化。

  5. 端到端训练的需求:为了克服现有方法的局限性,需要一个能够端到端训练的系统,即从输入图像直接到输出序列标签,无需进行复杂的预处理或多个分离的步骤。

  6. 实际应用的可行性:在现实世界的应用场景中,需要一个既有效又紧凑的模型,以便能够部署在资源受限的设备上。

基于这些背景和动机,论文提出了一种新的神经网络架构——卷积递归神经网络(CRNN),它结合了DCNN和RNN的优势,能够处理任意长度的序列,无需字符分割或水平尺度归一化,并且可以端到端地训练,从而在场景文本识别和其他图像序列识别任务中取得了显著的性能提升。

网络结构

CRNN

文章的主要贡献是提出了一种新的神经网络模型,名为卷积递归神经网络(CRNN),它是深度卷积神经网络(DCNN)和递归神经网络(RNN)的结合。CRNN具有以下几个显著优势:

  • 可以直接从序列标签(例如单词)中学习,不需要详细的注释(例如字符)。

  • 与DCNN一样,能够直接从图像数据中学习信息丰富的表示,不需要手工特征或预处理步骤。

  • 与RNN一样,能够产生标签序列。

  • 不受序列对象长度的限制,只需要在训练和测试阶段进行高度归一化。

  • 在场景文本(单词识别)上的性能优于或与现有技术相当。

  • 包含的参数比标准DCNN模型少得多,占用的存储空间更少。

网络架构

网络架构由卷积层、循环层和转录层三部分组成,卷积层自动从每个输入图像中提取特征序列,循环层对卷积层输出的特征序列的每一帧进行预测,转录层将循环层的逐帧预测转换为标签序列。CRNN可以与一个损失函数一起联合训练。

  • 卷积层:使用标准的CNN模型中的卷积和最大池化层(去除全连接层)来从输入图像中提取序列化的特征表示。

  • 循环层:构建在卷积层之上,使用深度双向循环神经网络,对特征序列的每一帧进行预测,输出标签分布。

  • 转录层:采用Connectionist Temporal Classification (CTC) 层定义的条件概率,将逐帧预测转换为最终的标签序列。

实验结果

该论文使用了包括IIIT-5K、Street View Text和ICDAR数据集在内的标准基准测试,证明了所提出算法相对于先前技术的优势。此外,所提出的算法在基于图像的音乐乐谱识别任务中表现良好,明显验证了其通用性。

  • IIIT-5K:包含3000张从互联网收集的裁剪过的单词图像,每个图像与一个50词的词汇表关联。

  • Street View Text (SVT):包含249张来自Google街景的图像,从中裁剪出647个单词图像,每个图像与一个50词的词汇表关联。

  • ICDAR:有两个数据集,ICDAR 2003 (IC03) 包含251张场景图像和标记的文本边框,ICDAR 2013 (IC13) 继承了IC03的大部分数据,包含1015个地面真实裁剪过的单词图像。

在实验部分,作者使用了合成数据集进行训练,并在多个真实世界的测试数据集上进行了测试,没有在它们的训练数据上进行微调。尽管CRNN模型仅使用合成文本数据进行训练,但它在标准文本识别基准的真实图像上表现良好。

为了进一步了解与其它文本识别方法相比,我们所提出算法的优点,我们提供了在一些特性上的综合比较,这些特性名称为E2E Train,Conv Ftrs,CharGT-Free,Unconstrained和Model Size,如下表所示。

  • E2E Train:这一列是为了显示某种文字阅读模型是否可以进行端到端的训练,无需任何预处理或经过几个分离的步骤,这表明这种方法对于训练是优雅且干净的。

  • Conv Ftrs:这一列表明一个方法是否使用从训练图像直接学习到的卷积特征或手动特征作为基本的表示。

  • CharGT-Free:这一列用来表明字符级标注对于训练模型是否是必要的。由于CRNN的输入和输出标签是序列,因此字符级标注是不必要的。

  • Unconstrained:这一列用来表明训练模型是否受限于一个特定的字典,是否不能处理字典之外的单词或随机序列。注意尽管最近通过标签嵌入和增强学习学习到的模型取得了非常有竞争力的性能,但它们受限于一个特定的字典。

  • Model Size:这一列报告了学习模型的存储空间。在CRNN中,所有的层有权重共享连接,不需要全连接层。因此,CRNN的参数数量远小于CNN变体所得到的模型。我们的模型有830万个参数,只有33MB RAM(每个参数使用4字节单精度浮点数),因此可以轻松地移植到移动设备上。

评估指标

  准确率:在不同数据集上,CRNN模型识别正确的单词或字符的比率。

  编辑距离:在音乐符号识别任务中,预测的音高序列与真实标签序列之间的平均编辑距离。

应用案例

  论文探讨了CRNN在光学音乐识别(OMR)问题上的应用,展示了CRNN在不同类型数据集(Clean, Synthesized, Real-World)上的性能。

结论与贡献

文章的结论部分强调了CRNN作为一种新型神经网络架构的优势,它结合了CNN和RNN的优点,能够处理不同尺寸的输入图像,并产生不同长度的预测。CRNN不需要详细的个体元素注释,且由于放弃了传统神经网络中使用的全连接层,因此模型更紧凑、效率更高。这些特性使得CRNN成为基于图像的序列识别问题的优秀方法。作者还指出,提高CRNN的速度并使其在实际应用中更加实用是未来值得探索的方向。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2137199.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录训练营 Day58打卡 图论part08 拓扑排序 dijkstra朴素版 + 堆优化版

代码随想录训练营 Day58打卡 图论part08 一、拓扑排序 例题:卡码117. 软件构建 题目描述 某个大型软件项目的构建系统拥有 N 个文件,文件编号从 0 到 N - 1,在这些文件中,某些文件依赖于其他文件的内容,这意味着如果…

不同的二叉搜索树

题目 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 示例 1: 输入:n 3 输出:5示例 2: 输入:n 1 输出&#xff…

JSP经典设计模式流程分析:JSP+JavaBean设计模式+MVC设计模式

JSP两种经典设计模式 Model1设计模式:JSPJavaBean 架构图 什么是JavaBean JavaBean是一种JAVA语言写成的可重用组件,它遵循特定的编程规范,如类必须是公共的、具有无参构造函数,并提供getter/setter方法等。这里的JavaBean不单单指的是实体…

五、回溯算法-算法总结

文章目录 五、回溯算法5.1 背景5.2 模板5.3 集合类5.3.1 子集5.3.2 子集2 5.4 排列类5.4.1 全排列5.4.2 全排列2 5.5 组合类5.5.1 组合总和5.5.2 电话号码的字母组合 五、回溯算法 5.1 背景 回溯法(backtrack)常用于遍历列表所有子集,是 DF…

OpenAI草莓正式发布,命名o1

一、相关介绍 当地时间 9 月 12 日,OpenAI 推出全新模型 o1,它是该公司计划推出的一系列“推理”模型中的首个,也就是此前业内传闻许久的“Strawberry(草莓)”项目。 据悉,o1 模型在众多任务中能够比人类更…

LabVIEW机动车动态制动性能校准系统

机动车动态制动性能测试系统通过高精度的硬件设备与LabVIEW软件的紧密配合,实现了对机动车制动性能的精确校准与评估。系统不仅提高了测试的精确性和效率,而且具备良好的用户交互界面,使得操作更加简便、直观。 项目背景 随着机动车辆数量的…

C++:类和对象全解

C:类和对象全解 一、类的定义和初始化(一)类的定义1、类的成员变量(1)成员变量(2)成员函数 2、实例化对象(1)采用普通构造函数(2)采用初始化列表 …

MySQL数据的增删改查(二)

目录 约束 非空约束(NOT NULL) 唯一约束(UNIQUE) 默认值约束(DEFAULT) 主键约束(PRIMARY KEY) 外键约束(FOREIGN KEY) 检查约束(CHECK&…

LabVIEW机械产品几何精度质检系统

随着制造业的发展,对产品质量的要求越来越高,机械产品的几何精度成为衡量其品质的重要指标。为了提高检测效率和精度,开发了一套基于LabVIEW的几何精度质检系统,该系统不仅可以自动化地进行几何尺寸的测量,而且能实时分…

kafka 之 本地部署单机版

安装JDK 查看你选择的版本需要安装哪一个版本的jdk 网址 下载 JDK下载 注:如果网页不允许下载,使用wget命令下载即可,下载之后安装。 建议使用rpm安装,之后使用 update-alternatives --config java 控制当前环境使用Java的版…

SpringBoot 处理 @KafkaListener 消息

消息监听容器 1、KafkaMessageListenerContainer 由spring提供用于监听以及拉取消息,并将这些消息按指定格式转换后交给由KafkaListener注解的方法处理,相当于一个消费者; 看看其整体代码结构: 可以发现其入口方法为doStart(),…

2024-2025年最全的计算机软件毕业设计选题大全

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…

通过API接口获取数据:高效、灵活的数据交互之道

在数字化时代,数据已成为企业最宝贵的资产之一。企业和开发者对于数据的获取、处理和分析的需求日益增长。API(应用程序编程接口)接口作为连接不同系统和应用程序的桥梁,提供了一种高效、灵活的方式来获取和交换数据。本文将探讨为…

rust + bevy 实现小游戏 打包成wasm放在浏览器环境运行

游戏界面 代码地址 github WASM运行 rustup target install wasm32-unknown-unknown cargo install wasm-server-runner cargo run --target wasm32-unknown-unknowncargo install wasm-bindgen-cli cargo build --release --target wasm32-unknown-unknown wasm-bindgen --…

工厂模式(二):工厂方法模式

一、概念 工厂方法模式(Factory Method),定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。从而使得系统更加灵活。客户端可以通过调用工厂方法来创建所需的产品,而不必…

Linux进程间通信——管道实现实战;深度学习,探索管道接口、特性、情况

前言:本节内容仍是管道, 上节内容我们学习了管道的原理。 这节内容将在原理的基础上, 讲解管道的编程, 特性,应用等等。 下面开始我们的学习吧。 ps:本节内容需要了解一些管道的原理, 希望友友们…

AIGC-初体验

线性分类 提问,目的试图让AI自动线性分类 A类:(10,21),(3,7),(9,20)(121,242) B类:(3,9),(5,11),(70,212),(11,34) 根据线性关系分类 请问 (100,300),(100,201&#xff…

nacos和eureka的区别详细讲解

​ 大家好,我是程序员小羊! 前言: Nacos 和 Eureka 是两种服务注册与发现的组件,它们在微服务架构中扮演重要角色。两者虽然都是为了解决服务发现的问题,但在功能特性、架构、设计理念等方面有很多不同。以下是详细的…

【期末复习】软件项目管理

前言: 关于软件项目管理这一科目的重要期末考点,希望对你有帮助。 目录 质量管理可能遇到的问题 软件项目质量管理 软件项目风险管理 进度 题1 题2 题3 成本 题1 题2 题3 质量管理可能遇到的问题 (1)没有制定质量管理计划: (2)…

JMeter测试工具的简单了解

Apache JMeter 是一款开源的测试工具,主要用于对软件的性能进行测试。它最初被设计用于测试Web应用,但随着时间的推移,它的功能已经扩展到了其他测试领域。 可以应用到的场景 性能测试:评估应用程序在不同负载下的表现。负载测试…