Young87

当前位置:首页 >个人收藏

马氏距离计算实例_CVPR 2020 | PolarMask:将实例分割统一到FCN,有望在工业界大规模应用...

CVPR 2020 在前几天刚刚公布录用结果,其中有效投稿 6656 篇,最终录用 1470 篇,接收率 22.1 % 。CVPR 2020 将于6月14日-6月19日在美国西雅图举办。

虽然在近三年来,CVPR 的论文投稿量都在持续大涨(CVPR 2018有 3300 篇有效投稿、CVPR 2019有 5160 篇有效投稿、CVPR 2020有效投稿达6656),然而在接收率方面,已是“二连降”(CVPR 2018 收录论文 979 篇、接收率为 29%左右;CVPR 2019 收录论文 1300 篇,接收率为25%左右;CVPR 2020 收录论文 1470篇、接收率为 22%左右)。

我今天要介绍的是我们在CVPR 2020上被录用的文章《PolarMask: Single Shot Instance Segmentation with Polar Representation》,介绍一种single shot的实例分割框架PolarMask。 2d637306592cbbe0dbd9f65772c4700f.png 论文链接: https://arxiv.org/pdf/1909.13226.pdf 开源代码: https://github.com/xieenze/PolarMask PolarMask基于FCOS,把实例分割统一到了FCN的框架下。在2019年4月份FCOS挂出来之后,我和沈老师就一直在讨论如何进把instance segmentation融合进FCN里。FCOS本质上是一种FCN的dense prediction的检测框架,可以在性能上不输anchor based的目标检测方法,让行业看到了anchor free方法的潜力。 接下来要解决的问题是实例分割。这个工作我个人觉得最大的贡献在于,把更复杂的实例分割问题,转化成在网络设计和计算量复杂度上和物体检测一样复杂的任务,把对实例分割的建模变得简单和高效。

Mask R-CNN

首先回顾一下之前最经典的实例分割方法,‘先检测再分割’,在这方面做到极致的算法是Mask RCNN。 
69080e76ebc7c0bf911bbd38d603cb15.png
Mask R-CNN属于基于两阶段的检测算法,在检测框的基础上进行像素级的语义分割,简化了实例分割的难度,同时取得了stoa的性能,在'先检测再分割’ 这一范式上做到了极致。

PolarMask

我们的PolarMask提出了一种新的instance segmentation建模方式,通过寻找物体的contour建模,提供了一种新的方法供大家选择。 两种实例分割的建模方式: 1、像素级建模 类似于图b,在检测框中对每个pixel分类; 2、轮廓建模 类似于图c和图d,其中,图c是基于直角坐标系建模轮廓,图d是基于极坐标系建模轮廓。 46bf4028448f785633682d99adb1fdb5.png 可以看到Mask R-CNN属于第一种建模方式,而我们提出的PolarMask属于图d建模方式。图c也会work,但是相比图d缺乏固定角度先验。换句话说,基于极坐标系的方式已经将固定角度设为先验,网络只需回归固定角度的长度即可,简化了问题的难度。 PolarMask 基于极坐标系建模轮廓,把实例分割问题转化为实例中心点分类(instance center classification)问题和密集距离回归(dense distance regression)问题。 同时,我们还提出了两个有效的方法,用来优化high-quality正样本采样和dense distance regression的损失函数优化,分别是Polar CenterNess和 Polar IoU Loss。 没有使用任何trick(多尺度训练,延长训练时间等),PolarMask 在ResNext 101的配置下 在coco test-dev上取得了32.9的mAP。这是首次,我们证明了更复杂的实例分割问题,可以在网络设计和计算复杂度上,和anchor free物体检测一样简单。我们希望PolarMask可以成为一个简单且强有效的single shot instance segmentation 的baseline。 PolarMask最重要的特点是: (1) anchor free and bbox free,不需要出检测框 (2) fully convolutional network, 相比FCOS把4根射线散发到36根射线,将instance segmentation和object detection用同一种建模方式来表达。 我们选取FCOS嵌入我们的方法,主要是为了simple。FCOS是目前state-of-the-art的anchor-free检测器,并且十分simple。我们在FCOS的基础上,几乎不加任何计算量,就可以建模实例分割问题,并取得competitive的性能,证明了实例分割可以简化成和目标检测相同复杂的问题。 此外,FCOS可以看成PolarMask的特殊形式,而PolarMask可以看作FCOS的通用形式,因为bbox本质上是最简单的Mask,只有0,90,180,270四个角度回归长度。我们首次将instance segmentation和object detection用同一种建模方式来表达。

