IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 论文详解:Attention-based Extraction of Structured Information from Street View Imagery(基于注意力机制的街景图像信息提取) -> 正文阅读

[人工智能]论文详解:Attention-based Extraction of Structured Information from Street View Imagery(基于注意力机制的街景图像信息提取)

0. 摘要

? (1)该论文基于CNN、RNN和提出新颖的Attention建立的神经网络模型,在FSNS数据集上准确率达到84.2%,而之前最先进的方法的准确率为72.46%;另外,在Google的Street View 数据集上也表现良好。
? (2)本论文的模型具有以下特点:更简单、更通用、更快速
? (3)研究了不同深度的CNN特征提取器,权衡其速度和准确性

1. 引言

1.1 现状分析

? (1)传统OCR侧重于从扫描文档中提取文本

? (2)自然场景中提取文本更具有挑战性,其原因在于:自然场景容易产生视觉伪影、图片失真等情况

1.2 本文模型与之前模型的效果对比

? 本文模型在FSNS上实现了84.2%的准确率,显著优于之前最优的72.46%。
? 之前的模型是:将不同视图转移到批量维度,然后使用多层LSTM,旨在处理每一行文本,并使用CTC损失训练模型。

1.3 CNN特征提取器

? 本文研究了3种基于CNN的特征提取器: inception-V2, inception-V3, inception-resent-V2,将这三个的输出,作为注意力机制的输入。

1.4 此文贡献

? (1)提出了一种新颖的基于注意力的文本识别架构,以端到端的方式进行训练
? (2)展示该模型在更新的、更具有挑战性的数据集上提供了更为出色的结果
? (3)研究了使用不同深度的CNN模型的速度/准确率的权衡,并推荐了一种准确高校的配置

2. 方法

? 该文使用CNN特征提取器处理图像,然后通过新颖的注意力机制进行加权,再将加权后的数据传递给RNN.模型结构如图:

2.1 基于CNN的特征提取器

? 考虑了Inception-V2、Inception-V3和Inception-resent-V2三种特征提取器,后两种性能相当,且都由于第一种。记:
f = { f i , j , c } f=\left\{\begin{matrix}f_{i,j,c}\end{matrix}\right\} f={fi,j,c??}
表示图像x通过CNN特征提取器后输出的特征图,其中: i , j i,j i,j 表示图中的像素位置, c c c 表示通道。

2.2 RNN

? 文本识别的主要挑战是将特征图转换为单个文本字符串。RNN所做如下:
? Step1: S t S_t St? 为RNN在时间 t t t 的隐藏状态。RNN的输入是由空间加权组合确定的,设空间注意力(即上文提到的由该文提出的新颖的注意力机制)掩码 a t a_t at?(即权值)表示如下,其计算过程会在后面展示出来:
a t = { a t , i , j } a_t=\left\{\begin{matrix}a_{t,i,j}\end{matrix}\right\} at?={at,i,j??}
? Step2: 计算了空间注意力掩码后,就可以计算特征的加权组合,其计算如下:
u t , c = ∑ i , j a t , i , j ? f i , j c u_{t, c} = \sum _{i,j} a_{t,i,j} *f_{i,jc} ut,c?=i,j?at,i,j??fi,jc?
? 其中, u t , c u_{t,c} ut,c? 表示加权后的特征向量, f i , j , c f_{i,j,c} fi,j,c? 是上面CNN特征提取器的输出图。
? Step3: 在时间 t t t ,将RNN的总输入定义为:
x ^ t = W c C t ? 1 o n e h o t + W u 1 u t ? 1 \hat{x}_t = W_c C^{onehot}_{t-1} + W_{u1} u_{t-1} x^t?=Wc?Ct?1onehot?+Wu1?ut?1?
? 其中 C t ? 1 o n e h o t C_{t-1}^{onehot} Ct?1onehot? 是前一个字符的索引, W c W_c Wc?猜测是关于前一个字符的权重 u t ? 1 u_{t-1} ut?1? 表示上面的加权求和, W u 1 W_{u1} Wu1?猜测是关于 u t ? 1 u_{t-1} ut?1?的权重

? Step4: 然后计算RNN的输出和下一个状态,计算如下:
( O t , S t ) = R N N S t e p ( x ^ t , S t ? 1 ) (O_t, S_t) = RNNStep(\hat{x}_t, S_{t-1}) (Ot?,St?)=RNNStep(x^t?,St?1?)
? 其中, O t O_t Ot?表示输出, S t S_t St?表示下一个状态。

