目标检测:SaccadeNet论文解读

目标检测:SaccadeNet论文解读

论文网址:SaccadeNet: A Fast and Accurate Object Detector
论文代码:voidrank/SaccadeNet

0. 简介

  • SaccadeNet是一种 anchor-free的检测器,可以实现准确且快速的检测目标。

  • 对于人来说,一般不会固定的注视某个场景。 取而代之的是,人眼四处走动,定位物体的部分信息以了解物体的位置。这种主动的感知移动过程称为saccade。本文方法就是基于这种思想设计的。

  • SaccadeNet包含四个主要模块,即中心注意力模块(Center Attentive Module),角点注意力模块(Corner Attentive Module),注意力传递模块(Attention Transitive Module)和聚合注意力模块(Aggregation Attentive Module)。

  • (1)中心注意力模块预测目标中心的位置和类别。
    (2) 同时,对于每个预测的目标中心,注意力传递模块用于预测相应边界框角的粗略位置。
    (3)为了提取提供信息的角点特征,使用角点注意模块来强制CNN更加关注物体边界,从而使回归边界框更加准确。
    (4)最后,聚合注意模块利用从中心和角点聚合的特征来优化物体边界框.
    这使网络可以使用好几个不同的提供信息的物体关键点,并预测目标的位置(从粗到精)。

  • 角点注意力模块仅在训练过程中使用,以提取更多的拐角信息特征,从而带来性能提升。

  • 与CenterNet相比几乎没有速度损失(同时预测角点和中心,而且没有分组操作),但是精度提升许多。

  • 在MS COCO数据集上,使用DLA-34作为backbone,在28 FPS时达到40.4%mAP的性能;使用ResNet-18 作为backbone,在118 FPS时达到30.5%mAP的性能。
    在这里插入图片描述

1. 相关工作

目标检测器分为2类:anchor-based 目标检测器和anchor-free的目标检测器。

  • two-stage目标检测器(anchor-based):Faster R-CNN,Mask R-CNN
    第一阶段是区域建议网络(RPN),用来估计所有anchors的可能(目标or背景);
    第二阶段是R-CNN,用来预测类别和微调bbox。
    优点是准确率高,缺点是速度慢。

  • one-stage目标检测器(anchor-based):SSD, YOLOv3,RetinaNet
    去掉了RPN,直接预测类别和回归候选anchors的bbox。
    优点是速度快,缺点是准确率低。

  • anchor-free目标检测器
    CornerNet:FCN可以直接预测拐角热图,每个角的嵌入向量和一组偏移量。 嵌入向量用于对成对的角进行分组以形成边界框,偏移量作用于将角从低分辨率热图重新映射到高分辨率输入图像。
    ExtremeNet:引入了一种预测极限点而不是边界框角的方法,并引入了中心热图进行分组步骤。
    Centernet(Keypoint triplets forobject detection):通过添加中心关键点来扩展CornerNet。 中心关键点用于启发式地定义中心区域,然后他们使用该区域来细化分组的角。
    CenterNet (objects as points):直接预测中心关键点和目标的大小。 此外,它通过峰值关键点提取代替了基于IoU的非最大抑制(NMS),减少了推理时间。

2. SaccadeNet

在这里插入图片描述

  • 通过5个检测点来检测目标的信息:物体中心点和4个边界框角点。
  • 在CNN backbone 之后,Center Att专注于预测物体中心关键点;
  • 然后底部的Attention Trans将注意力从物体中心切换到估计物体四个拐角的粗略位置;
  • 之后,Aggregation Att使用从中心和角关键点聚合的信息,并预测物体的精确位置。
  • 此外,为了获得信息丰富的拐角特征,顶部的Corner Att(仅在训练中使用)用于强制CNN backbone 更加关注物体边界。

