最近目标检测新范式汇总SparseRCNN,OneNet,DeFCN等

点击上方“计算机视觉工坊”,选择“星标”

干货第一时间送达

作者丨林大佬@知乎

来源丨https://zhuanlan.zhihu.com/p/333957627

编辑丨极市平台

最近有许多新的目标检测范式出现,我想着这些论文或多或少有着很强的相同之处,比如他们都是后现代的目标检测方法,不仅仅要超越Anchor-Based的古老目标检测,还要革了Anchor-Free的命,从此目标检测朝着简单易懂真正E2E的方向迈进,于是乎有必要来做一个整理,把这些算法放到一篇文章里面来介绍,也当是个人阅读这些论文和代码的一个小总结吧,抛砖引玉,期待更多的后来之士有更加独到的见解。

近几年来,目标检测是发展的很快,去年很火的Anchor-Free的方法提出了一系列不依赖于Anchor的目标检测范式,比如CenterNet,它结构简单,输入输出通熟易懂,同时也保持着较高的准确率,再比如FCOS,也是不可多得的创新性目标检测思路,纵然这些算法都摒弃了古老的Anchor思维,狠狠的把前辈们按在沙滩上摩擦了一阵子,但长江后浪推前浪,一浪更比一浪强,今年新出的这波新范式里面,大家不仅仅要把Anchor给你去掉,连烦人的NMS也得给你革掉!其中最具代表性的就是这篇SparseRCNN了,人家不仅仅去掉了Anchor,还把2Stage里面的Proposal,以及many2one的assigment也去掉了,更厉害的是,由于缩小了这些建议框的集合,加上2stage的精修,它可以做到后处理不需要NMS直接得到目标框!数据胜于一切,SparseRCNN可以做到Resnet50 backbone 最高达45的mAP,这不可谓不强啊!而且速度还可以保持在一个较快的速度!

顺着这个思路下去,明年,是不是会有基于E2E,没有NMS的更多的目标检测、实力分割的算法出现呢?到时候又快又好的instance segmentation模型就不再是梦想了!

让我们拭目以待吧!现在要做的就是耐心的阅读完本篇论文,我会在末尾做一个展望和总结,干货总是在最后,当然,此时你可以把手指移到左下方,点个赞,完了再吐槽一句,做一个文明的吃瓜群众。

SparseRCNN

SparseRCNN这篇论文的motivation其实很简单,就是革掉2stage里面的Proposal和NMS,我估计作者一开始可能并没有想到效果这么好,但是去掉了海量的Proposal之后发现生成的框效果竟然可以直接用,结果就有了这么一个一石二鸟的高品质作品。不管怎么样吧,做到这个效果的难度还是很大的。

让我们来看看SparseRCNN到底做了什么事情。众所周知,在2 stage算法里,最核心的部分,其实就是RPN的设计,RegionProposalNetwork部分,决定了你的整个模型的performance,这里你需要生成尽可能囊括所有目标的候选框,才能让结果尽可能的好,而这就涉及到Anchor的设计,Proposal的产出等等,这其实和one stage的Proposal generator类似,只不过是不同的算法系列具体的算法不同而已,而SRCNN做的,其实就是重新评估了这个过程,他们发现,即使他们把RPN从几千个boxes缩减到N,N可能为100这么小的数,加之动态的学习,也可以把这些个box变成质量很高、几乎囊括所有目标的Proposal。

那么现在的问题就是: 如何去生成这些小的Proposal set?

作者提出直接通过一个 4d的矩阵去预测这些proposals,每个维度就是归一化之后的中心点和w,h的数值,说到这里,恕我直言,这其实就是借鉴了Anchor-Free里面的思想了,最直接的就是FCOS的思想了。

这部分作者称之为Learnable proposal. 其实我感觉就是一个anchor-free的粗框预测,但是呢,这个粗框的精度可能就比RPN的要高很多了。因为本来人家就可以用来生成一个很高质量的框的嘛。至于这部分的loss是怎么计算的,得具体看看代码才知道。

接下来就是第二阶段,拿到了这个Proposal set之后,如何进一步生成最终的框呢?

接着作者引入了另外一个东西,proposal features, 这是个什么东西呢?如果你只是把这些box输出到第二阶段做位置精修,那么必然会丢失很多信息,因为你的输入的只有位置呀,没有语义。那么这个时候引入这个features就理所应当了。不仅仅如此,这个proposal features 的数目,和proposals是一样。记住他们存在一一对应的关系.

然后做什么呢?接着就是把这个位置坐标,和features输入到后面做预测了。但是接下来,就是整篇文章最核心的内容,也就是作者提出的这个Dynamic Head, 这年头,一旦引入这个Dynamic这个词,我脑海里面就想到两点:

  • 牛逼

  • 部署很坑

我感觉这个也不例外,我们继续深入看看,深入之后发现,SRCNN会引入ROIAlign,来讲features和box做对应,然后每个feature负责预测这个精修的坐标信息,

我就在想,你这每个proposal都引入ROIAlign来做对齐,然后输入conv来做cls和reg,这不会很浪费时间么?这个我没有在论文里面找到答案,但是仔细看了下代码的实现,这部分实现其实不是很耗时:

# inst_interact.
        pro_features = pro_features.view(nr_boxes, N, self.d_model).permute(1, 0, 2).reshape(1, N * nr_boxes, self.d_model)
        pro_features2 = self.inst_interact(pro_features, roi_features)

这个inst_interact 其实就是一个DynamicConv,似乎把所有的proposal features和抠出来的roi_features都丢到一个矩阵里面去算了。

这个算法的大致脉络就这些了,我总结下来,它的创新点其实显而易见,除了论文中提到这些,我觉得这两点也是值得墙裂借鉴的:

  • 作者对标的其实是DETR,这篇用transformer做目标检测的论文,而且对标的恰恰就是object query这个部分,只不过论文里面用的是proposal feature + roiAlign来做的;

  • 以前都是革1 stage的命,作者这次革了2 stage的命,虽然直观感觉效果收益和复杂度不成正比。

所以总的来说,这篇paper还是很有借鉴意义的,通过2 stage的方式结束了nms时代,让就如同我所说,这带来的代价当然是多出来的一个阶段,同时也不可避免的引入了很多我们不喜欢的操作,比如ROIAlign。

我猜测这个思路继续深挖下去,将会是把DETR的object query思想再次引入2 stage?亦或是把这个砍掉NMS的旗号发扬光大,直接基于one stage来开刀?让我们拭目以待。

最后从工业界角度来评价一下:

  • 不适合部署,不适合部署,不适合部署;

  • 收益和复杂度不成正比,作为工业和商业用途来说,过于复杂;

  • 但是不要NMS确实很香,不过话说回来,现在NMS带来的lantency,在工业武装到牙齿的业界,真的是一个bottleneck吗?

OneNet

好像这篇文章也是PeizeSun大佬所作?HKU人才辈出啊!~观测下来这篇文章的motivation其实是在强调classfication的loss对于one stage目标检测的重要性~,对于一个classfication loss设计的不够好的one stage detector,最终可能会在后处理的时候出现很坏的结果。而文章提出了一个同时考虑box iou和classification 的loss。

我又仔细看了一下,作者的motivation其实还是想做一个e2e的 one stage detector,简单来说,就是我上面说的SRCNN接下来要做的事情,而且作者确实也是按照这个思路做了。他认为他提出的这个classification cost几乎是创造一个真正的e2e的one stage detector比较核心的东西。如果没有它,就会导致最后产出很多多余的框,因而必须要使用nms才能去掉。

这张图非常有意思,直观的告诉你,创造一个真正的没有nms的e2e的one stage detector,加上classification cost是多么的重要,不然的话,你设置一个很低的threshold,就是一堆框,设置一个较高的,直接就没有框。

说到这里,我就有一个疑问了,到底什么是你说的这个classification cost?

论文里面提到的这个minimum cost方法,就是上面提到的classification cost?我认为是作者说的,每个正样本只分配一个对应的loss,其他的统统用负值来表示,这可能称之为loss的分类对待。

DeFCN

还有一篇论文,我没有具体的论文,貌似作者还没有release,但是在Megvii的仓库里有release,叫做DeFCN,感兴趣的朋友去搜来看看。这篇文章其实也是在探究到底是什么东西导致了NMS?为什么会有这么一个东西产生?实际上是因为一对多的这么一个因素,导致的,作者也提出了一个基于FCOS的改进版本,可以去掉NMS,真正的做到E2E.

这篇文章看起来更厉害,但是木有太大的指标超越,但是解决了一个有史以来一直困扰大家的点,其实本篇文章所涉及到的论文,都是在试图去解决这个问题。

今年的目标检测,总结来说就是 Towards Real E2E Object Detector. 相信 明年会有更多的基于Yolo,EfficientDet等算法的去掉NMS的尝试,到那时或许才能真正的汇集我们这些工业界的白嫖党啦!

end

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「计算机视觉工坊」公众号后台回复:深度学习,即可下载深度学习算法、3D深度学习、深度学习框架、目标检测、GAN等相关内容近30本pdf书籍。

下载2

在「计算机视觉工坊」公众号后台回复:计算机视觉,即可下载计算机视觉相关17本pdf书籍,包含计算机视觉算法、Python视觉实战、Opencv3.0学习等。

下载3

在「计算机视觉工坊」公众号后台回复:SLAM,即可下载独家SLAM相关视频课程,包含视觉SLAM、激光SLAM精品课程。

重磅!计算机视觉工坊-学习交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有ORB-SLAM系列源码学习、3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、深度估计、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

 圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值