如何评价Sparse R-CNN,目标检测未来会如何发展?

链接:https://www.zhihu.com/question/431890092

编辑:深度学习与计算机视觉

声明:仅做学术分享,侵删

作者:信息门下添狗
https://www.zhihu.com/question/431890092/answer/1593944329

detr最近的进展我都不是很熟,跟做ocr的小伙伴聊了下,他说paper的几个点在这条线上上看会比较顺,我完全不懂,期待有大佬给一些新的视角解读吧。

昨晚看完直接失眠了,躺在床上捋清楚了几个细节,比如学出来的anchor为啥不会很相似,为什么这样能去掉nms之类,越想越觉得太秒了

由于dense的anchor设计加上cnn feature map的平滑性质,导致我们在正负样本划分不得不使用一对多的形式以及使用nms这样的后处理,这两个东西很蛋疼,从而从去年开始导致了一系列做正负样本划分以及设计loss适应nms的工作。

我之前跟mentor讨论,他坚信cnn上也能像detr一样去掉nms,但是我就劝他说不用position encoding 这样的东西,cnn这个平滑性好像必须有这么个设计,之后的尝试也完全走偏了,这个认知在dense anchor的基础上也是对的,但是之后就往怎么增加feature map高频上做了,完全没意识到dense anchor有什么问题,当然也承认,认识到我也一点不敢想能做成sparse的形式。

其实能想到现在检测几个令人头疼的问题是出在dense的anchor已经很不容易了,之后detr可能启发了sparse 能做work,最近几年dynamics 的生成运算参数的工作(condinst之类)为sparse的work奠定了基础,感觉真的是一个刚刚好的时候。

真的太强了,相比一些想出来感觉不快点做就会被别人做的东西,这个就是那种根本想不到的东西。

作者:yanwan
https://www.zhihu.com/question/431890092/answer/1594767413

将 two stage anchor detector 升级为了 two stage set prediction detector.

1、Learnable proposal box 可以看作 RPN,然后用ROIAlign提取ROI feature。

2、Learnable proposal feature 可以看作是Detr中的object query,相当于anchor。

3、ROI feature 和 Learnable proposal feature 用 optimal bipartite matching做匹配,而不是沿用IOU做匹配。

4、Detr中使用了 transformer让每个object query都和全局的特征图交互,而Sparse R-CNN 通过Learnable proposal box生成了sparse candidates和sparse feature,这样就避免了和全局特征的交互。

5、从工业部署角度看,对于端侧,sparse detector并不是很友好,dense detecor更直接而且网络也能够轻量。

最后,Set Prediction detector也开始分为两类了:

  • One-stage:Detr

  • Two-stage:Sparse R-CNN

看起来set prediction挺香的,只不过,set prediction的检测器,同等测试条件下还是anchor/anchor-free的检测器在精度上差一点,和Sparse R-CNN作者也讨论了下,set prediction还有优化的空间。

set prediction的检测器很简洁,部署也很方便,如果把精度和速度肝上去了,就可以造福工业界了。

作者:深度眸
https://www.zhihu.com/question/431890092/answer/1594349380

特意把论文和代码都看了,结合对relation和relation++、detr的了解,说下粗略的感受吧。

Sparse R-CNN确实做的很好,等的就是这样的工作!极致简单,不需要复杂anchor先验设置、不需要nms、不需要RPN,将整个faster rcnn的pipeline变得非常简洁。

论文核心思想应该是借鉴了上述三篇论文做法,简单来说是核心组件是:

  1. 可学习proposal boxes

  2. 可学习proposal feature

上述两个组件中最重要的是可学习proposal feature,而可学习proposal boxes只是为了提出roi而已,不然RCNN咋弄?而可学习proposal feature和detr的object query作用非常类似,都是提供全局注意力或者说提供实例级别的统计信息,由于维度比较高,其可以嵌入的信息很多,例如物体姿态或者shape。强烈建议作者在预测时候进行可视化proposal feature,应该可以看出很多东西

对应到relation论文,那么proposal boxes就是常说的几何特征,而proposal feature就是外观特征。我觉得没啥本质区别,因为都是自发学的,学到最后其实可视化看看都一样应该。

至于roi特征和proposal feature的交互过程非常重要,虽然论文说具体细节不重要,这个交叉注意力计算过程和transformer里面的做法类似,作者成为动态head,确实有动态的意味。

最后的loss,也是参考了detr里面的先双边匹配,然后再计算loss的做法,使得最后输出的预测结果不需要nms。

其他的迭代refine思想应该是为了提点而已,和cascade rcnn做法类似。

以上就是全部核心知识点了。可以发现极其简单,只要你熟悉了上述所提的3篇论文就能够理解了。

至于未来嘛,transformer思想还是很值得期待的,虽然本文好像没有引入(但是我觉得思想还是引入了)。如果哪天将CNN彻底抛弃,仅仅依靠transformer或者类似注意力思想统治了CV领域,那也不用奇怪!

代码还没有跑过,暂时不知道里面有没有啥坑!

作者:小磊
https://www.zhihu.com/question/431890092/answer/1594696884

由于 Sparse RCNN 有受到 DETR 启发, 所以先分析 DETR.

我觉得 DETR 的成功有两个关键点:

  1. Set prediction loss

  2. Self-attention 带来的 proposal 之间的强关联性, 使得整个输出结果更加整体

同时, DETR 有个大的缺点, 就是对 local feature 利用不足. 这会导致一个问题: bbox 边界回归不准. 表现为小物体的 mAP 非常低(如下表)。

