摘要:本文提出了一种针对文字识别的半监督方法。区别于常见的半监督方法,本文的针对文字识别这类序列识别问题做出了特定的设计。

本文分享自华为云社区《[CVPR 2022] 不使用人工标注提升文字识别器性能》,作者:Hint。

本文提出了一种针对文字识别的半监督方法。区别于常见的半监督方法,本文的针对文字识别这类序列识别问题做出了特定的设计。具体来说,本文首先采用了teacher-student的网络结构,然后采用字符级别的一致性约束对teacher和student网络的预测进行对齐。此外,考虑到文字识别是step-by-step,每一个字符的预测都和之前时刻的预测结果相关。为了避免student网络在当前时刻的预测结果受到之前时刻错误预测的影响,本文将当前时刻之前,teacher的预测结果作为student当前时刻之前的预测结果,这样可以得到比较鲁棒的一致性约束,从而提升性能。

近年来,场景文本识别(STR)因其广泛应用而备受关注。大多数识别模型需要大量的有标注数据进行强监督训练。虽然合成数据可以缓解识别模型对数据量的需求,但是合成数据和真实场景的域间差距极大地限制了识别模型在真实场景下的性能。在本文中,作者希望通过同时利用有标注的合成数据以及无标注的真实数据来提升STR模型的性能,完全不需要任何人工标注。本文提出了一种鲁棒的基于一致性约束的半监督方法,可以有效解决合成数据与真实数据域不一致导致的不稳定问题。字符级的一致性约束旨在减轻序列识别过程中错误识别导致的不对齐问题。在标准文字识别数据集上,大量实验证明了所提出方法的有效性。该方法能够稳步提升现有的STR模型,并得到最先进的结果。此外,本文也是第一个将一致性约束应用到文字识别领域的工作。

方法:

本框架包括两个分支,一个是输出有标签合成数据的强监督分支,一个是输入无标签真实数据的半监督分支。强监督分支和一般的识别模型一样。关于半监督分支,采用teacher-student进行一致性约束。具体来说,将强监督得到的预训练模型作为teacher和student网络的初始化模型,然后对同一张输入图像进行弱数据扩增和强数据扩增,并分别输入到teacher和student网络中;将teacher网络的预测结果作为伪标签对student的输出进行监督。

由于文字识别是一个序列识别问题,当前时刻的预测结果和之前时刻的预测结果相关。为了尽可能减少target和online模型在同一时刻预测结果的不对齐问题,online分支之前时刻的预测结果会和target分支之前时刻的预测结果保持一致,然后再进行当前时刻的字符预测。字符级别的一致性loss如下公式所示,Dist()可以是交叉熵,KL-Div或者MSE,本文采用的是KL-Div。

此外,为了减轻合成数据与真实数据之间的域间差别,本文还使用了字符级别的域对齐模块。该模块首先分别将合成数据和真实数据每个时刻的视觉特征收集起来构成一个集合H

,然后计算他们各自的协方差矩阵cov()。

最终,整个框架的loss由强监督识别loss,一致性约束loss和域适应loss构成:

实验:

在引入无标签数据之后,当前识别模型的性能能够得到稳定的提升。

相比于其他利用无标签数据的方法而言,本文提出的基于一致性约束的方法能够优于其他几种方法。

该实验主要证明了online model中的projection layer,使用EMA更新的target model和domain adaptation模块的有效性。

该实验证明了在online model中使用和target model相同的之前时刻预测结果的有效性。

该实验主要讨论了一致性loss的类型对最终性能的影响,可以看到交叉熵和KL-Div性能差不多,且优于MSE。

论文链接:[2204.07714] Pushing the Performance Limit of Scene Text Recognizer without Human Annotation (arxiv.org)

点击关注,第一时间了解华为云新鲜技术~

