由粗到细的注意力机制
Image-to-Markup Generation with Coarse-to-Fine Attention
图片的多层卷积网络+结合了多行循环网络模型的encoder+基于注意力机制的循环decoder
CNN 输出 进入 行encoder,生成特征灰色网格,虚线指出token的中心,蓝色是粗粒度注意力选出的符号0的支撑集
成就:减少注意力开支
全栅格encoder:不一定从左到右
由一个解决image captioning的模型改编而来,但添加了row encoder
模型
- CNN 图片卷积,生成灰度栅格图(包含抽象特征)[feature map]
- RNN(row encoder) 对灰度grid 的每一行进行编码,提取空间布局信息,生成特征[fine feature]
- 2变体,提取[coarse feature],来决定2的support region(蓝色)
- 包含注意力机制的RNN(decoder),一个词汇表上的条件语言模型[final output]
具体实现
1 CNN卷积
多层卷积穿插最大池化,没有使用最终全连接(因为想使用CNN特征的局部信息,视觉注意力)
2 row encoder
传统使用CTC(分割字母,得到剪枝的所有可能结果并预测概率)
对OCR至关重要,定位相对位置
使用的LSTM模型(RNN的一种)
位置嵌入:可训练的初始隐藏层,捕捉列信息【?】
3 decoder
在[decoder RNN]上层有[条件语言模型]
计算 P(预测值 | 过去decoder结果、特征V) = 激活函数(学习到的矩阵Ot)
Ot = 激活函数 (学到的矩阵(RNN历史记录向量*ct))
ct:上下文注意力。上下文:对源的特征的期望
4 注意力机制
标准、分类、由粗到细
基础 连接主义文本提议网络
Detecting Text in Natural Image with Connectionist Text Proposal Network
ECCV 2016
https://github.com/eragonruan/text-detection-ctpn
目标
- 准确定位自然图像中的文本行:垂直锚点机制,固定宽度划分文本与非文本
- 定位文字提案,循环连接固定宽度的锚点提议:BRNN网内循环架构,用于按顺序连接这些细粒度的文本提议序列提议,通过循环神经网络自然地连接起来
方法
- CPTR网络:由卷积网络、特征映射图组成。卷积采用由VGG16(迁移学习)网络结构
- VGG16使用的层:
- RNN:带反馈的、可以利用先前知识的CNN,利用文本序列性特性
- 层使用的神经元:LSVM:可以学习长期依赖信息的RNN。只有一些少量的线性交互
- 双向循环神经网络(BRNN):不仅考虑过去知识,还考虑未来
- RNN:带反馈的、可以利用先前知识的CNN,利用文本序列性特性
- 非极大值抑制
结果
CTPN的计算效率为0.14s每张图像
分割 实例分割检测场景文本
PixelLink: Detecting Scene Text via Instance Segmentation
AAAI 2018
https://github.com/ZJULearning/pixel_link
VGG16通过像素二分类划分,直接提取边框
扭曲文字识别
TextSnake A Flexible Representation for Detecting Text of Arbitrary Shapes
ECCV2018
https://github.com/princewang1994/TextSnake.pytorch
论文介绍详细,甚至包括网络调参细节、batch设计和GPU设计等
目标
识别以曲线方式分布的文字
方法
- FCN全卷积网络:分为卷积和上采样,卷积使图片越来越模糊,最终确定类别;上采样确定原图像素点的类别。(网络卷积部分还是VGG)
- 网络得到7个通道结果:网络得到文字区域及区域中心线、区域角度等信息;分割成不同区域
- 跨步滑动形成圆盘(原理:如果曲率大,则跨步小,描绘出整个曲线)圆盘半径与跨步长度有关(为什么要设计圆盘?分开文字后续进行文字识别?)
数据
该文提出了一种新的文字区域表示方法,没有现成数据集,需要自己制作标签(区域和中心线)
损失函数
损失 = 区域和中心线的分类损失(交叉熵,类似极大似然,取概率最大的类分类) + r sin cos等几何属性的回归损失(smooth1Loss,一个更优的均方误差函数)
评价指标
评价指标有准确率(Precision)、召回率(Recall)、F值(F-Measure)
召回率:度量有多个正例被分为正例
精度:表示被分为正例的示例中实际为正例的比例。
F:两者调和 当F1较高时则能说明试验方法比较有效
语义增强
SEED Semantics Enhanced Encoder-Decoder Framework for Scene Text Recognition
CVPR2020
https://github.com/Pay20Y/SEED
目标
识别出单词并进行矫正,应对诸如图像模糊、光照不均、字符不完整等诸多挑战
发展历程
- 自底向上:SVM等对字母识别并分类;启发式规则、语言模型或词典将它们分组到一个单词或文本行
- 自顶向下:将一个单词视为一个类,识别-》图像分类。技术:连接主义时间分类(CTC)和注意力机制
步骤
从一个预先训练好的语言模型中获得词语嵌入,并计算训练过程中语义信息和词语嵌入之间的损失。通过这种方式,语义信息包含更丰富的语义,
然后预测的语义信息被用来指导解码过程。因此,解码过程可以被限制在一个语义空间内,识别性能会更好
1)编码器包括 CNN骨干和 RNN 用于提取视觉特征;
2)语义模块用于从视觉特征中预测语义信息;
3)预训练语言模型用于监督语义模块预测的语义信息;
4)解码器包括 RNN 和注意机制用于生成识别结果。
模型
- 语义模块 fastText:模仿构词学,将单词间的关系用向量表示
https://cloud.tencent.com/developer/article/1495100 - 编码器-解码器框架:编码器卷积和采样,生成视觉特征;解码器上采样恢复维度
- 文字识别 SAR 二维注意力机制模块(就是网络中的注意力模块)
超分辨率
Scene Text Image Super-Resolution via Parallelly Contextual Attention Network
ACMMM 2021
https://github.com/Vill-Lab/PCAN
SR,图片超分辨率super resolution
数据
该论文的主要工作是构建了新的数据集:真实的场景文本SR数据集,称为TextZoom。它包含一对真实的低分辨率和高分辨率图像
模型
对SRResNet模型进行修改
并行的上下文注意网络,主要是改变了RNN的基本单位,平行的上下文关联注意块(PCAB)
直观地说,水平方向建模用于构建字符对字符
的依赖关系,而垂直方向建模用于字符内的纹理上下文。