网络结构

d4ae906e9e6911641102194ff5812b5c.png 整个网络和FCOS一样简单,首先是标准的backbone + fpn模型,其次是head部分,我们把fcos的bbox分支替换为mask分支,仅仅是把channel=4替换为channel=n, 这里n=36,相当于36根射线的长度。同时我们提出了一种新的Polar Centerness 用来替换FCOS的bbox centerness。 可以看到,在网络复杂度上,PolarMask和FCOS并无明显差别。 Polar Segmentation建模 e8a8ffb8ed2e6cf15e59ddd6444d5cb4.png 首先,输入一张原图,经过网络可以得到中心点的位置和n(n=36 is best in our setting)根射线的距离,其次,根据角度和长度计算出轮廓上的这些点的坐标,从0°开始连接这些点,最后把联通区域内的区域当做实例分割的结果。 在实验中,我们以重心为基准,assign到feature map上,会在重心周围采样,作为正样本,别的地方当做负样本,训练方式和FCOS保持一致,采用Focal Loss, 在此,我们提出Polar CenterNess,用来选择出高质量的正样本,给低质量的正样本降低权重。

Polar CenterNess

如何在Polar Coordinate下定义高质量的正样本?我们通过如下公式定义 2b25262f9aeaf806ef07b5daa3cd644c.png 其中 d1 d2....dn指的是36根射线的长度,最好的正样本必须具备dmin ——> dmax.  用一张图举例: 9501ed0f5bf8376735fad3535d78cad9.png 以看到中间的图,会出现长度回归差别很大的问题,而右边的图中心点位置就较为合适,到所有轮廓的长度回归就较为接近,36根射线的距离会比较均衡。Polar Centerness 可以给右边图的点较高的centerness分数,给中间图的点降低centerness分数,这样在infernece的时候右边图的点分数较高。 根据消融实验,Polar Centerness可以有效提高1.4的性能,同时不增加网络复杂度。结果如下图所展示 8d978f087b36bb3ab52857272a108ba4.png

Polar IoU Loss

在PolarMask中,需要回归k(k=36)根射线的距离,这相比目标检测更为复杂,如何监督regression branch是一个问题。我们提出Polar IoU Loss近似计算出predict mask和gt mask的iou,通过Iou Loss 更好的优化mask的回归。通过实验证明,Polar IoU Loss相比Smooth L1loss可以明显提高2.6个点,同时Smooth L1loss还面临和其他loss不均衡的问题,需要精心调整权重,这是十分低效的,Polar IoU loss不需要调整权重就可以使mask分支快速且稳定收敛。 那么,Polar IoU Loss如何计算呢?如下图所展示 da100b6b9349417df38e268c06f842f0.png 可以看到 两个mask的Iou可以简化为在dθ下的三角形面积iou问题并对无数个三角形求和,最终可以推倒到如下形式:  65e9cb8632425b5af1027db7cd5da8cf.png 其实最终的表达形式十分简单,但是相比smooth l1的确可以不用调参并裸涨2.6个点。说明loss func的设计对于深度神经网络呢意义重大。结果如下所展示 bce8c4f612a070f38d442390aa550dd2.png 我们在论文中还做了如下消融实验:射线数量的选择,加不加bbox branch, backbone以及尺寸和速度的trade off. 细节在论文中都有,不一一展开。

上限分析

看到这里,很多人心里都会有一个疑问,射线这种建模方式,对于凹的物体会有性能损失,上限达不到100mAP,PolarMask怎么处理这个问题? 答案是这样,PolarMask相比Mask R-CNN这种pixel建模的方法,对于形状特别奇怪的mask的确建模会失败,但是这并不代表polarmask毫无意义。原因有两个,(1)Mask R-CNN的上限也到不了100 mAP 因为有下采样这类操作使得信息损失。(2)不管Mask R-CNN还是PolarMask,他们的实际性能距离100mAP的上限都特别远。 所以我们目前应该关注如何让实际网络性能去更好地趋近于上限。 定量分析分析射线建模的上限: 6ed5a7115ed04f200fee730432d5c09e.png 如图所示,当采用mass center做instance中心时,当射线数量不断提高,射线的gt和真实的gt的平均iou高达90%以上,这证明了对于射线建模的性能上限的忧虑还远远不需要担心。现阶段需要操心的问题是如何不断提高基于射线建模的网络性能。