? Step5: 给定时间 t t t时,字符的最终预测分布为
O ^ t = s o f t m a x ( W o O t + W u 2 u t ) \hat{O}_t = softmax(W_oO_t + W_{u2}u_t) O^t?=softmax(Wo?Ot?+Wu2?ut?)
? W W W表示为权重,其余的在上面公式中可以找到。

? Step6: 计算可能的字母
C t = a r g M a x ( O ^ t ) C_t = arg Max(\hat{O}_t) Ct?=argMax(O^t?)
? 称之为:贪婪解码。

2.3 空间注意力

? 大多数使用空间注意力进行OCR的先前工作是根据当前的RNN状态预测掩码,如下:
a t , i , j = V a T ? t a n h ( W s s t + W f f i , j , : ) a_{t,i,j} = V_a^T*tanh(W_ss_t+W_ff_{i,j,:}) at,i,j?=VaT??tanh(Ws?st?+Wf?fi,j,:?)

a t = s o f t m a x i , j ( a t ) a_t = softmax_{i,j}(a_t) at?=softmaxi,j?(at?)

其中, V a V_a Va?是一个向量,本文将 t a n h tanh tanh中的内容替换成了:
W s s t + W f 1 f i , j + W f 2 e i + W f 3 e j W_ss_t+W_{f_1}f_{i,j}+W_{f_2}e_i+W_{f_3}e_j Ws?st?+Wf1??fi,j?+Wf2??ei?+Wf3??ej?
其中, e i e_i ei?是坐标 i i i的one-hot编码, e j e_j ej? j j j的one-hot编码,这相当于给原来的 W s s t + W f f i , j W_ss_t+W_ff_{i,j} Ws?st?+Wf?fi,j?添加了一个空间变化的偏置项。

2.4 处理多个视图

? 在FSNS数据集中,每个符号有4个视图,每个视图的大小为150 x 150。通过相同的基于CNN的特征提取器(共享参数)独立处理每一个视图,然后将他们水平的连接起来。
? eg: 四个视图每个视图的大小为16 x 16 x 320,连接后的 f i , j , c f_{i,j,c} fi,j,c?=64 x 16 x 320.

2.5 训练

? Step1: 使用(惩罚)最大似然估计训练模型,即我们需要最大化:
∑ t = 1 T l o g p ( y t ∣ y 1 : t ? 1 , x ) {\sum_{t=1}^T} log \quad p(y_t | y_{1:t-1},x) t=1T?logp(yt?y1:t?1?,x)
其中, x x x是输入图像, y t y_t yt? 是位置t的预测标签;对于FSNS数据集来说,T=37,因为该数据集中的图片最多37个字符。注:之前的方法一般都是使用CTC损失来进行训练的。
? Step2: 使用随机梯度下降进行优化参数,初始化 l r = 0.002 lr=0.002 lr=0.002 ,衰减因子=0.1,经过120万Step后进行学习率的变化,且其动量因子为0.75。
? 注:120万Step的意思是模型的参数更新120万次,模型每训练一个batch的样本后才会更新参数。
? Step3: 对每一个图像进行以下增强过称:
? 1)对每个视图进行随机裁剪,要求覆盖原图的80%区域,且其纵横比在0.8—1.2之间;
? 2)裁剪后,使用随机选择的插值方法(如:双线性插值法,最近邻插值法等)将裁剪后的图片进行插值,将其调整为原图大小;
? 3)然后,应用随机图像扭曲:改变其对比度、色相、亮度和饱和度;
? 4)为了模型的正则化,设权重衰减0.00004,标签平滑因子(标签平滑详情),LSTM值裁剪到10,LSTM的单元大小设置为256,batch_size=32; 对于Inception-resent-v2,由于GPU的内存限制,其batch_size=12。并应用decay=0.9999的Polyak平均来推导出推断的权值。

3.数据集介绍

? 记录本文使用的数据集。

3.1 FSNS数据集

? train: 965917 张
? validation(验证集):38633 张
? test: 42839张
? 每张图片最多有4个图块(即:每张图有4个不同视图),每个图块大小为150 x 150,每个图块最多有37个字符,数据集总的字符类别为134种,图片如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6dqynRBE-1652934168824)(F:/typorasetups/image/image-20220518234049897.png)]
? 如图所示,每个图片都有4个图块(视图),大小均为150 x 150.

3.2 Street View Business Names Dataset

? 约100万张商业方面的单视图图像,图片大小352 x 352,单张图片最多有33个符号,全部图片的字符类别共128个字符。

