attention_ocr

论文:Attention-based Extraction of Structured Information from Street View Imagery

Github:https://github.com/tensorflow/models/tree/master/research/attention_ocr

 

论文提出了基于attention机制的自然场景图片的ocr识别,在French Street Name Signs (FSNS) 数据集上达到了84.2%的准确性,大大超越之前最好的得分72.46%。在更具挑战性的数据集Google Street View 上也取得了很好的结果。最后论文还对速度和精度的取舍做了平衡,得出模型更深不一定更好,不管是速度还是精度。

 

论文贡献:

  1. 提出了基于attention机制的文本识别方法,该方法不需要文本框,可以进行端到端训练,更加简单和通用,在FSNS数据集上大大的超越了之前最优的方法。
  2. 展示attention模型如何在更加挑战性的数据集Google Street View上取得更好的结果
  3. 在模型的速度和精度之间做平衡,贡献了一个速度和精度双优的模型

 

整体结构:

由于FSNS数据集对同一个图片进行了4个角度的拍摄,所以这里网络的输入为4个,经过cnn的4个分支同时处理,然后对输出的特征进行concat,形成f。然后再基于空间像素的加权,即at和f进行加权得到生成的向量u,最后经过RNN处理。

不同时间步进行空间位置的加权如下,

其中,

at表示attention mask,i,j表示空间位置,t表示rnn的时间维度

f表示cnn之后输出的feature map,i,j表示空间位置,c表示channel

RNN在时间t时刻的输入为,

Ct-1表示rnn前一时刻,即t-1时刻的输出,即预测的字符

最终rnn的状态和输出,

最终时刻t的预测输出,

然后通过greedy decoding 进行解码,

训练过程中,求下面式子的最大估计,

X:输入图片

yt:在t时刻预测的标签,时刻T=37,如果预测字符串小于37将会使用空字符代替。

 

 

改进的空间attention:

原始的空间attention如下,

其中,

Va表示一个向量

tanh表示element-wise的tanh操作

该注意力机制,结合了时间Wsst 和空间Wffi 的信息。

本文的改进,去掉了tanh,并且使得模型具有局部感知性(location aware)

ei表示对空间位置i的one-hot编码

ej表示对空间位置j的one-hot编码

如上图所示,前半段红色的表示cnn提取的特征,后半段白色的表示空间位置i的one-hot编码和空间位置j的one-hot编码。

  def encode_coordinates_fn(self, net):
    """Adds one-hot encoding of coordinates to different views in the networks.

    For each "pixel" of a feature map it adds a onehot encoded x and y
    coordinates.

    Args:
      net: a tensor of shape=[batch_size, height, width, num_features]

    Returns:
      a tensor with the same height and width, but altered feature_size.
    """
    mparams = self._mparams['encode_coordinates_fn']
    if mparams.enabled:
      batch_size, h, w, _ = net.shape.as_list()
      x, y = tf.meshgrid(tf.range(w), tf.range(h))
      w_loc = slim.one_hot_encoding(x, num_classes=w)
      h_loc = slim.one_hot_encoding(y, num_classes=h)
      loc = tf.concat([h_loc, w_loc], 2)
      loc = tf.tile(tf.expand_dims(loc, 0), [batch_size, 1, 1, 1])
      return tf.concat([net, loc], 3)
    else:
      return net

从程序也可以看出,首先随机生成一个batch*height*width*(height+width)的one-hot编码形式的向量,然后和原始的feature map做concat操作。

 

FSNS dataset :

法国街景标志数据集,包括965917 训练图片,38633 验证图片,42839 测试图片,每个图片都有4个拍摄角度,大小为150*150像素。该数据集中最长的字符是37个字符,共134个类别。

Street View Business Names Dataset :

包含1M左右的只有一个角度拍摄的数据,图片大小352*352,最长单词为33个字符,共128个类别。

 

实验结果:

论文采用了3种经典inception-v2, inception-v3, inception-resnet-v2 的网络做实验

总结:

基于attention的方法,不需要检测,直接输入图片进行识别,对于要识别的字符类别数很少的场景非常实用,像车牌识别等,或者自然场景图片的主要关键词提取等。同时也不要求识别文本必须单行排列,双行排列,多行排列都可以。在训练过程中则不需要文本框的标注,使得训练数据的收集很方便。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值