【ICCV2023】 MRN:一种多路复用路由网络的增量多语言文本识别方法

news2024/11/17 20:09:32

一句话总结

这项工作作为文本识别领域在增量学习设定下的第一次尝试。我们提出了增量多语言文本识别任务,以及该场景独有的挑战:回放不平衡问题,实验结果和可视化表明模型成功解决了这一问题。

相关资源

论文链接:
arxiv.org/abs/2305.14758
代码链接:
https://github.com/simplify23/MRN

研究背景和动机

随着大数据时代的到来,训练模型的数据往往以现实世界中连续数据流的形式出现。近些年来,越来越多的的机器学习从业者希望模型可以不断的学习到新知识的同时,仍能保持对于旧知识的记忆能力,即更符合现实世界中连续数据流场景。这样的任务设定被称为增量学习。增量学习致力于解决模型训练的一个普遍缺陷:灾难性遗忘(catastrophic forgetting),即模型在不断学习新知识的同时,对于之前习得的旧知识表现大幅下降,并趋向于遗忘的问题。
然而大部分的增量学习方法主要关注于图像分类、目标检测、语义分割等问题。几乎没有工作考虑在文本识别的领域。据我们了解,MRN工作是第一个尝试在文本识别领域考虑增量学习工作。MRN主要关注增量学习的多语言场景文本识别问题(Incremental Multilingual Text Recognition (IMLTR))。在IMLTR场景下,多语言文本识别存在语种多样性的挑战,而增量学习和多语言文本的结合会带来专属IMLTR独特的挑战:回放不平衡问题(Rehearsal-imbalance)。
大部分的增量学习方法关注图像分类,目标检测,语义分割等任务。MRN是目前第一篇关注增量学习文本识别的工作。在这一场景下,出现了增量多语言文本识别任务特有的挑战:回放不平衡问题。回放不平衡问题表现为:类不平衡、数据不平衡和单词不定长问题。
(大部分的增量学习方法关注图像分类,目标检测,语义分割等任务。MRN是目前第一篇关注增量学习文本识别的工作。在这一场景下,出现了增量多语言文本识别任务特有的挑战:回放不平衡问题。回放不平衡问题表现为:类不平衡、数据不平衡和单词不定长问题。)

Rehearsal-imbalance

Rehearsal Set算是增量学习中常见的概念,指在训练新任务的时候,保留下来的一部分有代表性的少量旧数据。在[1]中发现,少量的旧数据可以显著的缓解灾难性遗忘问题,因此被作为增量学习中常见的设定。如何挑选旧数据,如何利用新旧数据进行结合也是一部分工作主要研究的方向。

在场景文本识别的背景下,IMLTR的Rehearsal Set容易面对一些特殊的不平衡问题。1)数据层面(Data- imbalance):语种和语种之间,由于数据的收集难度不一和使用频率不一致(训到理想精度所需样本量),容易收集的语种数据量大,而难以收集的语种往往数据量小,这造成了语种和语种之间,数据的不平衡问题。2)类层面(Class-imbalance): 由于语言表达内容的差异,一些语言(中文,日语,韩语)字符类数量较多而数据样本较少。在Rehearsal Set中,如果照顾每种语言进行均匀抽样,语言的均匀加剧了类不平衡。3)字符层面(Variable length):文本识别任务中的每一张图像往往包含不定长的多个字符类。这使得Rehearsal Set彻底无法保持字符和数据的平衡。我们把这一挑战统一称为Rehearsal-imbalance。

由于这一现象的存在,这使得IMLTR任务不能被抽象成一个简单的增量学习任务。虽然有部分增量学习的工作[2]关注数据不平衡场景,但并没有类似IMLTR这种数据、类和字符都不平衡的场景和相关工作,这使得大部分的增量学习方法并不适用于IMLTR场景。因此,我们设计了更适应IMLTR场景的MRN网络。

在Rehearsal Set中,数据不平衡问题和类不平衡问题更加严重,而文本字符本身存在不定长的属性。我们把在Rehearsal Set中这三种特性归纳为Rehearsal- imbalance问题
(在Rehearsal Set中,数据不平衡问题和类不平衡问题更加严重,而文本字符本身存在不定长的属性。我们把在Rehearsal Set中这三种特性归纳为Rehearsal- imbalance问题)

MRN如何解决Rehearsal-imbalance