DETR 的 APs 比 Sparse RCNN 低了6个点!

但 mAP_small 低有可能有两个原因:

  1. 边界回归不准

  2. 漏掉了小物体

为了找到 mAP_small 低的具体原因, 我们对比了一下 DETR 和 MaskRCNN 的 bbox mAP_small 曲线:

纵坐标:mAP_small. 横坐标: IoU阈值[0.5:1:0.05]. 蓝色 DETR, 橙色 MaskRCNN

发现 DETR(蓝色) 在 IoU 阈值为 0.5 时候, mAP_small 比 MaskRCNN还高, 所以 DETR 感知到小物体的能力还挺强的, "边界回归不准"才是 mAP_small 低的主要原因.

再回到主角 Sparse RCNN, Sparse RCNN 完全继承了 DETR 的两个关键优点:

  1. Set prediction loss

  2. Proposal 之间的强关联性(iteration+dynamic 机制类比于 self-attention)

同时, 由于 Sparse RCNN 是全卷积的, 具有 CNN local feature 强的优点. 所以在边界回归的准确度上会优于 DETR.

综上, Sparse RCNN 集成了 DETR 的两个优点, 并摒弃了 transformer 带来的缺点, 并在结果上超过了 DETR. 但老实说, Sparse RCNN 只高了0.3 的 mmAP, 而 mAP50 和 AP_large  上都低了不少, 说明 Sparse RCNN 还有挺多进步空间的.

补充:
其实可以换一种方式来解决 DETR 对 local feature 利用不足的缺点, 就是直接学 RCNN, 做 two-stage 的回归。

具体的, 在第二个 stage 找出 small object 的 bbox, padding 一点点, 在高清一点的 CNN feature 上 crop 一个 RoI 出来。给 RoI 加上 spatial positional encoding 和 object 的 query 一起丢给 transformer 的 decoder, 输出一个 refine 后的 bbox。

作者:匿名用户
https://www.zhihu.com/question/431890092/answer/1594953510

之前的方法是 大量初始proposal +1-2  refine stage。用过饱和的proposal保证预测质量,最后用NMS滤除。

这篇是少量的初始proposal+多轮 refine stage。proposal box 和 proposal feature可以与输入图像无关 就证明了 不靠谱的初始proposal是可以考多轮 refine修正回来的。还是挺神奇的。

我很想看看每轮refine前后 box的变化,到底图片无关的proposal box是怎么和Object对应的,有什么规律。

作者:云中君
https://www.zhihu.com/question/431890092/answer/1594679377

个人感觉这篇文章有可能会被审稿人diss。

首先:这个 “sparse”的 novelty,highlight sparse 太多不太合适,因为sparse 不是这篇论文首创吧,更多是detr这种开山鼻祖可以强调这点?这个sparse更多体现在proposal的sparse,但是似乎文章描述的不多。

其次:后续的Dynamic instance interactive head 是论文的重点,但是堆了很多料,比较tricky,整个story似乎是没讲好。

然后:仔细看了一遍代码,发现的proposal bbox 最后是固化的一个统计值,靠后续的proposal feature 和 dynamic head 来救,这样可能会存在如果测试集和训练集gap比较大,掉点可能会比较严重,同时这种方式,拿掉了费电的rpn,但是引入一个相对比较低效的方法,光靠后面的两到工序可能救不动,所以会存在很明显的一些object没被召回的情况,如果proposal也是图像卷出来的,可能还能再提升,搞个2.0版本?

最后:当然效果好,收敛速度快,实验足,工业界还是香的。

作者:摘掉眼镜睡觉
https://www.zhihu.com/question/431890092/answer/1603178806

大佬们的手速也太快了叭,上两周做了rethinking DETR的实验,Rethinking Transformer-based Set Prediction for Object Detection 21号就出来了,紧接着这篇Sparse R-CNN也出来了。

周末仔细读了这篇Sparse R-CNN, 感觉Learnable proposal boxes和Learnable proposal feature并不是很难想,DETR的出现已经证明了learnable query embedding是work的,所以稀疏的learnable proposal feature也应该可以work,但是我觉得这个learnable proposal可以比较好的解释DETR中query object的物理含义。

之前没有接触过meta learning,所以这个dynamic head中把proposal feature当成params和roi feature进行卷积(就是矩阵乘法)在我看来还是挺有想法的。然后使用Iterative architecture,和Cascade的思想一样,从可视化结果来看,这里也很好的训练出NMS的作用。最后还是类似DETR,使用了Hungarian Algorithm loss,不过它这里对分类loss使用了focal loss,这是处理proposal中正负样本不平衡的一个好方法,在DETR里也可以用这个来改进。

我其实挺想弄懂Hungarian Algorithm到底有没有作用,能不能解决NMS的drawback

作者:匿名用户

https://www.zhihu.com/question/431890092/answer/1594425702

其实,对于目标检测,还能有什么新方法呢?不外乎就是如何更有效的提取特征以及如何组合特征,通过特征更高效更可靠的计算出概率,现在的网络结构,也都是包括 特征提取和组合特征上下文关系 这两部分,大的方向定了,剩下的其实就是如何玩提高效率和可靠性的trick了,不会有什么思想上的突破了。

☆ END ☆

如果看到这里,说明你喜欢这篇文章,请转发、点赞。微信搜索「uncle_pn」,欢迎添加小编微信「 mthler」,每日朋友圈更新一篇高质量博文。

扫描二维码添加小编↓

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值