4. 实验结果

4.1 FSNS的准确性

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ebAT1Mi6-1652934168832)(F:/typorasetups/image/image-20220519104759149.png)]

? 图中的Standard Attention表示传统的注意力机制,Location Attention表示本文提出的空间注意力机制。

4.2 CNN提取器的深度对FSNS的影响

? 精度可能会随着CNN深度的增加而增加而下降。
? 原因分析:

? (1)字符识别不能从图像分类的高级功能中收益;

? (2)每次最大池化后的图像像素的空间分辨率会降低,这限制了特定字符注意力掩码的精度。

4.3 FSNS在注意力机制上的可视化

? 使用该文文献[25]提出的 v i ? s u a l i z a t i o n vi-sualization vi?sualization 过程:
? Step1: 对每个 k k k, 计算其 l o g i t logit logit a k a_k ak? 相对于输入图像 x x x的偏导数;
? Step2: 然后使用公式计算其显著性和 L 2 L2 L2范数 V i , j V_{i,j} Vi,j?:
V i , j = ∣ ∣ ? a k ? x i , j , : ∣ ∣ V_{i,j} = ||{ {\partial}a_k \over \partial x_{i,j,:} }|| Vi,j?=?xi,j,:??ak??
Step3: 为获得噪声较小的显著性映射,该文通过添加少量的高斯噪声创建了16个轻微扰动的图像版本,然后对结果进行平均。此外,通过最近邻插值法进行上采样来可视化注意力图,如下所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cWbR4qWI-1652934168834)(F:/typorasetups/image/image-20220519120307097.png)]
? 红色代表显著性图,绿色代表注意图。在第一个时间步中,注意力地图突出显示了字母“R”,这就是名字的开头。由于“Rue”是这个数据集中一个街道名称的最常见的开头,因此该模型可以预测字符串“Rue”,而无需在接下来的三次迭代中关注图像。这种现象用垂直的绿色条来表示,说明模型只是在关注图像的边缘,而图像的边缘没有信息内容。我们还看到,显著性图在第一步是空间扩散的,因为任何一个字母“R”、“u”或“e”都提供了支持“Rue”的证据;对于剩下的三次迭代,显著性处处为0的。
? 在第9步中,模型正确地发现出了字母“F”,这是单词“Fonds”的开头。注意这个单词在第一个视图存在一些模糊:这种模糊发生在FSNS的一些单词上,由于车牌或人脸检测系统的错误。因此,在处理“Fonds”时,第一个视图(左列)的注意力和显著性映射为零。

4.4 FSNS数据集的错误分析

? 分析了100个随机抽样的错误预测,以更好地理解我们的模型的弱点。
? 48%的“错误”是由于不正确的ground truth。表V给出了更详细的细分情况。最常见的错误是由于字母e上的重音错误(应该是‘e或`e);有趣的是,这也是ground truth转录中最常见的错误。在图4中,我们展示了一些测试用例,其中我们的模型与地面真相有不同的预测。(在最后一个例子中,这是由于地面真相中的一个错误。)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LUQpun8i-1652934168837)(F:/typorasetups/image/image-20220519121419439.png)]](https://img-blog.csdnimg.cn/0ed3e6a3246b4b899f750e4c1501fe3a.png
? 注:
(1)ground truth指正确打标签的训练数据
?(2)还有对另外一个数据集的分析,但另外一个数据集并非公开数据集,所以我这里就不记录。

5. 结论与展望

? 在未来,我们希望研究更复杂的RNN训练方法,如计划抽样[26]或混合ML/RL方法[27]。我们还希望将该系统扩展到从店面中完全结构化地提取业务信息。

6. 论文和代码以及数据

数据集
论文及代码

注: 其github的代码有改动,ocr的代码在此目录下:models-master\research\attention_ocr
  人工智能 最新文章
算法工程师面经汇总
paddlepaddle(一)文字识别
JAX的深度学习和科学计算
学习笔记25--多传感器前融合技术
【预训练语言模型】WKLM: Pretrained Encyc
图像修复方法研究综述----论文笔记
跟着李沐学AI-- 微分
基于Pytorch的机器学习Regression问题实例(
Py-OpenCV学习记录5-滤波处理(一)
使用Opencv imshow时出现Invalid number of
上一篇文章      下一篇文章      查看所有文章
加:2022-05-21 18:58:10  更:2022-05-21 19:02:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
360图书馆 购物 三丰科技 阅读网 日历 万年历 2022年6日历 -2022/6/30 15:36:10-
图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码