前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何评价MSRA视觉组最新提出的Deformable ConvNets V2?

如何评价MSRA视觉组最新提出的Deformable ConvNets V2?

作者头像
CV君
发布2019-12-27 16:33:07
1.1K0
发布2019-12-27 16:33:07
举报

今天知乎CV圈的一件大事即针对MSRA视觉组在arXiv放出了Deformable ConvNets V2的讨论。

该问题“如何评价MSRA视觉组最新提出的Deformable ConvNets V2?”短短几个小时已经有近万人浏览,一个技术问题俨然成为知乎热门话题。

等各位读者看到本文肯定是超过10000人浏览了

Deformable ConvNets V2论文下载请在“我爱计算机视觉”对话界面回复“DCNNV2”,即可收到论文。

52CV列出几位大佬的分析,以期各位读者能有更多收获。

一周前就听说Jifeng组做出了Deformable ConvNet V2(DCNV2),今天Jifeng告诉我paper已经挂ArXiv上之后果断放下所有事把这篇paper好好读了读。感觉这个工作特别solid,果然没有让人失望。下面简单谈谈个人对这篇paper的理解,可能有不对的地方请大家多多指点!

DCNV2首先用了更好的visualization来更深入的理解DCNV1为什么work以及还存在什么缺陷,发现存在的问题就是因为offset不可控导致引入了过多的context,而这些context可能是有害的([1]和[2]中也说明了这些context可能是有害的)。

解决方法也很简单粗暴:

  1. 增加更多的Deformable Convolution
  2. 让Deformable Conv不仅能学习offset,还能学习每个采样点的权重(modulation)
  3. 模拟R-CNN的feature(knowledge distillation)

(1) 就不用说了,在DCNV1中只有ResNet的Conv5 stage中有Deformable Conv,在DCNV2中把Conv3-Conv5的3x3 convolution都换成了Deformable Conv。

(2) 在DCNV1里,Deformable Conv只学习offset:

而在DCNV2中,加入了对每个采样点的权重:

其中,

是学到的offset,

是学到的权重。这样的好处是增加了更大的自由度,对于某些不想要的采样点权重可以学成0。

(3) [1]中作者(好吧,其实作者是我)发现把R-CNN和Faster RCNN的classification score结合起来可以提升performance,说明R-CNN学到的focus在物体上的feature可以解决redundant context的问题。但是增加额外的R-CNN会使inference速度变慢很多。DCNV2里的解决方法是把R-CNN当做teacher network,让DCNV2的ROIPooling之后的feature去模拟R-CNN的feature。(图里画的很清楚了)

其中feature mimic的loss定义是:

在end-to-end train的时候这个loss给了一个0.1的weight。

实验结果大家看paper就好了,在ResNet-50 backbone COCO上跟DCNV1比涨了5个点!这比目前大部分detection paper靠东拼西凑涨的那一两个点要强多了。我惊讶的是和DCNV1对比,在image classification上也有很大的提升。

说说自己的想法吧,DCNV2方法简单,结果好,分析充分,我觉得和近期各种detection paper比算是业界良心了。我觉得还有可以学习的一点就是context的问题。很多detection的paper都在引入context(大家都claim说小物体需要引入context来解决),其实我个人觉得有点在扯淡,物体小最直接的方法难道不是放大物体来解决吗?比如SNIP/SNIPER都是在“放大”物体。所以在context这个问题上我(详情见[1]和[2])跟Jifeng他们的看法是一样的,我们也许不需要那么多没用的context。作者都是熟人,我也不多吹了,反正我是准备去follow这个工作了哈哈。

最后说说DCN有一个小缺点,其实就是速度的问题。因为没有cudnn的加速,DCN完全是靠im2col实现的(从目前的MXNet版本来看是这样的),当batchsize大的时候我感觉速度会比有cudnn加速的3x3 conv慢。很好奇当batchsize大的时候(比如ImageNet)的training时间会慢多少。希望以后能和dilated convolution一样被加到cudnn里支持吧。


发现好多人好像没有看过[1][2],放张network的图(宣传一下自己的工作),DCN V2的mimic R-CNN和DCR V1的结构类似,但是通过knowledge distillation很巧妙的在inference阶段把R-CNN给去掉了。

[1] Revisiting RCNN: On Awakening the Classification Power of Faster RCNN

[2] Decoupled Classification Refinement: Hard False Positive Suppression for Object Detection

我打算先来说一说 paper 上面的事实,再来说说自己的理解,最后再随便说点。

disclaimer 一下,因为感恩节去玩了,积累了无数 deadline 要赶,所以没有看得那么仔细,但我仍然想说一下我自己的感想,所以才有了这篇回答。

---