论文解读丨【CVPR 2022】不使用人工标注提升文字识别器性能的更多相关文章

  1. 论文解读丨基于局部特征保留的图卷积神经网络架构(LPD-GCN)

    摘要:本文提出一种基于局部特征保留的图卷积网络架构,与最新的对比算法相比,该方法在多个数据集上的图分类性能得到大幅度提升,泛化性能也得到了改善. 本文分享自华为云社区<论文解读:基于局部特征保留 ...

  2. 论文解读丨表格识别模型TableMaster

    摘要:在此解决方案中把表格识别分成了四个部分:表格结构序列识别.文字检测.文字识别.单元格和文字框对齐.其中表格结构序列识别用到的模型是基于Master修改的,文字检测模型用到的是PSENet,文字识 ...

  3. 论文解读( N2N)《Node Representation Learning in Graph via Node-to-Neighbourhood Mutual Information Maximization》

    论文信息 论文标题:Node Representation Learning in Graph via Node-to-Neighbourhood Mutual Information Maximiz ...

  4. 跟我读CVPR 2022论文:基于场景文字知识挖掘的细粒度图像识别算法

    摘要:本文通过场景文字从人类知识库(Wikipedia)中挖掘其背后丰富的上下文语义信息,并结合视觉信息来共同推理图像内容. 本文分享自华为云社区<[CVPR 2022] 基于场景文字知识挖掘的 ...

  5. 自监督学习(Self-Supervised Learning)多篇论文解读(上)

    自监督学习(Self-Supervised Learning)多篇论文解读(上) 前言 Supervised deep learning由于需要大量标注信息,同时之前大量的研究已经解决了许多问题.所以 ...

  6. CVPR 2022数据集汇总|包含目标检测、多模态等方向

    前言 本文收集汇总了目前CVPR 2022已放出的一些数据集资源. 转载自极市平台 欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结.最新技术跟踪.经典论文解读.CV招聘信息. M5Produc ...

  7. zz扔掉anchor!真正的CenterNet——Objects as Points论文解读

    首发于深度学习那些事 已关注写文章   扔掉anchor!真正的CenterNet——Objects as Points论文解读 OLDPAN 不明觉厉的人工智障程序员 ​关注他 JustDoIT 等 ...

  8. CVPR2020行人重识别算法论文解读

    CVPR2020行人重识别算法论文解读 Cross-modalityPersonre-identificationwithShared-SpecificFeatureTransfer 具有特定共享特征变换 ...

  9. CVPR2020论文解读:CNN合成的图片鉴别

    CVPR2020论文解读:CNN合成的图片鉴别 <CNN-generated images are surprisingly easy to spot... for now> 论文链接:h ...

  10. 昇腾CANN论文上榜CVPR,全景图像生成算法交互性再增强!

    摘要:近日,CVPR 2022放榜,基于CANN的AI论文<Interactive Image Synthesis with Panoptic Layout Generation>强势上榜 ...

随机推荐

  1. SpringBoot课程学习(三)

    一.YAML格式的基本语法 (1)格式: 大小写敏感 数据值前边必须有空格,作为分隔符 使用缩进表示层级关系 缩进时不允许使用Tab键,只允许使用空格(各个系统 Tab对应的 空格数目可能不同,导致层 ...

  2. 一文读懂 MySQL 索引

    1 索引简介 1.1 什么是 MySQL 的索引 官方定义:索引是帮助 MySQL 高效获取数据的数据结构 从上面定义中我们可以分析出索引本质是一个数据结构,他的作用是帮助我们高效获取数据,在正式介绍 ...

  3. ExcelHelper ->NPOI插件

    调用: var ms = ExcelHelper.PrintInvoiceToExcel("观看时长", headline, items, (row, item) => { ...

  4. RNN自学理解(一)

    RNN对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,利用了RNN的这种能力,使深度学习模型在解决语音识别.语言模型.机器翻译以及时序分析等NLP领域的问题时有所突破. 参考文献1 ...

  5. MYSQL-->InnoDB引擎底层原理

    逻辑存储结构 逻辑存储结构图 表空间 表空间文件在Linux下存放在 /var/lib/mysql文件中的 xxx.ibd 文件就是表空间文件 表空间文件用来存储,记录,索引等数据. 段 段分为,数据 ...

  6. flutter系列之:builder为构造器而生

    目录 简介 Builder StatefulBuilder LayoutBuilder 总结 简介 flutter中有很多种Builder,虽然所有的builder都是构造器,但是不同的builder ...

  7. js排序的基础原理理解

    在了解数组排序前,我们先了解下如何交换两个数字的位置 假设我们有这么一个数组 var arr=[1,2,3] 我们想交换1和3两个的位置我们该如何做呢? 最简单的肯定是手动赋值,如下 var arr= ...

  8. Python学习三天计划-1

    一.第一个Python程序 配置好环境变量后 打开CMD(命令提示符)程序,输入Python并回车 然后,在里面输入代码回车即可立即执行 Python解释器的作用是 将Python代码翻译成计算机认识 ...

  9. 全球名校AI课程库(38)| 马萨诸塞大学 · 自然语言处理进阶课程『Advanced Natural Language Processing』

    课程学习中心 | NLP课程合辑 | 课程主页 | 中英字幕视频 | 项目代码解析 课程介绍 自然语言处理 (NLP) 是一门关于如何教计算机理解人类语言的工程艺术和科学.NLP 作为一种人工智能技术 ...

  10. 关于图计算&图学习的基础知识概览:前置知识点学习(Paddle Graph Learning (PGL))

    关于图计算&图学习的基础知识概览:前置知识点学习(Paddle Graph Learning (PGL)) 欢迎fork本项目原始链接:关于图计算&图学习的基础知识概览:前置知识点学习 ...