共计 1641 个字符,预计需要花费 5 分钟才能阅读完成。
文章起源 | 恒源云社区
原文地址 | ECCV 2020
原文作者 | 学习 cv 的小何
背景:
通常 STR 辨认论文中的试验数据集来自实在街景图片,其中蕴含大量语义信息。那么在 decode 时利用 attention 机制的 decoder 往往能够很好地利用这些语义信息,从而防止将 apple 预测成 0pple 的状况。然而理论我的项目中并不一定都是语义信息丰盛的文本图片,遇到随机字符的组合或者弱语义文本辨认,经典识别方法可能呈现谬误的预测后果。
通常对于这种状况,我的习惯是应用 CTC 解码器。而明天介绍一篇来自商汤团队 ECCV2020 的文本辨认论文《RobustScanner- Dynamically Enhancing Positional Clues for Robust Text Recognition》,提出了一种加强地位信息的办法,来解决这一问题。
动机:
作者发现目前的 STR 辨认模型对于没有语义信息或者弱语义信息的文本辨认成果不佳。而随后试验发现,基于 attention 的解码器中,对于不同的文本串每个 time step 的隐含状态(ht- 即 attention 中的 query)在同一个地位类似度很高,阐明 h 编码了字符的地位信息。同时时序模型失去的 h 隐含状态,往往蕴含肯定的语义信息。但试验发现随着文本串的长度减少,相邻 h 之间的余弦类似度变得越来越大,阐明随着语义信息的减少(工夫序列越靠后,积攒的语义信息越多),这种地位信息反而升高了。因而作者认为面对没有多少语义信息的文本串,有必要尝试减少地位信息,升高过强语义信息导致 atten 并未精确定位到以后字符特色。最终试验证实,除了惯例的数据集外,对于随机字符生成的数据集,本文的办法依然能够较好辨认文字。
毛病:
对于语义信息较强的文本串,该计划可能会低于单纯依赖语义信息的 atten 解码器。试验结果显示,在 SVT 和 SVTP 上成果较差,起因在于这两个街道场景数据集中存在大量含糊字符,而它们的数据大多为有语义的单词,这种状况下通过语义进行猜想远比精确定位字符地位更为重要。
奉献:
解码器蕴含地位加强模块和经典的解码模块
设计动静交融模块来合并 两个解码器的输入。
计划介绍:
经典的辨认模型构造:CNN encoder + hybrid branch decoder
RobustScanner:减少了 position enhancement branch,加强 query 中的地位信息特色。最初将两个分支的输入 gt 和 g’t 利用动静交融模块进行交融解决
上面具体介绍这两个模块
一、position enhancement branch
由 position embedding layer、attention module、position aware module 组成
1、position embedding layer 地位编码层
将以后的 time step 对应步数作为输出,失去地位编码向量。embedding 层,输出 one-hot 向量,输入 embedding 向量。
作者比照了 embedding 层编码(可学习)和 transformer 中的三角函数 position 编码(不可学习)形式的体现,如下:
2、position aware module 地位模块
对编码器的输入特色进行加强,使其能够编码丰盛的地位信息。尽管 position embedding layer 对文本中字符的 index 做了编码,但要想在 encoder 输入的 feature map 上精确定位第 t 个字符还是很艰难。这须要全局信息。因为 CNN 的感触野无限,而且确定字符的 index 须要精确了解文本序列的方向、形态,因而作者抉择两层单向 LSTM,对 feature map 的每一行进行解决,使得输入能够编码地位信息。输入是 attention module 的 key。
构造是双层单向 LSTM,33conv + relu + 33conv
二、Dynamically-Fusing Module
构造如上图 b。
交融办法方面,作者比照了 concate 和 element-wise add。后果如下,动静交融成果最好