type
status
date
slug
summary
tags
category
icon
password
comment_flag
SLUGS

Motivation

作者发现显著区域含有更多利于分类的信息,而靠近边界的特征包含利于bbox回归的信息,现有工作使用参数共享的两个sibling head来分别处理分类任务和定位任务,会导致spatial misalignment。因为classification head需要关注显著区域,而localization head需要关注边界区域,如果参数共享,就会损害网络性能。
这是作者探索不同head的spatial sensitive可视化结果
这是作者探索不同head的spatial sensitive可视化结果
尽管现有工作注意到该问题并作出了探索,但仍未解决:
  1. IoU-Net首先发现该问题:能获得很好分类分数的features通常得到的边界框很粗糙。因此他们引入额外的head去预测框的IoU作为localization confidence scores,然后将其与classification scores融合得到最终的分数。作者认为这是一种compromise的处理方式:只是在增大较好框的置信度,减小不佳的框的分数。
  1. Double-Head RCNN提出将sibling head解耦成两个独立分支,分别专用于分类和定位。作者指出,两个分支的输入都是通过同一proposal的ROI pooling结果,仍然存在spatial misalignment。

Core idea

作者针对该问题,提出了task-aware spatial disentanglement (TSD)方法:基于原始proposal去生成分别用于classification和localization的两套proposal,以便于两个任务互不干扰的捕获最优spatial location的特征。

Main method

notion image
给定真实框和提议框,Faster RCNN基于共享的来优化分类和定位损失:
其中,。表示特征提取操作,和表示通过提取的特征用于分类和定位的操作。Double-Head RCNN把解耦为和,带来了一定提升。作者还基于此进一步解耦了proposal,因此重写公式(1):
其中,,和分别是对的pointwise deformation和proposal-wise translation。并且,,。通过得到特征。
 
的生成:用三层的fc网络(通道分别是256,256,2)来生成proposal-wise translation:
其中,是预定义放缩因子,分别是的宽和高。而生成的function 为:
只关注localization task。
 
的生成:将的ROI feature划分成的grid,同样经过三层fc网络来得到每个网格的形变(不规则偏移量,如果看过DCN很好理解)。
其中。为了从不规则的得到,使用DCN中的deformable ROI Pooling:
其中是第x,y个grid,则代表该grid中的样本点数量。代表中的样本坐标。在生成过程中,都是用了双线性插值,以便可微。其中就是双线性插值函数。
 
另外,作者还设计了progressive constraint (PC)来提高分类和定位性能:
最终的损失为:

Experiments

说明TSD的有效性的消融实验:
notion image
说明为什么要搞PC的消融实验:
notion image
notion image
notion image
个人认为:首先sibling head与TSD不冲突,可能相互补充。此外PC的加入可以防止形变的proposal过度偏离原始proposal。
SOTA比较:
notion image

Personal reflection

最近读的一些文章都会从可视化结果上找问题,这是值得学习的。
但这篇文章实际速度怎么样不知道,感觉又生成两套proposal,怕是不小的运算吧。
 
Pytorch指定GPU的操作小结[论文简读][CVPR20]Offset Bin Classification Network for Accurate Object Detection
Loading...