【Matrix Nets】《Matrix Nets:A New Deep Architecture for Object Detection》

在这里插入图片描述

ICCV-2019 workshops



1 Background and Motivation

目标检测是计算机视觉领域被广泛研究的任务之一,目标检测可以应用到计算机视觉领域其它的任务中,例如:对象跟踪,实例分割,和图像描述(image captioning)

现有的目标检测方法可以划分为

  • Two-stage detectors:TridentNet
  • Single-shot detectors
    • Anchor-based detectors:RetinaNet、FASF 等
    • key-point based detectors:CornerNet、CenterNet 等

检测不同尺寸的目标是目标检测任务中的主要挑战之一,FPN很好了缓解了这一问题,不同大小的目标对应到不同层的金字塔特征图上来进行第二阶段的分类和回归,换个说法就是,把差不多大小的物体集中在同一特征金字塔层来检测!然而,FPN不能很好的解决不同 aspect ratios 的目标!(FPN的解读可以参考【FPN】《Feature Pyramid Networks for Object Detection》

那能不能根据长或者根据宽来把目标映射到特征金字塔的不同层呢?而不是像FPN那样通过面积!答案是否,因为比如较长的物体分配到了特征金字塔高层,高层细节信息较少,沾着长边的信息能有效提取到,沿着短边的信息会损失很多!!!反之,如果根据短边,把较长物体划分到特征金字塔底层,长边的信息就会损失!!!

因此作者,提出了Matrix Nets(xNets),能同时处理好 scale 和 aspect ratios 两个方面的问题!

在这里插入图片描述
在这里插入图片描述

key-point based detector 是目前最先进的方法,然而,由于只利用了 single output layer,会有如下两个缺点:

  • they require very large, computationally expensive backbones(沙漏网络), and special pooling layers for the model to converge.(应该指的是 CornerNet 中的 Corner Pooling,CornerNet 的解读可以参考 【CornerNet】《CornerNet: Detecting Objects as Paired Keypoints》
  • they have difficulty accurately matching top-left, and bottom-right corners.

于是,作者把提出的 xNet 的设计思想应用到了 key-point based detector 上,命名为 KP-xNet,取得了较好的结果!

2 Advantages / Contributions

  • 提出 KP-xNets,provide a scale and aspect ratio aware architecture
  • 47.8 mAP on MS COCO,比一阶段的方法都好
  • using half the number of parameters,3x faster

3 Method

3.1 Matrix Nets

在这里插入图片描述

上图表中 l i , j l_{i,j} li,j 表示 width down-sampling 2 i − 1 2^{i-1} 2i1,height down-sampling 2 j − 1 2^{j-1} 2j1,对角线是空进分辨率是正方形的,对应FPN的特征金字塔,off diagonal layers 是 xNets 特有的结构

左下和右上的 aspect ratio 比较极限了,这样的样本很少,所以 xNets 去掉了这些地方的layers

3.1.1 Layer Generation

讨论下 Matrix Nets 的生成过程
在这里插入图片描述

上三角的 off diagonal layers,由对角线 layers 接 3×3 conv,步长 1×2 卷积得到,宽度减半,横向生成

下三角的 off diagonal layers,由对角线 layers 接 3×3 conv,步长 2×1 卷积得到,高度减半,纵向生成

3.1.2 Layer Ranges

在这里插入图片描述
讨论下每层映射的尺度范围

向右,width 减半,水平感受野 double,
向下,height 减半,竖直方向感受野 double

如果, l 1 , 1 l_{1,1} l1,1层, H ∈ [ 24 , 48 ] H \in [24,48] H[24,48] W ∈ [ 24 , 48 ] W \in [24,48] W[24,48]
那么, l 1 , 2 l_{1,2} l1,2层, H ∈ [ 24 , 48 ] H \in [24,48] H[24,48] W ∈ [ 48 , 96 ] W \in [48,96] W[48,96]

有点意思,h<w 的物体,映射到了 h>w 的 layer上,因为 h>w的 layer 对 width 维度有更大的感受野,也可以说,对 width 维度信息浓缩的更高级,这样就能保证 h<w 的物体,在 h>w 的 layer 上呈现出接近正方形的样子(类比正方形的物体 h = w,映射到了对角线 layer 上)

边界附近大小的bbox ,尺寸稍微改变,就到了不同 layer 去了,影响训练的稳定性,为了避免这个问题,作者在下边界乘以 0.8,上边界乘以 1.3,来拓宽每个 layer 可接受的尺度范围

3.1.3 Advantages of Matrix Nets

  • allow a square convolutional kernel to accurately gather information about different aspect ratios(正式因为 height 和 width 不同的感受野,不同的信息压缩比)

  • object sizes are nearly uniform within their assigned layers,特征金字塔的每层 layer 中,aspect ratio 变化范围比 FPN 小,比 FPN 更好优化

  • 可以用到任意的 object detector 上!one-stage or two-stage 都行

3.2 Key-point Based Object Detection

CornerNet 预测 heatmaps, offsets, and embeddings.(CornerNet 的解读可以参考 【CornerNet】《CornerNet: Detecting Objects as Paired Keypoints》

  • heatmaps 来预测左上右下两个点
  • embeddings 来 group 左上右下两个点成为 bbox
  • offsets 来精修 bbox

然而,CornerNet 有如下三个主要的 limitations:

  • 采用 corner pooling layer 来捕获左上点或者右下点的信息,corner pooling 是沿着不同方向采用的 max pooling 最后相加得到的结果(如下图所示)!max pooling 有信息损失,如果两个物体共享一个上边界,那么只有特征值较大的物体在从右到左扫描的时候,才保留下来了,才有梯度传播,同理,如果两个物体共享左边界,从下到上扫描的时候,也是特征值较大的物体才有梯度传播!显然,corner pooling 面对这种问题,会产生 FP 或者 FN(我想问一下:实际中,这种共享边的情况多吗?)
    在这里插入图片描述
  • feature embedding 来把左上右下点 group 成对,
    一方面,这要求优化两个来自同一个目标的点距离尽可能近,不同目标之间的点尽可能远,随着检测物体的针对,配对情况呈指数级增长!面对密集物体检测时,可扩展性不强!
    另一方面,CornerNet tries to learn the embedding for each object corner conditioned on the appearance of the other corner of the object!(embedding 是 one-dimension 的)!但是,如果物体太大,左上右下两个点隔得太远,appearance 差别过大,the embeddings at each corner can be different as well!而且,如果不同物体的点 appearance 相近,很容易 group 到一起去了,这也是为什么 CornerNet 会把人 merge 在一起,会把交通灯 merge 在一起
  • Hourglass-104 backbone 过于笨重,需要 10 个 12 G 显存的 GPU,保证 batch-size 足够大,才能 stable convergence

3.2.1 Keypoint Based Object Detection Using Matrix Nets

在这里插入图片描述
预测左上角和右下角的热力图,预测 corner 的 offset,预测 centers!用 centers 来匹配 corner!特征金字塔所有 layer 的 bbox 最后通过 soft NMS 输出

1)Corner Heatmaps

由于 xNet 金字塔的设计,不用 Corner Pooling 来计算点的 heatmaps了,用正常的卷积就行。KP-xNet 也采用 Focal Loss 来处理正负样本不均衡的问题!

维度应该也是 H×W×C(categories),也就是 class-specifically

2)Corner Regression

精修 bbox,值设置在 -0.5 到 0.5 之间,损失函数为 Smooth L1

3)Center Regression