2.1 Center Attentive Module

  • Center Attentive Module以CNN主干网的特征作为输入,预测中心热图。中心热图用于估计图像中所有物体的类别和中心位置。中心热图中的通道数是类别数
  • 在中心注意力中,它包含两个卷积层。这种双卷积结构称为head module。它是构建其他SaccadeNet模块的基本组件.
  • 本文也是使用高斯热图作为ground truth。关键点的ground truth热图并未定义为0或1,这是因为目标关键点附近的位置应该比远处的位置得到更少的惩罚。
  • focal loss 被应用于辅助高斯热图:
    在这里插入图片描述
    其中pi,j 是热图中位置(i,j)处的得分,yi,j 是相应的ground truth值。

2.2 Attention Transitive Module

  • 输出维度设置为2,表示目标的宽度 w 和高度 h。
  • 在得到(i,j)位置处每个中心的边界框的宽度和高度后,我们可以计算出相应的角为:
    在这里插入图片描述
  • 在训练中,采用L1 regression loss
  • 使用中心注意力和注意力传递,SaccadeNet可以生成边界粗糙的目标检测。

2.3 Aggregation Attentive Module

  • 使用双线性插值从角点和中心关键点聚合CNN特征,并输出更精确的目标边界框。
  • 聚合注意力是一个用于目标边界求精的轻量级模块。
  • Aggregation-Attn结构是一个改进的head模块。改变了第一个卷积层的输入,让它从Attn-Trans和Center-Attn输入物体的角点和中心点,通过双线性插值从backbone的输出获得采样特征。
  • 输出为长和宽的残差偏移量(residual offsets)。
  • 误差使用L1 loss

2.4 Corner Attentive Module in Training

  • 作用是强制CNN backbone学习区分角点特征。
  • 角点注意力使用一个head模块来处理特征并输出4通道热图,包括左上角、右上角、左下角和右下角
  • 角点注意力的训练也基于focal loss高斯热图
  • 实验中使用了agnostic热图的角点注意力。
  • 因为此分支仅在训练期间使用,因此它提高推理准确性的同时并没有增加计算。

2.5 SaccadeNet优势

  • Edge-keypoint-based detectors:缺乏整体感知能力
    有2个原因使其可能无法对物体的整体信息进行建模:
    (1)角的特征缺乏整体信息,一些Edge-keypoint-based detectors仍需要中心特征来整合角点;
    (2)角点经常定位在背景像素上,使其与中心点相比编码更少的信息。

  • Center-keypoint-based detectors:缺少局部细节信息
    中心点可能远离物体的边界,可能会估计精确的边界失败,尤其是对于大型物体。
    反之,角点在边界的附近,能够编码更多的局部精确信息。

  • SaccadeNet方法将Edge-keypoint-based detectors和Center-keypoint-based detectors结合起来,能够避免上述问题。

3. 实验

  • 数据集:PASCAL VOC 2012 和 MS COCO 2017

  • Backbone:DLA-34 和 ResNet-18

  • 所有head module采用统一的结构:2个卷积
    第一个卷积具有3×3的卷积核,256维输出channels;
    后面跟一个ReLU层;
    第二个卷积采用1×1的卷积核,没有激活函数。

  • (1)Center-Attn包含1个head module,输出通道数为分类数,如VOC是20,COCO是80.
    (2)Corner-Attn包含1个head module,输出为4通道的热图,代表4个角点的agnostic heatmap。
    (3)Attention Trans包含2个head module,都是2个输出通道,分别是物体的2个方向的中心offset和长宽。
    (4)Aggregation-Attn包含1个head module,输出2个通道,代表物体长和宽的residual offsets。

  • 输入图像尺寸为512×512.

  • Flipped testing方法可选,可以通过对训练数据集图片的翻转,增加数据量,获得更好的性能。

  • 为了更快的速度,在后处理阶段使用CenterNet文章中的peak-picking NMS方法,代替IoU-based NMS。

实验结果
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/gaoqing_dream163/article/details/110424737