这一章从原理的角度介绍MRN更有效的原理。传统的增量学习方法在做IMLTR的任务时,每种新的语言到来都需要重新扩大字符表。Rehearsal set一般固定内存大小,我们参考[2]设置了2000,当进行到第5个任务时,每一种语言分到400个样本(保持样本数量均匀),而部分语言如中文,常用字符接近2000。这使得每一个Rehearsal set的百数量级样本需要准确预测千级别的字符,这大大降低了预测的准确度。回放的样本在字符级别是不平衡的,但每种语言抽取的样本是可以均匀的。MRN方法抛弃了用Rehearsal set维持预测旧字符的做法,而是用Rehearsal set专注于预测当前字符的语种类别,保留并冻结旧模型的分类器,令旧模型的分类器去预测旧字符。通过这样的方式,2000的Rehearsal set被用于预测5个不同的语种的得分(语言域权重),这样大幅降低了模型对于Rehearsal set的字符内容依赖,并巧妙的避免了Rehearsal set中 rehearsal-imbalance的问题,能更好的适用于IMLTR场景。(可视化Figure 5中展示了,即使Rehearsal set中不再有相应的字符(红色标注),模型依然能通过旧的分类器正确分辩字符结果)

MRN网络结构

方法论方面是一个非常简洁并且直接的做法。MRN的详细结构如图所示。对于每种语言的训练主要分为两个步骤:1)只用相应的语言数据集训练模型。 2)将前面每种语言的模型全部冻结,用rehearsal set的数据集(包含当前语言)训练DM- Router(Domian MLP Router)权重投票器。Backbone预测出的特征经过DM-Router计算域得分(Domain Score)并进行后处理。 各个语言模型的分类器分别预测,并通过zero padding进行拼接,拼接以后的特征和域得分相乘并求最大值进行字符解码。由于后处理步骤语言模型的结果可以融合,所以模型可以依靠多个语言专家对同一图像进行复合预测。损失函数为语言域损失(当前标签属于哪种语言)和字符级的损失。
在这里插入图片描述

DM-Router :

刚刚介绍了整体的结构,下面我们介绍一下DM-Router的具体结构。DM-Router对backbone中的特征进行拼接,并且参考MLP- Attention的类似做法进行字符序列-语言域的注意力和通道-语言域的注意力。字符和字符之间存在不同语种的可能性,比如TDR東京,存在英文针对前3个字符,中文,日语针对后2个字符更加擅长。这时,将字符序列-语言域进行类似MLP- Attention的机制可以很好的探索这一线索。而通道-语言域注意力可以探索高低特征维度对语言预测的影响。MLP- Attention之后的特征被压缩到只有一个维度,并进行Softmax操作
在这里插入图片描述

IMLTR数据集

我们针对MLT17和MLT19进行了增量学习场景的设定,并制作了针对IMLTR场景的数据集,具体配置如下:

在这里插入图片描述

消融实验

我们研究了MRN每个模块对试验结果的影响。这里用和我们方法有一定相似性的E-Gate[3]做全面的试验分析。E-Gate分别在专家模型选择方式、模型结构、投票方式和MRN有差异,堆叠式、DM- Router和软投票都能为MRN带来收益。而且对于模型效率而言,MRN和E-Gate需要差不多的参数量和FLOPs.

在这里插入图片描述

实验分析

在实验上,我们选择了基于CTC的CRNN,基于Attention的TRBA,和最近流行的Transformer结构SVTR作为基本方法,并对比了不同增量学习方法在IMLTR场景下的性能评估。我们希望通过实验验证MRN性能大幅提升的关键在于它以一种巧妙的方式解决了rehearsal- imbalance的问题。但rehearsal- imbalance没法直接进行评估。为此,我们做了一系列的实验,来证明MRN的作用。

在这里插入图片描述

SOTA的实验评估,三种不同识别器中MRN都获得了最高的性能,并且远超其他方法
1)数据层面:为评估模型对Data-imbalance的效果,我们设计了改变Rehearsal set大小的实验。MRN在数据严重不平衡(较小的内存)时比其他方法有更大的增益,显示了其对数据不平衡的鲁棒性。
在这里插入图片描述

Rehearsal set不同内存大小的实验分析
2)类层面:为了评估MRN是否更好的缓解class-imbalance问题,我们改变了语种的增量顺序(不同语种类数量差别大)来评估这一问题。 O1为:Chinese, Latin, Japanese, Korean, Arabic, Bangla. 大词汇量的语言(中,日,韩)出现更早,类别不平衡最为严重,这表明 MRN 可以更好地对抗类别不平衡
在这里插入图片描述

不同语种顺序的实验分析
3)字符层面: 不同的采样方式可以改变rehearsal set中每张图片的字符数量,以评估MRN是否能解决字符不定长的问题。Random 的性能优于Length(字符长度普遍更长),这意味着 MRN 可以很好地处理字符不定长问题。
在这里插入图片描述