不同于 CornerNet 的 embedding,随着物体的增加,指数级的增长配对情况,用 center 来配对的话,配对情况只会随着物体的增加线性增长

对比真实 corner 到预测 center 的距离和真实 corner 到真实 center 的距离,用 smooth L1 来优化

(学完以后,应该是遍历每个 center,计算所有 corner 到该 center 的距离,相近的配对成 bbox,最后用 corner 的 offset 来精修一下 bbox)


总结:

相比于 CornerNet

  • KP-xNet,采用 Matrix 金字塔,把 scale 和 aspect ratio 信息编码到了 matrix layer 中,不像 CornerNet 那样,只用 single layer 来预测。同时,也不用 corner pooling 操作了

  • KP-xNet 不再预测 embedding 来 group corner,而是预测 center 来 group corner,对于密集物体的检测来说,搜索配对空间小很多(一个指数级,一个线性级)

4 Experiments

8 V100 GPUs,batch-size 为 55

4.1 Datasets

  • MS COCO ’trainval35k’ set,tested on the ’test-dev2017’ set

4.2 Comparisons

在这里插入图片描述
第二好的 CenterNet,3x the training iterations,2x GPU memory

在这里插入图片描述
横坐标模型参数量,纵坐标精度,左上角最好,作者的方法比对比的几种方法又快又好

5 Conclusion(own)

  • 哈哈,h<w 的物体映射到了 h>w 的 matrix layer 上哟!!!因为 h>w 的 matrix layer 在 width 维度上,感受野更大,信息压缩量更多,相当于 h<w 送进来后,变成 h = w 了!
  • diss Cornernet,也基本上针对 Cornernet 的缺点做的改进,效果不错,有空补补 CenterNet,看借鉴度高不高
  • 一阶段的方法,matrix layer 所有结果 NMS 后输出
  • 不太明白,Layer Ranges 小节中的 0.8,1.3设定,这样设定后,不同 matrix layer 之间不是有尺寸重叠区间吗?那位于重叠区间的物体,到底映射到哪一个 matrix layer?
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值