PlugNet - yubo105139/paper GitHub Wiki
PlugNet: Degradation Aware Scene TextRecognition Supervised by a PluggableSuper-Resolution Unit (ECCV2020)
针对低质量的的场景文本图像识别任务,使用超分结构来辅助识别网络的训练,解决模糊和低分辨率的问题。
code:https://github.com/huiyang865/plugnet
贡献:
-
对网络中间的特征进行超分,以提高文字识别效果。
-
原始文本使用CNN压缩图像分辨率,该方法对空间特征不敏感。这里使用特征压缩模块(1×1卷积+向量转化层)获取到输入到识别模块的 1 维向量。来保留原始的空间位置信息。
-
训练时添加超分块,推理时移除,减小了计算量。
所谓可插拔超分单元(pluggable super-resolution unit )?
PSU只参与训练过程。PSU主要用于辅助识别网络,从低质文本图获取更鲁棒的特征表达来用于识别。
process in code :
-
lr-->encoder --> encoder_feats, sharing_feats
-
sharing_feats-->rcan-->fake_HR
-
fake_HR, hr -->loss_sr
-
encoder_feats-->decoder-->rec_pred
-
rec_pred,rec_target--->loss_rec
共享特征其实为ASTER识别encoder部分的中间特征。训练时,将这个中间特征传入超分网络得到fake_HR, 计算其和hr的loss。
特征压缩模块,以及特征增强模块都在encoder中,跟在共享特征后。
网络设计
四个部分组成:修正网络, cnn共享骨干,识别部分,PSU可插拔超分单元,
-
修正网络(Rectification Network)
用于纠正不规则的场景文字图像。
-
定位网络( localization network):20个控制点来定位输入图像的文本边缘
-
网格生成器(grid generator):根据定位结果,使用(Thin-Plate-Spline)计算每个相素的变形矩阵
-
采样器(sampler): 通过连接生成矫正结果
-
-
cnn共享骨干(sharing cnn backbone)
用于特征的提取,这里用到了特征金字塔方法进行特征融合,以获取多元语义信息。
-
使用resnet结构提取特征图
-
与Aster识别器结构相似,为保留空间信息移除了最后的3个下采样层。原始结构得到的特征图大小为输入图的1/4
-
识别部分(Recognition Part)
用于文字识别。
- 使用基于LSTM的文本识别方法
- 上一步得到的特征图被输入Feature Squeeze 模块,生成一维向量。
- 向量输入带注意力机制的sequence-to-sequence模型(LSTM构成的encoder-decoder)得到识别结果
-
可插拔超分单元(Pluggable SR Unit)
用于改善提取的低质图特征。
用于特征提取的共享骨干网络的结构
可插拔超分单元
PSU将共享的特征恢复成原始图像对应的超分辨图像。使得共享特征骨干网络能够更好的表达低质图的特征。
- 基于RCAN构建
- 每个RG两个RCAB(残差注意力块),使用了两个RG。
- 训练时使用,推断时可移除。
为了更好的训练超分辨单元、改善特征的表达,使用了两种特征增强的方式:高斯模糊和 4 倍上下采样。
特征增强设计
-
特征压缩模块(FSM)
包含一个1×1卷积,用于减小通道数;
一个reshape层生成一维向量;
不仅提高了文本识别,而且高分特征有利于超分单元。
-
特征增强模块(FEM)
参考特征金字塔网络;
两个下采样层,将维度转为W/4×H/4;
将底层到高层的维度连接;
训练和推断方法
- 数据集
Synth90K (90k) :从9万个词的词典中生成的 900万张合成文本图像。
SynthText (ST):从文本检测的研究中生成,被切成单个文本
裁剪了400万张文本图片用于训练,训练时候不将训练和测试数据分开。
- 训练时的超分单元
由于文本识别的数据没有高低分图像对,所以使用高斯模糊和上下采样去生成低质图。得到HR-LR。
而修正网络可能对这里的超分结果有影响。先模糊,然后修正,然后超分。
按照如下方法对一张图进行操作。
为了保证修正网络不改变输入的图像和修正后图像的分布,使用了超分损失:
- 损失函数
识别损失和超分损失组成。设置λ = 0.01.
使用交叉熵的识别损失。
超分损失使用L1损失:
实验
使用不同数据集验证识别能力。
训练数据未进行数据增强和选择。
batch-size 128
lr 1, 0.1,0.01 adadelta 2*2080ti
test阶段22ms/per image, 训练阶段0.97s/per batch(128)
组件测试
FSM
使用四个不同的特征分辨率网络,1×1卷积层输出一样维度25×1024来验证。
其他组件
PSU的效果
分别使用生成数据和原始数据对没有添加超分组件的网络进行训练。结论:PSU生成的超分数据表现更好。
先ESRGAN超分+Plugnet(no PSU) 效果和TextSR相似。
PSU的添加在所有数据集上识别都有提升。
loss中权重λ 的设置实验
λ 越大,特征中的噪音和模糊越少,然而越大也越聚焦于图像底层信息的重建,对文本的识别造成了副效应。经过多组实验取最优的λ 。模型效果依赖于λ 取值,取值需要反复实验去权衡。
与不同SOA模型的对比