mask rcnn算法分析_统一视角理解实例分割算法:最新进展分析与总结

论坛 期权论坛     
选择匿名的用户   2021-5-30 11:16   220   0
<div>
<p></p>
<div style="text-align:center;">
  <img alt="25244356a4abeb7f53d8ba9336b05cb2.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-a903545226921d6b94d0830c76d35a04.png">
</div>
<p>这是一篇实例分割算法研究进展的分析与总结,最近看到了很多新鲜出炉的论文,其中包括cvpr中稿的论文,应该也包括投稿eccv的论文,也看到了好多关于实例分割算法的分享。但本文的思路和之前的分享有所不同,不会以算法为中心介绍论文,而是尝试首先提出一个实例分割算法的框架,然后在这个统一的框架下对若干经典实例分割算法进行剖析与总结。</p>
<h2><b>前言</b></h2>
<p>实例分割这一任务应该不需要再过多介绍了,兼具语义分割和目标检测的特点,这也逐渐演化出基于<b>语义分割</b>的自底向上与基于<b>目标检测</b>的自顶向下的两条道路,这也是近期看到的很多论文里的遵循的分类方式。但目前这两种算法逐渐趋同,出现了相互融合的趋势,所以本文不会从这个角度入手,而是会从另一视角走入实例分割算法的世界。</p>
<h2><b>Region-based Segmentation</b></h2>
<p>“instance-aware semantic segmentation needs to operate on region level.” 这句话来源于FCIS的论文,作为实例分割元老级算法,文章里的很多话确实非常经典。Region-based segmentation,这是笔者认为实例分割任务的最为精髓的概括,更具体来说,实例分割就是逐区域的分割任务。当然,这里的区域(region)具有更广义的含义,既可以代表rpn中的roi,也可以代表anchor,甚至是anchor point,(当然上述这些实质上并没有太多本质差别,关于这一观点,近期也会放出一篇关于目标检测算法的分享), 我们暂且统一称之为region。</p>
<p></p>
<div style="text-align:center;">
  <img alt="7638877536b16f86c0054e1707f8bcce.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-c4c84a4c0a038c69dd6791c1928fea6c.png">
</div>
<figcaption>
  region-based segmentation
</figcaption>
<p>当我们接受这一设定后,我们就只需要解决三个问题:</p>
<ol><li>区域怎样设定;</li><li>怎样提取区域特征;</li><li>在每个区域内怎样表征和预测物体的mask;</li></ol>
<p>对于问题1,我们一方面要保证region要足以覆盖图片中的所有object,另一方面需要尽可能减少region的数量,毕竟数量越多就意味着越大的计算量,因此我们需要找到以上两个问题的折中。这个问题实际上也是目标检测任务面临的核心问题,因此我们完全可以借鉴目标检测算法中anchor与gt assignment的设计。</p>
<p>对于问题2,我们有很多选择,例如ROI-Alignment,ROIConv,DeformConv等等,甚至是普通的3*3卷积,也可以完成规则区域的特征提取。</p>
<p>而问题3, 则是实例分割问题的核心,关于这一问题,大致总结如下图,接下来会详细介绍其中的含义。</p>
<p></p>
<div style="text-align:center;">
  <img alt="9f56337f83a645d612fe978446353aaa.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-4139dd68211b18b33cc801e3eb2e6429.png">
</div>
<p><b>Mask representation</b></p>
<p>首先要提到的就是怎样表征instance mask,大体上我们可以分为这两类:<b>binary mask</b>和<b>contour</b>。</p>
<p><b>contour</b>是最近很火的实例分割方案,基本都是<b>将contour的预测转化成位于contour上的点集的预测</b>,如CurveGCN, PolarMask, DeepSnake等等。核心问题在于<b>点的位置的自由度的设计</b>:点的位置自由度越低,就意味着更明确的优化目标,但也同时意味着更有限的精度上限,代表算法就是PolarMask,将点限制在极坐标下极角间距确定的若干射线上,如此设计必定对特殊形状的物体无能为力,但换取了更简洁的表达形式和优化目标;而点的位置自由度越高,就意味着可以更趋近于物体的真实contour,拥有更高的理论精度上限,但就需要解决如何衡量<b>点集构成的contour与gt contour间的距离</b>的问题,并据此提出网络的损失函数,CurveGCN,DeepSnake等算法中均提出了一套解决方案。当然,基于contour的算法还需要解决<b>点集初始位置设计</b>、<b>基于点的特征提取问题</b>,但和上述问题相比,此类问题的解决方案会相对容易一些。值得注意的是,并不是所有的mask都可以简单的转化成contour进行预测,所以这类方法依旧存在一定的<b>局限性</b>,但依然不失是一种有益的尝试。</p>
<p><b>binary mask</b>则是实例分割算法的主流,也就是逐区域进行逐像素的分割,自然也存在
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP