EmbedMask精度不变速度超MaskRCNN三倍

1,510 阅读3分钟

本文介绍 2019_12_08_06_EmbedMask精度不变速度超MaskRCNN三倍

EmbedMask精度不变速度超MaskRCNN三倍

This article was original written by Jin Tian, welcome re-post, first come with jinfagang.github.io . but please keep this copyright info, thanks, any question could be asked via wechat: jintianiloveu

最近有两篇非常好的论文放出,而且都是实例分割的,并且都是基于FCOS的工作,今天主要介绍的事EmbedMask这篇文章的工作。自从MaskRCNN发布以来,业内很少有那么令人惊喜的研究成果出现了,大多数基于二阶段加上cascade,改backbone的工作本质上并没有太大的意义,因为你点虽然高了,但速度却更差了。这基本上在实用性上就大打折扣,更别说TensorMask这种精度更差速度更慢的文章了,我阅读那篇论文只能说设计太fancy,也可能是太超前导致我们这样的普通学者难以理解,也感受不到太多的创新意义。

而相反,随着今年AnchorFree方法的大放异彩,从去年的CornerNet到今年的FCOS,CenterNet等,可以说再一次刷新了人们的认知,大家发现,原来我不用anchor也可以做的这么好(实际上说到这里,那些基于anchor的一阶段方法基本上宣判死刑了,为什么?anchor的存在自然有训练的好处,但是也同样由于它的存在导致模型在新数据新场景新scale情况下缺乏自适应能力,善于将算法应用于工业界的朋友应该都知道,如果在要求准确性的真实场景下,这些模型除了速度快以外基本上没有实用性)。

再一次到了2019年年底,这两篇论文再次刷新了人们的认知,大家发现,原来一阶段算法也能做出这么好的实例分割!

说了这么多,不如直接看论文的榜单吧!

1575801767168

可以看到,最快EmbedMask速度可以达到MaskRCNN的三倍!并且就精度来讲,基于可以做到不掉点(反而似乎点更高了呢!)

都是基于FCOS的工作

虽然EmbedMask和CenterMask等工作都是基于一阶段的检测算法,来做实例分割,但是它的核心要点,其实并没有变:

基于一个足够好的detector来从proposal里面生成mask

这个指导思想几乎从maskrcnn时代就没有改变过,但是事实证明这非常的有效,基于一个足够好的detector的实例分割方法不仅仅有利于找到更多的mask,同时这些mask的生成反过来会提升detector本身的效果,所以你可以看到这两个实例分割的box AP都要比FCOS要高,当然这也是必然。

EmbedMask的思路也很清晰,就是基于我们上面所讲到的这个指导思想:

EmbedMask的应用前景

FCOS是一个非常好的检测器,但是速度却不是最快的anchorfree检测器,不过据我观察,好在EmbedMask在FCOS上增加的算法复杂性并不大,它没有带来更多的骚操作,比如MaskRCNN带来了很多ROIAlign等骚操作,这会导致传统工业应用算法对这些冷门的算子优化太少,不利于部署。但EmbedMask不同,基于FCOS维护的比较好的工业实现,它也继承了很好的工业应用性。

至少在我们MANA社区的推动下,我们已经可以将EmbedMask导出到ONNX格式,那对于部署到其他平台,甚至采用TensorRT加速,实现一个真正的realtime实例分割框架也是水到渠成的事情。

如果大家对加速实例分割比较感兴趣,欢迎跟进我们的神力社区帖子:EmbedMask的ONNX导出和TensorRT加速