解决实例分割任务中边缘不够精细:PointRend: Image Segmentation as Rendering

技术讨论 你找不到我 ⋅ 于 8个月前 ⋅ 1215 阅读

最近arxiv上各种检测与分割的paper并不少,看多了倒是有一些审美疲劳。今天快速介绍一篇我觉得从处理的问题上比较新颖,解决方法上比较干净的一个工作。看到各大公众号都快速跟进了这文章,本不想再凑这个热闹,但仔细一看除了鸡肋的机翻并没讲到一些有意思的东西,所以还是从我个人的角度来写写这个文章。

文章要解决的问题是在实例分割任务中边缘不够精细的问题。以MaskRCNN举例,由于计算量和显存的原因,对于每一个ROIAlign之后的proposal我们一般只会upsample到28*28的分辨率输出mask。这对于绝大多数物体显然是不够的。如果想得到像素级别的精度,我们不得不付出更大的计算和存储代价。那有什么办法可以在低代价下仍然得到精细的分割结果呢?其实很重要的一点是往往这些不准确的部分是在物体的边缘,这些边缘其实只占了整个物体中非常小的一部分。所以基于这样的一个想法,作者提出可以每次在预测出来的mask中只选择Top N最不确定的位置进行细分预测。

file

每个细分点的特征可以通过Bilinear插值得到,每个位置上的classifier通过一个简单的MLP来实现。这其实是等价于用一个1*1的conv来预测,但是对于中心很确定的点并不计算。整体的示意图如下:

file

在训练中还有一个很重要的问题就是怎样采点训练这个fine grained的MLP,作者也尝试了各种办法,结果发现还是平衡explore和exploit两者的mildly biased方法能取得最好的效果。

file

在各种定量的评测中,PointRend均能提升1~2点的mask AP,而且展现出越强的backbone,越好的标注提升越高的特点。

file

实际视觉结果上,更是赏心悦目。同样的想法也可以用到语义分割任务中去,同样也可以取得提升。仅放题图一例,有兴趣的读者可以参见原文有更多清晰大图。

file

简单总结来说,PointRend从我的角度理解,我认为和Rendering并没什么联系,这个名字其实甚至是有些confuse的。本质上而言,就是在coarse to fine refinement的过程中加入了cascade hard example mining。整个文章还是很有Kaiming和Ross的风格,论想法而言可能不是会让人眼前一亮,但方法简洁而有效,而且细节做到了极致。如果有对分割精度有比较高要求的同学可以来尝试下。

-End-

作者:Naiyan Wang

链接:https://zhuanlan.zhihu.com/p/98508347

本文来自知乎专栏,仅供学习参考使用,著作权归作者所有。如有侵权,请私信删除。

*延伸阅读

红包口令【3】

file

新参与进来的朋友可以点击 鼠年福利 | 不用集五福也能领的千元红包~ 查看活动详情~

PS:新年假期,极市将为大家分享计算机视觉顶会 ICCV 2019 大会现场报告系列视频,欢迎前往B站【极市平台】观看,春节也学习,极市不断更,快来打卡点赞吧~

https://www.bilibili.com/video/av83388862

微信公众号: 极市平台(ID: extrememart )
每天推送最新CV干货

成为第一个点赞的人吧 :bowtie:
回复数量: 0
暂无回复~
您需要登陆以后才能留下评论!