Face Paper:Cascade R-CNN: Delving into High Quality Object Detection解读

论文链接:https://arxiv.org/abs/1712.00726 
代码链接:https://github.com/zhaoweicai/cascade-rcnn 

目标检测真的没东西可做了吗?已经开始关注IOU的最优选择了,不过小的trick,确实提升效果也很显著;

今天给大家介绍一篇个人觉得对detection非常有insight的一篇文章:"Cascade R-CNN: Delving into High Quality Object Detection"。

在这篇文章中,作者对detection问题中的两个核心,分类和定位做出了细致的分析和观察,并从这样的观察中得到启发,提出了一个非常简单易行,但是效果十分显著的办法。

这篇文章的基础是two-stage detector,如RCNN,RFCN等,在这些two stage detector中,都会有一个header的结构来对每一个proposal同时做两件事情:classification和bounding box regression(bbox reg)。在classification中,每个proposal会被根据一个指定的IoU值分为正样本和负样本;在bbox reg中,每个被标记为正样本的bbox会向其assign的ground-truth方向回归。

这里作者第一个关键的发现是在classification中,指定不同的IoU划分正负样本,会导致bbox reg的行为完全不一样。如下图左,横轴是输入的proposal的IoU,纵轴是经过bbox reg之后的bbox和ground-truth的IoU。可以看到,低IoU threshold对于低IoU的样本有更好的改善,但是对于高IoU的样本就不如高threshold的有用。原因在于不同threshold下样本的分布会不一致,也就导致同一个threshold很难对所有样本都有效。

所以为了解决以上两个问题,作者提出了一个Cascade RCNN head的办法(上图d)。即有多个IoU threshold递增的header每一级使用上一级refine过后的bbox作为输入。这样可以保证每一级的header都可以得到足够多的正样本,且正样本的质量可以逐级提升。在训练和测试时,这个操作也都保持一致。在测试中,作者使用多个header输出的均值作为这个proposal最终的分数,可以证明对结果会有进一步的提升。

不同于之前的工作,像Iterative bbox refinement,每次refine使用的是同样threshold训练出来的header,这会导致IoU到一定值之后很难更进一步改善;像Integral loss,只有一个bbox reg,但是有针对不同threshold的classifier,这本质上也并不能改善最终定位的精度。

在实验中,作者在COCO dataset上做了细致的分析,在多个不同backbone的网络上都可以持续性地提升3~4个点的AP。这对于COCO来说,已经是非常显著的改进了。同时,这个结果对比其他state-of-the-art方法仍然也很有优势。

 

个人总结:Detection其实并不是一个很合适的分类问题,没有一个明确的离散的正负样本的定义,而是通过IoU来连续定义的。但是IoU这个指标很难通过gradient descent来优化,虽然之前也有一些IoU loss的工作,但是效果并不理想。Cascade RCNN便是一个在这个方向上很好的尝试。

转载:https://zhuanlan.zhihu.com/p/35882192

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值