Decoupled Attention Network for Text Recognition

article/2025/8/6 10:43:56

摘要:

        最流行的文字检测的方法是注意力机制,但是大多数的注意力机制方法由于循环的对齐操作会导致严重的对齐问题。因为对齐操作依赖于历史解码信息。

         本文提出的DAN将对齐操作与历史解码信息解耦。

原理:

Connectionist temporal classification (CTC)and attention mechanism是文本识别最常用的方法,目前注意力机制是最流行的。文本识别中的注意机制用于对齐和识别字符,在以前的工作中,对齐操作总是与解码操作耦合。

        也就是说传统的注意力机制的对齐操作会使用:

  •                 来自编码器的视觉信息
  •                 历史解码信息(以循环隐藏状态的形式或者历史解码结果的嵌入向量。这里我不是很理解

注意力机制的主要思想是匹配,给定来自特征图的特征,通过对其与历史解码信息的匹配程度进行评分来计算其注意力得分。所以这种耦合关系会不可避免地造成误差积累和传播。并且注意力机制难以对齐长序列(这里也不是很懂),一种直观的方法是:将对齐操作与历史解码信息解耦

鉴于上面提到的注意力机制的现有问题,本文将传统注意力机制的解码器解耦为对齐模块和解耦文本解码器。并提出一种新的文本识别方法---解耦注意力网络(DAN),提出了一种新的卷积对齐模块(CAM)以及一个解耦的文本解码器(DTD),以取代传统的解码器

DAN不需要来自解码阶段的反馈进行对齐,从而避免了解码错误的累积和传播。主要包含三个模块:特征编码器、卷积对齐模块(CAM)、解耦的文本解码器(DTD)

  • 特征编码器:卷积网络提取输入图像的视觉特征(特征图)
  • 卷积对齐模块(CAM):代替了传统基于分数的循环对齐模块,以多尺度的视觉特征作为输入,并以通道方式使用全连接网络生成注意力图

   CAM从视觉角度进行对齐操作,避免使用历史解码信息,因此消除了解码错误导致的未对齐问题

  • 解耦的文本解码器(DTD):使用门控循环单元(GRU)对特征图注意力图做最后的预测

代码实现:

 

 

  • 特征编码器:直接使用resnet
  • 卷积对齐模块(CAM):

         使用FPN+FCN(转置卷积)实现

        与传统的同时进行对齐和识别的注意力解码器不同,解耦文本解码器将编码特征和注意力图作为输入,仅进行识别。   

        但是论文中each output feature is added with the corresponding feature map from convolution stage,网络结构图中也体现出来了,在代码中没看出来每层的输出特征与前面卷积层的特征图相加。(如果后期看懂了,再来修改)

  • 解耦的文本解码器(DTD):

lstm+rnn

缺点:

CAM仅使用视觉信息进行对准操作;因此,当遇到类似文本的噪音时,可能会出错。(考虑到噪声与正常文本具有几乎相同的纹理)

比如上图有一个手写错误(第一个是真实,第二个是其他方法,第三个是DAN),但是DAN的对齐能力还是很强的

 


http://chatgpt.dhexx.cn/article/3CcVcsFh.shtml

相关文章

涨点技巧:Detect系列---Yolov5/Yolov7加入解耦头Decoupled_Detect,涨点明显

目录 1. Decoupled Head介绍 2.Yolov5加入Decoupled_Detect 2.1 DecoupledHead加入common.py中: 2.2 Decoupled_Detect加入yolo.py中: 2.3修改yolov5s_decoupled.yaml 3.数据集下验证性能 🏆 🏆🏆🏆&…

Decoupled Contrastive Learning 论文解读和感想

本文首先提出了当前对比学习的三大痛点: 1、当前的sota方法结构都过于复杂 2、对比学习要想取得效果,必须要用大batch 3、超参敏感(个人认为这里说的超参是指数据增强方式) 然后本文以SimCLR为例,通过对对比损失的梯度进行分析,发…

DECOUPLED WEIGHT DECAY REGULARIZATION

引言 Adam作为一个常用的深度学习优化方法,提出来的时候论文里的数据表现都非常好,但实际在使用中发现了不少问题,在许多数据集上表现都不如SGDM这类方法。 后续有许多工作针对Adam做了研究,之前整理过关于优化算法的发展历程&am…

Decoupled Dynamic Filter Networks

转载自:https://www.cnblogs.com/liuyangcode/p/14755924.html 对depth-wise的改进,将卷积核的参数改为根据输入变化的方式 Introduction 卷积缺点在于:内容不变,计算量高动态filter可以根据内容自适应,但是会提高计算量。depth…

Analyzing and Leveraging Decoupled L1 Caches in GPUs

introduction 我们都知道L1/L2/L3cache解决了内存墙的问题,但是作者分析出现有的缓存架构有着天然缺陷, 作者列出的many to few communication,也就是L1ache中大量的数据传输到L2cache中,可能对于L1cache的带宽使用率不是很高&a…

Decoupled network

Decoupled network https://zhuanlan.zhihu.com/p/37598903 神经网络机制存在的缺陷? 过拟合,梯度消失或者是膨胀,训练依靠大量样本,对网络初始化及其敏感记忆协迁移等等。 Decupled network是对operator的改进 现在的卷积操作…

Decoupled Knowledge Distillation论文阅读+代码解析

本文来自2022年CVPR的文章,论文地址点这里 一. 介绍 知识蒸馏(KD)的通过最小化师生预测对数之间的KL-Divergence来传递知识(下图a)。目前大部分的研究注意力都被吸引到从中间层的深层特征中提取知识。与基于logit的精馏方法相比&#xff0c…

令牌桶算法

一 算法 令牌桶算法和漏桶算法不同的是,有时后端能够处理一定的突发情况,只是为了系统稳定,一般不会让请求超过正常情况的60%,给容灾留有余地。但漏桶算法中后端处理速度是固定的,对于短时的突发情况,后端…

动态分区分配算法(1、首次适应算法 2、最佳适应算法 3、最坏适应算法 4、邻近适应算法)

文章目录 前言知识总览1、首次适应算法2、最佳适应算法3、最坏适应算法4、邻近适应算法知识回顾与重要考点 前言 此篇文章是我在B站学习时所做的笔记,大部分图片都是课件老师的PPT,方便复习用。此篇文章仅供学习参考。 提示:以下是本篇文章…

《算法4》读书笔记(一)

写在前面:配套网站algs4.cs.princeton.edu,可以把这个网站作为编程的时候的参考资料。这本书比较实用(某瓣评分9.3),但没有动态规划部分,作为两三年没怎么碰过算法和数据结构的菜狗,看了《图解算…

《算法4》深入理解红黑树

红黑树是一种性能非常优秀的数据结构,关键在于它能保证最坏的性能也是对数的,主要是因为它是一种平衡的树,所以也叫平衡查找树。要理解红黑树,最好先看看我的上一篇博客《算法4》符号表以及二叉查找树,了解二叉查找树以…

【算法4总结】第四章:图

目录备份 第四章:图 概述 图可以根据是否有向和带权分成以下四种: 无向图 (无向不带权)有向图 (有向不带权)加权无向图(无向带权)加权有向图(有向带权) …

算法4(一、递归学习)

每次用递归都感觉有点难,这个趁着恶补基础知识的时候,专门看了一遍递归,算法4的。 1.1 递归介绍 方法可以调用自己,例如:下面给出了bin_search的二分查找的一种实现。(算法4中使用的是Java,但…

【算法4总结】第一章:基础

目录备份 第一章:基础 我认为这一章主要介绍的是如何使用工具。 一共五节,前两节主要是对 Java 语法的回顾,第三节则是三个数据结构,背包,队列和栈的API讲解。 而第四节是讲解的是如何分析算法。第五节则是针对具体…

SQL修改语句

如果我们要修改数据库中表的数据&#xff0c;这个时候我们就要使用到UPDATE语句。 UPDATE语句的基本语法是&#xff1a; UPDATE <表名> SET 字段1值1, 字段2值2, ... WHERE ...; 例如&#xff0c;我们想更新employees表id100的记录的last_name和salary这两个字段&…

【数据库】SQL语句之修改语句(INSERT,UPDATE,DELETE)

1.INSERT INSERT INTO <表名> (字段1, 字段2, ...) VALUES (值1, 值2, ...); 例如&#xff1a; 一次插入一个 INSERT INTO students (class_id, name, gender, score) VALUES (2, 小明, M, 80);一次插入多条 INSERT INTO students (class_id, name, gender, score) VA…

SQL Server修改数据

本篇主要讲解的是SQL Server 中修改数据的几种语句&#xff1a; INSERT语句INSERT INTO SELECT语句UPDATE语句DELETE语句 一&#xff1a;INSERT语句 INSERT语句向表中添加新行&#xff0c;以下是INSERT语句的最基本形式&#xff1a; 首先&#xff1a;table_name指定要插入的…

使用SQL语句修改表数据

使用SQL语句修改表数据 文章目录 使用SQL语句修改表数据利用INSERT语句输入数据利用UPDATE语句更新表数据利用DELETE语句删除表中数据利用Truncate Table语句删除表中数据 利用INSERT语句输入数据 INSERT语句的基本语法格式如下&#xff1a; 上述格式主要参数说明如下&#xf…

初探POC编写

文章目录 前言什么是POC什么是 ExpPOC注意事项尝试编写第一个POCpikachu sql盲注poc参考 前言 想锻炼一下编程能力&#xff0c;师兄说以后很重要的&#xff0c;最好学好一点 但是我又想学习安全相关的&#xff0c;那就来练练poc吧 什么是POC PoC(全称: Proof of Concept), …

POC_MeterSphere-RCE

MeterSphere-RCE 漏洞详情影响范围指纹- fingerPOC-YAML《飞致云MeterSphere开源测试平台远程代码执行漏洞》 漏洞详情 MeterSphere一站式开源持续测试平台存在的远程代码执行漏洞。由于自定义插件功能处存在缺陷,未经身份验证的攻击者可利用该漏洞在目标系统上远程执行任意…