不同Rehersal set采样策略的分析

可视化

在这里插入图片描述
在这里插入图片描述

总结与展望

我们引入了一个新的场景:增量多语言文本识别(IMLTR),作为一个文本识别领域进行增量学习的设定,IMLTR面临Rehearsal- imbalance的问题,这使得主流的增量学习方法并不适用。为此,我们设计了专注于解决这一问题的MRN网络。作为第一个关注文本识别领域的增量学习任务,我们希望这个工作能推动文本识别社区的进一步发展。
第一次写这样的文章,逻辑还有很多不够strong的情况,欢迎大家提问一起进步~

参考文献

[1] Sylvestre-Alvise Rebuffi, Alexander Kolesnikov, Georg Sperl, and Christoph H Lampert. icarl: Incremental classifier and representation learning. In CVPR, pages 2001–2010, 2017
[2] Matthias De Lange, Rahaf Aljundi, Marc Masana, Sarah Parisot, Xu Jia, Aleˇs Leonardis, Gregory Slabaugh, and Tinne Tuytelaars. A continual learning survey: Defying forgetting in classification tasks.IEEE Transactions on Pattern Analysis and Machine Intelligence, 44(7):3366–3385, 2022
[3] Rahaf Aljundi, Punarjay Chakravarty, and Tinne Tuytelaars. Expert gate: Lifelong learning with a network of experts. In CVPR, July 2017

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

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

相关文章

掌握Python的X篇_8_数字与字符串之间的转换(字符串转数字int;数字转字符串str)

本篇将会介绍如何使用Python中的内置函数将数字型变量与字符串变量进行相互转换。 文章目录 1. 字符串转数字2. 数字转字符串 在上篇中写如下代码会报错 In [12]: num1input("请输入num1") 请输入num1345 In [13]: print(num1*10) 345345345345345345345345345345In…

TOOD Task-aligned One-stage Object Detection 论文学习

1. 解决了什么问题? 目标检测通过多任务学习的方式,协同优化目标的分类和定位。分类任务会学习目标的判别特征,关注于目标的显著性或关键区域,而定位任务则学习准确地定位目标的边界。因为定位和分类的学习机制不同,这…

Java调用ChatGPT(基于SpringBoot和Vue)实现连续对话、流式输出和自定义baseUrl

目录 版本更新说明1. 配置阶段1.1 依赖引入1.2 配置application.yml文件1.3 注解添加 2. 使用2.1 生成回答2.1.1 测试 2.2 生成图片2.2.1 测试 2.3 下载图片2.3.1 测试 2.4 生成流式回答2.4.1 流式回答输出到IDEA控制台2.4.2 流式回答输出到浏览器页面2.4.3 流式回答结合Vue输出…

Python TypeError: unsupported operand type(s) for +: ‘int‘ and ‘str‘

在键入数值进行相加运算时,报了这样一个错误 类型错误:不支持操作类型为整数和字符串 错误分析:sumsuminput() 未被系统识别,导致程序错误 解决方法:给键入的数值定义,声明为整数 sumsumint(input()) 即…

开源大模型LLaMA 2会扮演类似Android的角色么?

在AI大模型没有商业模式?等文章中,我多次表达过这样一个观点:不要把大模型的未来应用方式比喻成公有云,大模型最终会是云端操作系统的核心(新通用计算平台),而它的落地形式会很像过去的沃森&…

消息队列(一)-- RabbitMQ入门(3)

延迟队列 延迟队列是用来存放需要在指定时间被处理的元素的队列。队列内部是有序的&#xff0c;最重要的特性就体现在它的延时属性上。 使用场景&#xff1a;订单在十分钟之内未支付则自动取消。 整合SpringBoot 新建一个SpringBoot的Module 添加依赖 <!--RabbitMQ依赖-…

Kafka集群——(区别于Master/Slave架构的的分布式集群)

Kafka角色介绍&#xff1a; 1. Producer:消息生产者&#xff1a; 2. Broker: kafka实例&#xff0c;可以理解为一台kafka服务器&#xff0c;kafka cluster 是由多个broker构成的集群。 3. Topic: 消息主题&#xff0c;理解为消息队列&#xff0c;kafka数据就保存在topic里。…

vue+Element-ui实现树形组件、表格树

需求 要做出如下图所示的 树形表格&#xff0c;也就是数据之间有父子类关系的这种&#xff0c;可以点击展开、收缩 像上图这样的表格树 实现 1.使用树形组件 在学习树形表格之前&#xff0c;肯定得先搞懂普通的树形组件是怎么搞的&#xff0c;然后将其套到表格中就好了&…

