图像文字识别初探(一)-CRNN(Convolution Recurrent Neural Network)和DTRN(Deep-text Recurrent Network)
图像文字识别初探(二)-FAN(Focusing Attention Network)
图像文字识别初探(四)-- single-shot text detector
FAN(Focusing Attention Network)
论文:Focusing Attention: Towards Accurate Text Recognition in Neural Images
此篇论文是海康威视联合复旦和上交发表的,论文中提出FAN(Focusing Attention Network)算法,FAN包括两个主要的组件,AN(attention network)用来识别目标字符和FN(focusing network)通过检查AN的注意力是否在图片中的目标字符区域,然后调整注意力。整个FAN网络架构包括一个基于ResNet网络的特征提取,一个AN网络和一个FN网络,如下图所示,CNN-BLSTM从输入图像中提取特征向量序列,AN使用提取的特征输出alignment factor和glimpse vector,FN聚焦AN中的注意力在输入图像中合适的目标字符区域。
Attention Network
一般来说,基于注意力机制的文本识别通常是encoder-decoder架构,在encoder阶段,一张输入图像经过CNN/LSTM转换成特征向量序列,序列中每一个特征向量对应输入图像中的一个区域,在此论文中,此区域为attention regions; 在decoder阶段,AN网络首先计算alignment factor,factor的计算牵涉到the history of target characters和the encoded feature vectors这两个变量,于是就可以使得attention region和相对应的ground-truth-labels对齐,接下来,基于glimpse vectors和 the history of target characters,一个RNN网络就可以用来生成目标字符了。
对于一个输入图像,图像首先被一个CNN/LSTM编码成特征向量序列,
,这时Encoder阶段; 在第t步,decoder输出
,其中
是RNN第t个时刻的隐含状态
,
是编码器输出的特征向量序列
的加权和
,其中
为algiment factor。对
的计算是通过对
中的每一个元素的得分来评估,并对得分进行归一化:
其中v, W,V和b全是可训练的参数。
由于解码器需要输出一个变长的序列,在目标集合中,添加一个特殊的字符end-of-sentence(EOS),当出现EOS时,解码器完成字符的输出。整个attention model的损失函数为,其中
是第t个ground truth字符。
在场景文字识别中,AN模型主要有两个方面的缺点,其一是attention drift问题,其二是在巨大的场景文本数据下很难训练一个这样的模型。下面我们主要探讨一下attention drift问题。由于低质量(如模糊,污损和噪音等)图片和一些复杂图片(如扭曲或者重叠字符,不同字符,不用尺寸,不同颜色或者复杂的背景)的影响,模型在glimpse vector的整合上没有对齐约束,产生不正确的alignment factor,导致注意力区域和标签区域错误匹配,就是所谓的attention drift。如下图中的子图片(a)所示,为了解决这个attention drift问题,此篇论文中加入了FN网络。
Focusing Network
FN网络的引入是为了解决attention drift问题,,如下图所示,它主要分为两大步:
- 计算每一个预测lable的中心注意点(attention center)
- 通过生成在注意力区域(attention region)的概率分布将注意力集中在目标区域(target region)
计算attentiopn center
前提条件:在attention model中,每一个特征向量与原图中的一区域相对应。在卷积和池化操作中,定义输入特征图为,输出特征图为
,其中N,D,W,H分别表示batch_size,通道数和特征图的宽和高。依据卷积里的计算,有
假设在L层的坐标点(x,y),我们计算它在L-1层的recetive field为bounding box坐标,计算公式为:
在第t步,我们通过递归地计算上述公式得到在输入图像中receptive field,并且选择此receptive field的中心作为attention center
,其中j是
的下标,location是计算receptive field中心的函数,因此对目标字符
在输入图像中的attention center 为
将注意力集中在目标区域
计算目标字符的attention center后,我们从输入图像或者一个卷积层输出裁剪一块
大小的特征图,
,其中F为图像或者卷积特征图,P是在输入图像中ground-truth区域的最大值。得到裁剪后的特征图后,计算每一个attention region的energy distribution,
,其中R,S,b都是可训练的参数,(i,j)则表示第
特征向量,那么被选中的区域的概率分布为:
其中K是类别标签的数目
FN的focusing 损失函数为,其中
是ground-truth pixel label,
是FN的全部参数
所以整个FAN的损失函数为:
基于attention的加码器利用学习到的字符概率统计输出字符序列。对于无约束的文本识别(无字典),直接选择最大概率的字符;对于有约束的文本识别,根据不同尺寸的字典,计算字典中所有字符的条件概率,选择最高概率的作为输出
总结
- 有效地对齐注意力区域和图像中的目标区域,成功解决了attention drift问题
- 能准确识别复杂或者低质量图像中的文字
- 带字典和不带样本的样本都可以