Paper 上面的事实和理解:

  1. 无论是从 paper 标题,还是从得到的数字,都能发现 paper 主要的 gain 来自多加了 9 层的 deformable conv。这一共 12 层 convolution 在 short side 1000 上涨了 5.7 (Faster) / 5.6 (Mask) 个点,800 上涨了 3.9 (Faster) / 3.7 (Mask) 个点。 无论怎么说这都是一个很强的结果。并且,注意 table 2 Mask R-CNN 是 37.8,比 detectron 少了快一个点,[从 paper 来看可能是 training 轮数不够],将来看 release 的 code 吧。
  2. 800 -> 1000 不加 deformable 都掉点了 [小物体涨了],但是 deformable 相关的在涨。 这点值得提一下,之前的假设是说把图片调大会等价于减少网络的 receptive field,所以大物体会变得很差。那么这样 DCN 在调大图片仍然上涨 performance 就合理了因为毕竟能动态调整感受野。
  3. deformable pooling 比 roi align 仅好一点,但已经不影响主要结论。 这其实是和我一直以来的想法相悖,并且从 DCNv1 来看其实主要有用的还是在于 deformable pooling。
  4. modulated 大概涨了 0.7。feature mimicking 涨了 1 个点左右,其实我觉得这两项算是 bells & whistles 了。 不过我臆测这是一种 compromise,如果只有 more deformable 的话肯定 novelty 不够。唉。
  5. 正文最后的结果 (table 4) 是相比 mask rcnn 涨了 5 个点。相比 DCN v1 涨了 3 个点。
  6. Imagenet CLS 都能涨点。
  7. 在 imagenet 上 pretrain DCNv2 的 offset,竟然还是能涨 [不少] 点的。

---

随便说点:

这个环节我真是最喜欢了,但我好久不做 detection,所以大家权且一看:

  1. FPN 当时到底涨了多少点? 我看到 table 2, Faster RCNN (C5-dilated, 2FC) ResNet-50 35.6 的时候是比较惊讶的。因为之前跑这个结构结果都是比较低的。我查了一下 detectron 里 FPN + RoI Align 的数字大概是 36.8,Faster RCNN (C4, C5 Head) 大概是 35.6。然后我又去查了一下 learning region feature 那篇文章,发现达到 35.6 的关键是一些超参数发生了变化。所以这个实验告诉我们,given table 2 的复现结果比不上 detectron,(C5-dilated, 2FC) 并没有比 FPN 和 C4 + C5 Head 差。 你可以说他慢,但你不能说他又慢又差 hhhhh。
  2. 以前做 DCN v1 的时候,baseline 不高,导致最后的结果也没有非常 state of the art,不过这篇 paper 这一点不错,最后的 baseline 能跟最近最高的 baseline comparable。我没有时间查具体数字了,但想就这一点展开说说:object detection 已经日渐成熟或者说饱和也不为过,在这种情况下 [并不,其实任何时期都是],看 paper 的时候脑海中一定要注意各个 paper 报的数字和对应的 implementation details。有这么一个 graph,才能正确的知道这个 paper 到底是多少 gain 来自 claim 的方法,有多少 gain 来自于工程实现。
  3. 没有 3 了没有了 = = 临近期末要赶紧复习了。

---

说个梗,刚刚跟

@Yuwen Xiong

聊起可惜 deformable 没有比较级,一定叫个 more。我觉得这篇 paper 可以叫 DCN998: 9 offsets and 9 more layers bring 8 improvements. [Faster on coco det, Mask on COCO det, Mask on COCO inst seg, VOC det, VOC seg, VID, ImageNet CLS, pretrain offset]。

DCN 998,AP 5 点带回家,dconv 好处都有啥,谁加对了就给他。

首先祭出结论,这是一篇干货满满,novelty和performance双赢的paper (COCO直接涨了~5个点啊)。

自己一直在做object detection相关的工作,再加上之前在MSRA跟Jifeng及CV组的小伙伴共事过一段时间,努力给出客观的评价吧。

从Deform ConvNet V1说起

目标检测中有一个比较棘手的问题,即所谓的几何形变问题(Geometric variations)。就拿人检测来讲,人的姿态有多种多样(想想跳舞的场景),这就需要我们设计的模型具备deformation的能力。通常情况下为了解决这类问题有两种思路:(a) 收集更多样的数据用于模型的训练;(b) 设计transformation invariant 的特征来提升模型多样化能力。

Deform ConvNet是在卷积神经网络的框架下,对transformation-invariant feature的比较成功的尝试。思想非常直观,在标准的卷积核上加入了可学习的offset,使得原来方方正正的卷积核具备了形变的能力

deformable convolution用过的童鞋其实都知道,在大型的object detection/instance segmentation任务上的表现还蛮抢眼的。

Deform ConvNet V2在干啥

我认为,Deform ConvNet是在解决如何让学到的offset能更聚焦到感兴趣的物体上边,也就是提取到更聚焦的feature来帮助物体的识别定位。在下边的图片中,我们当然希望模型的feature能够聚焦到物体上边,这样才能提取到更有意义的supporting feature。

为了做到这一点,作者主要用了几种策略:

(a) 增加更多的offset层,这个不必细说;

(b) 在deform convolution中引入调节项(modulation),这样既学到了offset,又有了每个位置的重要性信息;

就是经过sigmoid归一化后的调节项

(c) Feature Mimicking,作者强调,简单在对应的feature上用roi-pooling来提取对应位置的feature并不一定能提取到最有用的信息(可能包含无用的context)。如何才能让feature更加聚焦到物体上呢?解决就是Mimicking技术,让roi-pooling之后的feature更像直接用R-CNN学到的feature。

其他

除了漂亮的结果,我觉得paper的可视化分析部分也挺值得好好看看的。

另外很难理解为什么Feature Mimicking在regular Faster R-CNN上不work。

从最近的一些paper结果看,至少目前在deep的框架下,针对task,让模型提取更加有意义的feature是个比较热/好的方向吧。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 我爱计算机视觉 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档