实验

最终,配上一图一表展示一下相比sota的结果  25e05ed870197e5b0ef3eea9af5e530f.png 6113f1b8160a2e376549b4cba37057d1.png 可以看到, 没用采用任何trick的情况下,PolarMask在resnext101-fpn的情况下,取得了32.9的配置,虽然不是stoa,但是也比较有竞争力。我们目前并没有采用很多常用的能涨点的trick,比如 ms train和longer training epochs。相比之下,别的one stage方法都不约而同的采用了mstrain和longer training epoches。我们会进一步改进,争取再提高性能。

后记

我们会尽快完善并放出带多尺度训练和增长训练时间的代码和模型,以提供给大家并和上述模型公平比较,做instance segmentation非常费卡和时间,希望大家理解。 一些调参的碎碎念: 这个工作在今年4月FCOS出来的同时,我和沈春华老师就在讨论如何进行FCOS进行single shot anchor free实例分割,以及在CVPR开会的时候,和文海,彦伟, 宋林等小伙伴就论证过contour regression的可行性,因为大家可以看出,anchor free 物体检测已经是大势所趋,下一个领域必然是anchor free实例分割,预测一下,再下一个领域是全景分割。在和沈老师这么多月的讨论中以及一次又一次实验的失败中,polarmask逐渐成型。最开始mask regression无数次无法收敛,写mask iou loss又复杂效果还不怎么好,直到某一天想出了polar iou loss。发现性能很好,不用调参,一把出结果。感觉平时做研究还是需要多思考,而不是盲目的做实验。同时,polar centerness也是我在旅游的过程中想到的,然后立马找了个咖啡厅写代码调试,裸涨1.4个点。这两个方法在不增加计算量的情况下,充分发挥了polarmask的性能,看起来其实很简单,但是实际上是背后很多次思考和化简的结果。 总得来说,我最喜欢这篇文章就两点, 1、足够简单,不加任何trick, 也没有任何复杂的操作,比如deformable conv和roi align操作,有希望在工业界大规模应用; 2、找到了一种表达方式,把bbox detection和mask segmentation统一了起来,和FCOS是一种传承的工作,FCOS理论上可以看成PolarMask的特殊版,而PolarMask是FCOS的泛化版,因为bbox本质上是最简单的Mask。PolarMask本质上可以看成一个目标检测和实例分割统一的框架。只需要简单修改就可以退化到FCOS。 本文首发于知乎: https://zhuanlan.zhihu.com/p/84890413 作者 | 谢恩泽 转载来源: AI科技评论 c43a013d4359af60545bb54110e8ec99.gif e56e02191a04a14b21fd62cb1ac96528.png

历史文章推荐

  • CNN真的需要下采样(上采样)吗?

  • 面对新型肺炎疫情,AI 能做什么?

  • 人体姿态估计的过去,现在,未来

  • 2018-2019年度 Top10 综述

  • 【Awesome】Few-Shot Learning论文阅读列表

  • 你有哪些deep learning(rnn、cnn)调参的经验?

  • 给研究新生的建议,光看论文是学不好的,一定要看书,看书,看书!

  • So Young Sohn:信用评级与专利保护中的AI技术概览

  • Shai Ben-David:无监督学习中的鲜花与荆棘

  • 不是我们喜新厌旧,而是RAdam确实是好用,新的State of the Art优化器RAdam

  • 机器学习中的评价指标

  • CVPR2019 |《胶囊网络(Capsule Networks)综述》,附93页PPT下载

  • AiLearning:一个 GitHub万星的中文机器学习资源

  • 深度学习中的数据增强方法总结

你正在看吗??

除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog

上一篇: linux selenium_这些天踩过的selenium的坑

下一篇: getdata提取曲线数据_MATLAB如何提取曲线原始数据

精华推荐