代码地址(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