基于JavaSE的手机库存管理系统

1、项目背景 基于JavaSE完成如下需求&#xff1a; 功能需求&#xff1a; 1、查询库存量 2、可以修改库存中不同品牌手机的个数 3、退出系统 实现步骤&#xff1a; 1、把List当做库房 2、把手机存放在库房中 3、使用封装的方法区操作仓库中的手机 2、项目知识点 面向对象 集合…

存储过程——case函数、while函数、repeat函数的应用、loop函数

1.case循环 存储过程中&#xff0c;几种循环格式的语法讲解。 create procedure p6(in month int) begindeclare result varchar(10);casewhen month > 1 and month < 3 thenset result : 第一季度;when month > 4 and month < 6 thenset result : 第二季度;whe…

spring cloud sentinel

初始时 并不能将sentinel实例显示出来的 需要修改加配置clent-ip spring:cloud:sentinel:transport:#本机ipclient-ip: 192.168.10.108#dashboard服务端的grp端口 监听心跳的port: 8719#dashboard服务端地址dashboard: 192.168.12.14:8080

数据结构【栈和队列】

第三章 栈与队列 一、栈 1.定义&#xff1a;只允许一端进行插入和删除的线性表&#xff0c;结构与手枪的弹夹差不多&#xff0c;可以作为实现递归函数&#xff08;调用和返回都是后进先出&#xff09;调用的一种数据结构&#xff1b; 栈顶&#xff1a;允许插入删除的那端&…

了解Unity编辑器之组件篇Physics(四)

Physics&#xff1a;用于处理物理仿真和碰撞检测。它提供了一组功能强大的工具和算法&#xff0c;用于模拟真实世界中的物理行为&#xff0c;使游戏或应用程序更加真实和可信。 主要用途包括&#xff1a; 碰撞检测&#xff1a;Unity Physics 提供了高效的碰撞检测算法&#x…

【Unity实战篇 】| 游戏中实现镂空遮罩效果【矩形、圆形镂空遮罩】

前言【Unity实战篇 】 | 游戏中实现镂空遮罩效果【矩形、圆形镂空遮罩】一、制作原理二、矩形中间镂空遮罩效果2.1 实现镂空显示2.2 镂空区域内事件穿透三、圆形中间镂空遮罩效果总结前言 本文来写一下怎样在Unity中完成一个 镂空遮罩 的效果。镂空遮罩 比较常用的有两种:矩形…

力扣题库刷题笔记73--矩阵置零

1、题目如下&#xff1a; 2、个人Python代码实现 3、个人Python代码思路 a、声明2个空数组p、q&#xff0c;用于存放值为0的元素matrix[i][j]的下标 b、首先遍历二维数组matrix&#xff0c;找到值为0的元素matrix[i][j]&#xff0c;将下标i加入数组p&#xff0c;将下标j加入数…

【【51单片机直流电机调速】】

学会电机调速&#xff0c;掌握中国速度 PWM的生成方法 先用户设定一个比较值&#xff0c;然后计数器定时自增。 当计数器<比较值&#xff0c;输出0 当计数器>比较值&#xff0c;输出1 main.c #include <REGX52.H> #include"delay.h" #include"…

vue 学习笔记 【ElementPlus】el-menu 折叠后图标不见了

项目当前版本 {"dependencies": {"element-plus/icons-vue": "^2.1.0","types/js-cookie": "^3.0.3","types/nprogress": "^0.2.0","axios": "^1.4.0","core-js": &quo…

PHP 药店管理系统mysql数据库web结构apache计算机软件工程网页wamp

一、源码特点 PHP 药品管理系统 是一套完善的web设计系统,系统采用smarty框架进行开发设计&#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 PHP 药店管理系统mysql数据库web结构apache计 下载地址…

TSN -促进IT/OT 融合的网络技术

时间敏感网络&#xff08;tsn&#xff09;技术是IT/OT 融合的一项关键的基础网络技术&#xff0c;它实现了在一个异构网络中&#xff0c;实现OT的实时数据和IT系统的交互数据的带宽共享。 TSN允许将经典的高确定性现场总线系统和IT应用&#xff08;如大数据传输&#xff09;的功…

第1章 获取数据库中的数据

CoreShop源程序是以数据库优先进行定义的&#xff0c;所以其本身不包含代码优先的定义&#xff0c;但本从更习惯于代码优先&#xff0c;所以为其定义了代码优先的定义。 1 CoreCms.Net.Model.Entities.SysRole using SqlSugar; using System.ComponentModel.DataAnnotations…