1 Introduction部分
- 关于解决符号识别和结构分析
sequential methods:首先将表达式分段输入到数学符号中,并分别识别它们。然后根据符号识别结果进行结构分析,找出表达式的结构
global methods:处理 hmer 作为一个全局优化的符号识别和结构分析。符号分割是隐式执行的。 - 直观地利用动态轨迹和静态图像建立一个更强大的识别系统,称为多模态 hmer (multi-modal HMER)
- 随着深度学习的兴起,基于注意力的编解码方法被广泛应用于 hmer,这种方法可以分为在线和离线情况
- 对于在线 hmer,[9,10]将手写数学表达式(hme)视为一个点序列,并从输入轨迹中提取点级特征
- 利用丰富的动态(空间和时间)信息对手写识别有着极大的帮助,在线手写体识别往往会遇到较少的手写模糊所带来的困难
- 缺乏全局信息可能会导致延迟笔画或插入笔画造成错误识别
- 对于离线 hmer,[11,12]将 hme 作为静态图像,并从输入图像中提取像素级特征
- 本文提出了一种基于笔画约束的在线 hmer 注意网络(stroke constrained attention network,scan) ,该网络将笔画作为编解码模型的基本单元。它既可以用于单模态,也可以用于多模态。
- (i) It greatly improves the alignment generated by attention;
- (ii) The number of strokes is much smaller than the number of points or pixels, which helps accelerate the decoding process;
- (iii) For multi-modal recognition, SCAN provides oracle alignments between online traces and offline images, which enables to fuse features from different modalities in encoder and significantly improves the performance.
- 特征提取
对于在线模态,我们采用了一个基于门控递归单元(cnn-gru)的编码器卷积神经网络,从输入跟踪序列中提取点级特征。然后利用笔画约束信息,即点与笔画之间的对应关系,将点级特征转换为在线笔画级特征。同样,对于离线模态,我们采用基于 cnn 的编码器从输入图像中提取像素级特征,然后将其转换为离线笔划级特征。引入注意力解码器生成识别结果,注意力实际上隐含地实现了符号分割。笔划级特征作为一种从低层点/像素特征中提取的更高层次、更准确的表示方法,可以潜在地降低符号分割和识别的难度。
- 对于多模态 hmer,SCAN不仅可以将点和像素按笔划分组,从而产生更有效的符号分割,而且可以使编码器中不同模式的特征融合成为可能。
- 编码融合(encoder fusion)
- 提出的编码器融合算法的一个优点是在解码器融合前一步进行信息交互,从而更早、更充分地发挥多种方式的优势。由于[13]以点和像素为基本单元,在线点级特征和离线像素级特征之间没有明确对齐的情况下,很难实现编码器融合
- 解码融合(dedoder fusion)
- 在这项工作中,多模态注意配备了重新注意机制,通过生成一个包含两种在线和离线模式信息的多模态笔画级上下文矢量来指导解码过程。
- 如图1所示,scan 将stroke视为基本单位,因此在stroke级别的特征之间存在在线和离线。因此,我们可以融合它们在编码器,以获得多模态笔画水平的特征,然后反馈到解码器。最后采用注意机制指导解码过程,逐步生成识别结果。它可以利用这两个在线和离线信息获得更准确的注意结果,并显著提高在线 hmer 的性能
- 编码融合(encoder fusion)
- 本文主要工作
- 通过充分利用笔划信息,提出了一种新的基于在线HMER的编码器-解码器SCAN框架。
- 通过在线/离线笔划级特征的新颖设计,提出了一种单模态SCAN方法
- 介绍了一种多模式SCAN方法,采用了两种融合策略,即编码器融合和解码器融合。
- 我们通过对stroke级特征的注意可视化来证明SCAN的有效性和效率
- 五个方面
- 笔画作为高层次的表示,而不是点/像素作为单模态和多模态 hmer 的低层次表示
- 笔划级别的特征用于多模态注意,配备了再注意功能,以显示笔划约束信息的强度;
- 在编码融合策略中充分利用了在线和离线级别的特征;
- 提出了一个笔划级别的注意引导器,以帮助更好地学习注意力;
- 在已公布的 crohme2014/crohme2016/crohme2019基准上设计了一套综合实验。
2 Related Work
2.1 Traditional approaches for HMER
在线 hmer 的一个关键特性是在书写过程中可以获得笔尖运动(xy 坐标)和笔状态(笔下行和笔上行)。对于 hmer [14,15,16]的传统方法通常利用钢笔状态提前对属于同一笔划的轨迹点进行分组,并将笔划作为基本单位,即将数学表达式表示为一组笔划。Hmer 的过程可分为两个步骤: 符号识别和结构分析。符号识别包括符号分割和分类。符号分割实际上是对属于同一个符号的笔画进行分组。这两个步骤可以单独或联合实现,分别引用顺序方法和全局方法。顺序方法[5,6]首先通过寻找最佳的笔画组和识别与每个笔画组相对应的符号来实现符号识别。然后用句法模型表示符号之间的空间关系,如树型结构模型[17]。在顺序方法中,上下文信息没有得到充分利用,符号分割/识别错误将随后传播到结构分析中。相反,整体方法[7,8]使用完全表达式同时优化符号识别和结构分析。然而,全局搜索方法在计算上更加昂贵,因此必须定义有效的搜索策略。
2.2 Attention based encoder-decoder approches for HMER
编解码框架已广泛应用于许多应用,包括机器翻译[19,20,21]、语音识别[22,23]和图像标题[24,25,26]。通常,首先使用编码器从输入中提取高级表示。然后,应用解码器逐步生成可变长度的序列作为输出。为了解决输入和输出都是可变长度的问题,译码器通常采用注意机制[27,28,29] ,通过对可变长度的高层表示进行加权平均,生成一个固定长度的上下文矢量来指导译码过程。随着深度学习技术的发展,基于注意机制的编译码方法也被广泛应用于 hmer,它将树型结构的输出格式转换为乳胶字符串,显著地优于传统的编译码方法。按照 hmer 的输入方式不同,这些方法可以分为在线和离线输入法。在线方法将 hme 视为动态跟踪,而离线方法将 hme 视为静态图像。在线方法[9]采用了空间注意的基于 gru 的编码器和基于 gru 的解码器,与传统的 hmer 方法相比,取得了显著的改进。[10]引入了一种带有额外时间注意力和注意引导器的点击模式,以进一步提高性能。此外,[30]在编码器中采用了剩余连接,在解码器中采用了转换转移矩阵。对于离线方法,[11]采用了一种 wap 模型,该模型采用基于 cnnbased 编码器从静态图像中提取特征。[12]提出了一个从粗到细的注意力提高效率的方法。此外,[31]引入了 pal 模式,并在培训中采用了对抗性学习策略。
2.3 Multi-modal machine learning
最近,越来越多的研究集中在多模态机器学习,其目的是利用优势和互补的多模态[32,33,34,35]。多模态的一个重要主题是如何将不同模式的信息融合起来。针对不同长度的特征,如句子、视频和音频流,多模态融合的一个难点是不同形态的不对齐性。由于基于编解码器的框架被广泛应用于序列机器学习,本文重点讨论了在编码和解码阶段的多模态融合技术。一般来说,编码器中的融合特征可以获得比解码器[38,39]更好的性能,因为来自不同方式的信息可以更早地交互。然而,我们通常缺乏最佳的映射之间的不同形式,这使编码器融合的挑战。虽然[40,41]利用跨模态自我注意来实现编码融合,但由于跨模态自我注意所获得的对齐不能保证准确,因此仍然存在不对齐问题。不同的是,对于在线 hmer,我们可以通过充分利用笔划约束信息来获得在线和离线模式之间的 oracle 比对(oracle alignments)。因此,在这项研究中,我们提出SCAN来实现编码器中的在线和离线模式融合,这将显著提高识别性能。
3 Single-modal SCAN
在这一部分,我们介绍了建议的单模态 hmer SCAN,包括在线SCAN(onscan)和离线SCAN(offscan)。与以往的单模态方法[10,11,12]不同,我们在基于 hmer 的编解码器中明确地利用了笔画约束信息。具体来说,SCAN中采用的是笔划级特征,而不是点级和像素级特征。此外,解码器的注意机制是发现预测的数学符号与输入特征之间的对齐关系。因此,SCAN中的注意实际上是对属于同一个符号的笔画进行分组,这显然比以往的笔画特征分组方法更简单、更有效,因为笔画级特征是一种比局部点级或像素级特征更高层次的注意表示,可以降低注意难度。
3.1 Data Preparation
- 对于在线 hmer,输入的原始数据是手写的痕迹,可以表示为可变长度的序列:
{[x1, y1, s1] , [x2, y2, s2] , · · · , [xN , yN , sN ]}
其中 xi 和 yi 是笔运动的 xy 坐标,si 表示第 i 点属于哪个笔划。
3.1.1 Input Features
- 在线8维向量:
xoni = [xi, yi,∆xi,∆yi,∆2xi,∆2yi, strokeFlag1, strokeFlag2]
其中: xi = xi 1-xi,something yi = yi 1-yi,something 2xi = xi 2-xi,something 2yi = yi 2-yi。最后两个词是表示钢笔状态的标志,即[1,0]表示“ pen-down”,而[0,1]表示“ pen-up”。我们将处理后的跟踪点序列称为 xon = { xon1,xon2,,xonn } ,其中 n 表示跟踪点的个数。
2. 离线
对于离线模式,我们首先计算所有笔画的高度。然后计算高度大于最大高度的十分之一的笔画的平均高度。在此基础上,根据平均高度对所有点的 xy 坐标进行归一化处理,并简单地将每一笔的轨迹点直线化为静态图像,减小了大小为 hin × win。
3.1.2 Stroke Masks
- 在线情况:
M个笔画
N个点(公式的所有点)
是一个N维的向量,第i个点要在第j个笔画上,就为1,不在就是0 - 离线情况:
是一个h*w的矩阵,每个(h,w)处,若该点在j笔画上,就置为1,否则置为0
3.2 Online Encoder
CNN的输入:转换成的8×1×N的张量
卷积层:密集连接的层,特征映射的高度为1时,卷积层的内核大小从3×3修改为1×3
CNN的输出:1×L×
每个是一个维的向量
CNN-GRU encoder的输出: