【AAAI 2019】SPCNet
这篇文章是谢恩泽在face++实习期间完成的一个工作,被AAAI2019接收,主要是做任意形状的场景文本检测,同时抑制错误样本的检测。
arXiv:https://arxiv.org/abs/1811.08605
Motivation
过去场景文字检测模型大多分为如下两类:1,基于语义分割的检测。2,基于边界框回归的检测。
这些方法的劣势在于不能很好的处理弯曲文字,而弯曲文字在自然场景中也是大量存在的。
我们考虑到弯曲文字可以通过实例分割的方法去处理,于是基于Mask R-CNN 去做。
ECCV2018有一篇Mask Text Spottor也是用了mask rcnn做了端到端识别,比我们早一点,做研究有局部撞车是常态了。。。不过eccv那篇对Maskrcnn本身并未做过多修改,创新之处主要在识别部分。
言归正传,本文的SPCnet将Mask R-CNN作为baseline,同时引入了text context 模块和re-score机制,从而提高检测准确率,降低FP的出现。
这张图是re-score模块的可视化图,可以看到,mask rcnn将水平box的分类分数最终的score,对于倾斜文本不是很友好,并且可能会引入fp,我们在这里将语义分割图上的响应和原本的score融合起来,得到的fus-score可以缓解mask rcnn直接移植到文字检测上分类分数不准的问题。
整个网络流程如下,a是fpn结构,b是text context(TCM)模块,d是TCM具体的方法。
整个方法在mask rcnn的基础上多了一个分支做文字的语义分割,并把语义分割的中间特征和检测分支的特征融合起来,再把语义分割的预测结果作为一个attention mask 乘回feature map,起到一个对特征attention的作用。
这块是重打分的一个可视化说明,绿色的是水平box,红色的是instance seg的结果,下面的是全局语义分割的结果,我们把instance seg的结果投影到语义分割图上,并在该区域内算一个响应值,得到instance score,并和原来的classification score融合得到最终的score。
该部分是label generation部分,主要是bounding box, instance seg和semantic seg的label。
消融实验
我们在icdar2017 val上做了实验,发现TCM和RS分别能提高模型的最终结果。在recall保持一致的情况下precision涨点,说明能有效抑制FP。
在icdar17,15,13和total-text(多语言,多方向,水平文本,弯曲文本)上都是state-of-the-art,充分证明了该方法的有效性。
PS:ic17上文字scale比例差距很大,所以随便写了个简陋的多尺度测试居然涨4个点。。。。。
一些可视化效果图:
在ICDAR2015上对比一些经典方法的FP情况,可以看到我们的方法可以有效抑制FP。
总结:这个工作是的第一份正儿八经的科研工作,在旷视大约两个半月时间完成,还是比较欣慰的,二作是一个本科生,也参与了很多工作在里面,同时也感谢很多人给予了不少帮助。
希望自己以后能在计算机视觉领域多发表高水平paper,同时欢迎同行多多交流。下面是我的知乎原文链接,欢迎评论交流。点击阅读原文,也可以直接访问。