Motivation
在两阶段的OCR算法中,文字识别算法的效果通常收到文字检测的效果限制。 作者提出了 Implicit Feature Alignment,IFA模块,能够让普通的文字检测模块在无需text detector下进行多行文字识别(识别篇章)。
通过将IFA整合到文字识别的两种主流方法 attention-based和CTC-based,分别对应attention-guided prediction(ADP)和Extended CTC(ExCTC);并且为了抑制negative prediction,改进 Aggregation Cross-Entropy,提出Wassetein-based Hollow Aggreation Cross-Entropy(WH-ACE )
方法
模型在推理过程如图所示,输入图像
x
x
x(单行文本或者多行文本),首先采用CNN的特征提取器
F
\mathfrak{F}
F提取得到特征F 得到的特征
F
F
F直接经过分类器
C
\mathfrak{C}
C得到分类的结果图Y,其中K表示字符类别数+空字符 通过后处理就可以得到最终的预测序列。
IFA隐式位置对齐,从而特征F直接接分类器,能够在对应位置预测出正确的字符。下面详细介绍各个部分组件。
Attention-guided Dense Prediction(ADP)
模型在训练时图片用的单行文本。在通常的带注意力机制Encoder decoder中, attention decoder
A
\mathfrak{A}
A采用RNN,GRU,LSTM等序列化输出文本,从而保证输出的序列关系,即
P
(
y
∣
x
)
=
P
(
y
1
∣
x
)
P
(
y
2
∣
x
,
y
1
)
?
.
.
.
?
P
(
y
t
∣
x
,
y
1
,
.
.
.
,
y
t
?
1
)
P(y|x)=P(y1_|x)P(y_2|x,y_1)*...*P(y_t|x,y_1,...,y_{t-1})
P(y∣x)=P(y1∣?x)P(y2?∣x,y1?)?...?P(yt?∣x,y1?,...,yt?1?) 将attention map在t步记作
α
t
\alpha_t
αt?, 其中
e
t
,
h
,
w
e_{t,h,w}
et,h,w?是用来计算attention map的energy map或者score map。上下文向量
c
t
c_t
ct?,
c
t
c_t
ct?作为分类器的输入,得到t时刻的预测
y
t
y_t
yt? 损失函数为交叉熵损失函数,
softmax会鼓励预测接近one hot分布(感觉这部分是,t步预测时attenion map通常只在对应的字符附件有响应,从而才有下面的公式) 所以这里是认为attention map的机制实现了对齐的,从而网络也学习到像素对应的位置特征。
Extended CTC(ExCTC)
这里的ExCTC是利用squeezeNet channel-wise做attention的思想,将得到的
N
?
C
?
H
?
W
N*C*H*W
N?C?H?W的feature map沿着
H
H
H维度做attention,这样通过softmax后每一列只有一个响应,在沿着
H
H
H方向求和,得到
N
?
C
?
1
?
W
N*C*1*W
N?C?1?W,最后直接过分类器都得到预测结果,预测结果是1维的,接下来就是传统的CTC loss。
Wassertein-based Hollow ACE(WH-ACE)
后处理
通过分类器,最终得到对应的二维的字符预测结果,接下来就需要后处理。这里的后处理类似于DFS求解连通域 按照从左到右,从上到下的顺序,寻找每一个非blank预测结果,将所有联通的结果合并算作一个,最后得到最后的结果。
总结
本文在训练用单行文本训练,通过设计的attention模块和exCTC保证网络在不需要字符级的标注下,能够在多行文本inference在不同位置预测对应字符。但是感觉从原理上attention 部分在多行能够起作用,SE部分多行文本应该一列只有一个响应啊,虽然在inference的时候将SE的去掉,也许是通过训练时后只用单行文本,用SE来引导网络在对应位置和字符建立implicit的约束吧。
|