在OCR场景使用GCN图卷积

举报
图森破 发表于 2020/06/11 20:29:25 2020/06/11
【摘要】 在OCR场景使用GCN图卷积 大家好,今天给大家介绍一篇关于在OCR场景中使用图卷积的模型TIES,并对其中edgeconv边卷积部分给出一些自己的理解。那么我们直奔主题。 这个场景的主要目的是利用图卷积GCN来判断OCR票据图像中一对单词是否在同一行/列/cell中。模型的主要输入有:OCR图像,每张图中每个单词的词嵌入特征,每张图中单词即点的个数,每张图的三个邻接矩阵(cell,row...

OCR场景使用GCN图卷积

 

 

大家好,今天给大家介绍一篇关于在OCR场景中使用图卷积的模型TIES,并对其中edgeconv边卷积部分给出一些自己的理解。那么我们直奔主题。

 

这个场景的主要目的是利用图卷积GCN来判断OCR票据图像中一对单词是否在同一行//cell中。模型的主要输入有:OCR图像,每张图中每个单词的词嵌入特征,每张图中单词即点的个数,每张图的三个邻接矩阵(cellrowcolumn)。

                                                                   image.png

TIES算法主要由四部分组成:

image.png

1.       图像处理层:从OCR图像的image feature中,根据每个单词在原图像中的位置选取每个单词的image feature,与票据中单词的词嵌入concatenate,得到B * V * F1特征矩阵(Bbatch size imageV:所有OCR图像中单词即点的最大值,F1:特征维度)

2.       Interaction层:利用GNN对上层输入进行edgeconv。源代码实现中因为没有图计算框架,使用了DGCNN中相同的处理方式,即对每个点的嵌入求KNN邻居,将KNN邻居和点进行edgeconv。但是利用GES图引擎的massage passing可以利用已知的邻接矩阵很好的实现edgeconv,而且可解释性更强。因为这个算法的最终目的是要判断两个点即单词是否在同一行//cell,而行//cell邻接矩阵能很好的保留这部分的信息特征,KNN用在词向量中更注重寻找语义相同的词,而不是位置关系。在DGCNN中利用KNN,是因为DGCNN的输入是点云三维坐标,坐标利用KNN进行计算可以得到邻近的坐标点。所以,在实现中,我们可以利用GCN图卷积,从点的邻点更新自身特征的方式来代替源码中的KNN

Interaction层最后输出B * V * F2特征矩阵。

3.       Pair sampling:对每个点采样ssample,这里与通常的负采样不同,作者设计了和代码相匹配的矩阵运算来进行采样(以相同的概率对每张图中存在的点进行采样,因为每张图词的个数不一样,正负例采样个数基本相同)。这里利用了三个邻接矩阵,利用巧妙的矩阵运算进行采样得到B * V * S的采样对。利用mask矩阵来处理每张图词数即点数不一样的情况。

4.       分类,判断每一对词是否在相同的行//cell,并进行训练。

    image.png

 

 


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。