当前位置 : 主页 > 编程语言 > 其它开发 >

SaccadeNet:使用角点特征进行two

来源:互联网 收集:自由互联 发布时间:2022-05-20
SaccadeNet基于中心点特征进行初步的目标定位,然后利用初步预测框的角点特征以及中心点特征进行预测框的精调,整体思想类似于two-stage目标检测算法,将第二阶段的预测框精调用的区

SaccadeNet基于中心点特征进行初步的目标定位,然后利用初步预测框的角点特征以及中心点特征进行预测框的精调,整体思想类似于two-stage目标检测算法,将第二阶段的预测框精调用的区域特征转化为点特征。SaccadeNet在精度和速度上都可圈可点,整体思想十分不错

来源:晓飞的算法工程笔记 公众号

论文: SaccadeNet: A Fast and Accurate Object Detector

  • 论文地址:https://arxiv.org/abs/2003.12125
  • 论文代码:https://github.com/voidrank/SaccadeNet
Introduction

  在神经学中,人类在定位目标时并非固定地看着场景,而是四处寻找富含信息的区域来帮助进行目标的定位。受此机制的启发,论文提出了SaccadeNet,能够高效地关注信息丰富的目标关键点,从粗粒度到细粒度进行目标定位。

  SaccadeNet的结构如图2所示,首先初步预测目标的中心位置以及角点位置,然后利用四个角点位置以及中心点位置的特征进行回归优化,SaccadeNet包含四个模块:

  • Center Attentive Module(Center-Attn),预测目标的中心位置以及类别。
  • Attention Transitive Module(Attn-Trans),初步预测每个中心位置对应的角点位置。
  • Aggregation Attentive Module (Aggregation-Attn),利用中心位置以及角点位置的特征进行预测框的优化。
  • Corner Attentive Module(Corner-Attn),用于增强主干网络的目标边界特征。

  SaccadeNet的整体思想十分不错,有点类似于two-stage的目标检测的方案,将第二阶段的预测框回归从区域特征转化成了点特征。

Center Attentive Module

  Center-Attn模块包含两个简单的卷积层,将主干网络输出的特征图转化为中心点热图,热图可用于预测图片中所有目标的中心位置及其类别。该模块的GT跟CornerNet的设置一样,使用高斯核\(e^{\frac{||X-X_k||^2}{2{\sigma}^2}}\)将GT位置进行散射,\(\sigma\)为半径的1/3,半径由目标的大小决定,保证半径内的点能够产生IOU至少为0.3的预测框。另外,该模块的损失函数结合了focal loss:

\(p_{i,j}\)为热图上位置\((i,j)\)的分数,\(y_{i,j}\)为对应的GT值。

Attention Transitive Module

  Attn-Trans模块输出大小为\(w_f\times h_f\times 2\),预测每个位置对应的预测框的宽和高,然后根据其中心点位置\((i,j)\)计算其对应角点位置\((i-w_{i,j}/2, j-h_{i,j}/2)\),\((i-w_{i,j}/2, j+h_{i,j}/2)\),\((i+w_{i,j}/2, j-h_{i,j}/2)\),\((i+w_{i,j}/2, j+h_{i,j}/2)\),使用L1回归损失进行训练。基于Center-Attn模块和Attn-Trans模块,SaccadeNet能够初步预测目标的检测结果。此外,论文的源码提供在此模块额外预测中心点的偏移值,针对下采样造成的不对齐问题,该偏移值同样使用L1回归损失进行训练,这个是默认开启的。

Aggregation Attentive Module

  Aggregation-Attn是一个轻量级模块,用于对预测框进行精调,输出更精准的预测框。Aggregation-Attn模块从Attn-Trans模块和Center-Attn模块中获取目标的角点和中心点,并且从主干网络输出的特征图中,使用双线性插值采样对应位置的特征,最后回归宽和高的修正值,整个模块使用L1损失进行训练。

Corner Attentive Module in Training

  为了提取富含信息的角点特征,论文在训练时加入了额外的Corner-Attn分支,将主干网络特征转化输出为四通道热图,分别对应目标的四个角点。同样地,该分支基于focal loss和高斯热图进行训练,该分支是类不可知的。此模块可迭代进行多次精调,类似Cascade R-CNN那样,论文在实验部分也进行了对比。

Relation to existing methods

  目前的基于关键点的目标检测方法可分为edge-keypoint-based detectors和center-keypoint-based detectors,SaccadeNet综合了两类方法的优点的存在。
  Edge-keypoint-based detectors通常先检测角点或极点,然后通过组合方法对关键点组合进行目标的定位,但这类算法通常不能获取目标的全局信息:a) 角点特征本身就包含较少的目标信息,需要额外增加中心特征进行特征加强。 b) 角点通常位于背景像素上,相对于其它关键点包含更少的信息。尽管SaccadeNet也利用了角点进行目标预测,但SaccadeNet直接从中心关键点进行目标预测,这样能够获取目标的全局信息,并且避免了耗时的关键点组合。

  Center-keypoint-based detectors通过中心关键点进行目标预测,输出中心点热图并直接回归边界。但中心点通常离目标边界较远,可能会难以预测准确的目标边界,特别对于大目标而言。另外,角点关键点是离边界最近的,包含很多局部的准确信息,缺乏角点信息可能会对预测结果不利,而SaccadeNet恰好填补了这个缺陷,进行更准确的边界预测。

Experiments

  与SOTA目标检测算法进行对比。

  Attn-Trans模块和Aggregation-Attn模块的对比实验。

  Corner-Attn模块迭代次数对比。

Conclusion

  SaccadeNet基于中心点特征进行初步的目标定位,然后利用初步预测框的角点特征以及中心点特征进行预测框的精调,整体思想类似于two-stage目标检测算法,第二阶段的预测框精调用的区域特征转化为点特征。SaccadeNet在精度和速度上都可圈可点,整体思想十分不错。



如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】

work-life balance.

网友评论