代码地址(unofficial):SPCNet
1. 概述
导读:这篇文章是在Mask RCNN的基础上进行改进得到的新文本检测算法。其具体改进体现在引入TCM(Text Context Module)与Re-Score Module。前者帮助补充与获取原Mask RCNN的proposal中缺失的全局信息,减少误检。后者通过TCM模块中的语义信息映射的得分与原Mask RCNN的分类置信度混合,帮助提升文本置信度的可信度与准确性。性能方面,其在ICDAR 2013、ICDAR 2015与ICDAR 2017 MLT数据集上的F-measure分别为92.1%、74.1%与82.9%。
这篇文章改进自Mask RCNN,而单纯的将Mask RCNN迁移到文本检测任务中,会面临如下的问题:
- 1)**缺少上下文信息:**由于Mask RCNN是在proposal出来的区域内进行instance Segmentation 这样是无法很好考虑到proposal区域与周围区域的关系,也无法使用周围区域的信息来帮助排除错误的检测,这就使得文本检测的错误率较高;
- 2)分类置信度的不准确:在Mask RCNN中将分类置信度作为检测结果的分数,但是proposal的区域是矩形,在文本检测的时候可能会存在较多的背景等无关区域,这就使得置信度很低;
下面的图1是文章提出的Re-Score方法与传统分类置信度方法的对比,可以看出文章提出的新的置信度计算方法更为准确。

这篇文章的主要贡献可以归纳为如下2个方面:
- 1)提出了TCM与Re_Score Module,有效减少误检情况;
- 2)提出了有效监测任意形状文本的检测器;
2. 方法设计
2.1 网络结构
文章的网络结构如下图2所示:

从上图中可以看出文章采用的backbone是FPN,在FPN的每一层上使用TCM模块作为文本特征增强,右边的两个小图分别是RCNN&Mask头与TCM模块的结构。
2.2 TCM模块
TCM模块有两个子模块构成,分别是PAM(Pyramid Attention Module)和PFM(Pyramid Fusion Module),这两个子模块组合在一起有效增强了文本信息的表达。
PAM子模块
这个模块设计的思路来自于SSTD,它的分割部分是由2个
3
∗
3
3*3
3∗3的卷积与1个
1
∗
1
1*1
1∗1的卷积(输出为2个channel,前景与背景)构成,例如,输入图像是
512
∗
512
512*512
512∗512的,那么stage2上的特征图就是
S
2
∈
R
128
∗
128
∗
256
S_2\in R^{128*128*256}
S2∈R128∗128∗256的。之后在输出2个channel的数据上做chanel-wise的softmax操作,其过程可以描述为:
m
a
p
=
T
C
M
(
S
2
)
map=TCM(S_2)
map=TCM(S2)
s
a
l
i
e
n
c
y
_
m
a
p
=
e
S
o
f
t
m
a
x
(
m
a
p
)
saliency\_map=e^{Softmax(map)}
saliency_map=eSoftmax(map)
softmax之后的信息会被映射到256的channel上与原输入特征做点乘:
s
a
l
i
e
n
c
y
_
m
a
p
∗
=
B
r
o
a
d
c
a
s
t
(
s
a
l
i
e
n
c
y
_
m
a
p
)
saliency\_map^*=Broadcast(saliency\_map)
saliency_map∗=Broadcast(saliency_map)
S
2
∗
=
s
a
l
i
e
n
c
y
_
m
a
p
∗
⊙
S
2
S_2^*=saliency\_map^*\odot S_2
S2∗=saliency_map∗⊙S2
其操作部分就是下图中的黄色块儿代表的部分。

PFM子模块
这部分是将使用分割结果增强的文本特征与原输入特征进行融合,从而兼容背景与文本区域的特征,其表达为:
G
T
F
=
C
o
n
v
3
∗
3
(
S
2
)
GTF=Conv_{3*3}(S_2)
GTF=Conv3∗3(S2)
S
2
^
=
S
2
∗
+
G
T
F
\hat{S_2}=S_2^*+GTF
S2^=S2∗+GTF
对应就是上面图的绿色部分。
2.3 Re-Score Module
这部分是将RCNN头的分类置信度与TCM中的分割置信度组合起来得到的新的检测区域评估置信度,不同来源的两个部分其对应关系如下图所示:

对于2分类的文本检测任务,其RCNN头的分类置信度为
C
S
=
{
S
i
0
c
s
,
S
i
1
c
s
}
CS=\{S_{i0}^{cs},S_{i1}^{cs}\}
CS={Si0cs,Si1cs},而TCM中的分割置信度表示为
I
S
=
{
S
i
0
i
s
,
S
i
1
i
s
}
IS=\{S_{i0}^{is},S_{i1}^{is}\}
IS={Si0is,Si1is},之后通过Softmax操作计算总的置信度:
s
i
=
e
(
S
i
0
c
s
+
S
i
1
c
s
)
e
(
S
i
0
c
s
+
S
i
1
c
s
)
+
e
(
S
i
0
i
s
+
S
i
1
i
s
)
s_i=\frac{e^{(S_{i0}^{cs}+S_{i1}^{cs})}}{e^{(S_{i0}^{cs}+S_{i1}^{cs})}+e^{(S_{i0}^{is}+S_{i1}^{is})}}
si=e(Si0cs+Si1cs)+e(Si0is+Si1is)e(Si0cs+Si1cs)
而对应的IS区域是对应分割输出结果区域的均值,其计算为:
s
i
1
i
s
=
∑
j
p
i
j
N
s_{i1}^{is}=\frac{\sum_j{p_i^j}}{N}
si1is=N∑jpij
2.4 网络损失函数
这里网络的损失函数定义为(具体权值配比文中没找到-_-||):
L
=
L
r
p
n
+
λ
1
⋅
L
c
l
s
+
λ
2
⋅
L
b
o
x
+
λ
3
⋅
L
m
a
s
k
+
λ
4
⋅
L
g
t
s
L=L_{rpn}+\lambda_1\cdot L_{cls}+\lambda_2\cdot L_{box}+\lambda_3\cdot L_{mask}+\lambda_4\cdot L_{gts}
L=Lrpn+λ1⋅Lcls+λ2⋅Lbox+λ3⋅Lmask+λ4⋅Lgts
前面的4项损失是原Mask RCNN自带的,最后的一项就是对应的分割损失(Softmax Loss):
L
g
t
s
=
1
N
∑
i
−
l
o
g
(
e
p
j
∑
j
e
p
j
)
L_{gts}=\frac{1}{N}\sum_i{-log(\frac{e^{p_j}}{\sum_j{e^{p_j}}})}
Lgts=N1i∑−log(∑jepjepj)
3. 实验结果
ICDAR 2017:

ICDAR 2015&2013:

消融实验:

SPCNet是基于Mask RCNN改进的文本检测算法,通过引入Text Context Module (TCM)和Re-Score Module,提高检测准确性和减少误检。TCM利用Pyramid Attention Module和Pyramid Fusion Module增强文本特征表达,Re-Score Module结合分类和分割置信度提升检测置信度。实验结果显示,SPCNet在ICDAR 2013、2015和2017 MLT数据集上表现出优异的F-measure。
1758

被折叠的 条评论
为什么被折叠?



