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



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

论文: SaccadeNet: A Fast and Accurate Object Detector

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在精度和速度上都可圈可点,整体思想十分不错。





如果本文对你有帮助,麻烦点个赞或在看呗~

更多内容请关注 微信公众号【晓飞的算法工程笔记】

SaccadeNet:使用角点特征进行two-stage预测框精调 | CVPR 2020的更多相关文章

  1. GhostNet: 使用简单的线性变换生成特征图,超越MobileNetV3的轻量级网络 | CVPR 2020

    为了减少神经网络的计算消耗,论文提出Ghost模块来构建高效的网络结果.该模块将原始的卷积层分成两部分,先使用更少的卷积核来生成少量内在特征图,然后通过简单的线性变化操作来进一步高效地生成ghost特 ...

  2. 『OpenCV3』Harris角点特征_API调用及python手动实现

    一.OpenCV接口调用示意 介绍了OpenCV3中提取图像角点特征的函数: # coding=utf- import cv2 import numpy as np '''Harris算法角点特征提取 ...

  3. ICEM-三角形特征几何

    原视频下载地址:https://pan.baidu.com/s/1qY8SKri 密码: wf17

  4. SEPC:使用3D卷积从FPN中提取尺度不变特征,涨点神器 | CVPR 2020

    论文提出PConv为对特征金字塔进行3D卷积,配合特定的iBN进行正则化,能够有效地融合尺度间的内在关系,另外,论文提出SEPC,使用可变形卷积来适应实际特征间对应的不规律性,保持尺度均衡.PConv ...

  5. Anchor-free目标检测综述 -- Dense Prediction篇

      早期目标检测研究以anchor-based为主,设定初始anchor,预测anchor的修正值,分为two-stage目标检测与one-stage目标检测,分别以Faster R-CNN和SSD作 ...

  6. Guided Anchoring:在线稀疏anchor生成方案,嵌入即提2AP | CVPR 2019

    Guided Anchoring通过在线生成anchor的方式解决常规手工预设anchor存在的问题,以及能够根据生成的anchor自适应特征,在嵌入方面提供了两种实施方法,是一个很完整的解决方案   ...

  7. Anchor-free目标检测综述 -- Keypoint-based篇

      早期目标检测研究以anchor-based为主,设定初始anchor,预测anchor的修正值,分为two-stage目标检测与one-stage目标检测,分别以Faster R-CNN和SSD作 ...

  8. CenterNet算法笔记(目标检测论文)

    论文名称:CenterNet: Keypoint Triplets for Object Detectiontection 论文链接:https://arxiv.org/abs/1904.08189 ...

  9. mxnet深度学习实战学习笔记-9-目标检测

    1.介绍 目标检测是指任意给定一张图像,判断图像中是否存在指定类别的目标,如果存在,则返回目标的位置和类别置信度 如下图检测人和自行车这两个目标,检测结果包括目标的位置.目标的类别和置信度 因为目标检 ...

随机推荐

  1. EF中使用事务

    using (var db = new dbEntities()) { //第一个坑,需要手动open db.Database.Connection.Open(); using (var tran = ...

  2. [Altium Designer 学习]怎样添加3D模型

    对于为给PCB添加3D模型,很多人觉得这是个绣花针的活,中看不中用.在我看来这也未必,特别是常用的3D模型能在网上下载的今天,只需要几个简单的操作,就能使你的PCB更加赏心悦目.除此之外,3D模型还有 ...

  3. 1121day-户别确认

    1.Addinfor.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" ...

  4. VueRouter学习01-基本使用

    ## 基本使用: 1. 创建一个`VueRouter`对象:`new VueRouter()`. 2. 在`VueRouter`中,需要传递一个`routes`参数.这个参数是一个数组类型,数组中存储 ...

  5. 一步一步超级详细的zabbix安装教程

    安装说明: 1. 虚拟机上安装两台全新Linux: zabbix-server:192.168.255.128 zabbix-agent :192.168.255.129 2. zabbix-serv ...

  6. 002 Linux 文件与目录命令的必会姿势!

    01这些命令真的很重要吗? 文件及目录的路径切换.显示.创建.复制.移动和删除操作的常用姿势,必会!因为这些命令是使用 Linux 系统进行工作的基础,是摆脱小白的第一步,是构建大厦的基石! 发现锅锅 ...

  7. python32day

    内容回顾 操作系统的历史 多道操作系统 分时操作系统 实时操作系统 进程 线程 并行和并发 同步和异步 阻塞和非阻塞 今日内容 进程的三状态图 进程的调度算法 给所有进程分配资源或者分配CPU使用权的 ...

  8. nohub命令简单介绍。

    /* 来自对 https://www.cnblogs.com/kexianting/p/11628983.html 编辑. 一 什么是 nohub? 1 是 no hang up 的缩写,就是不挂断的 ...

  9. c++17 新特性

    编译环境说明:gcc 8.1 + eclipse +windows 10 eclipse cpp默认支持c++14,做c++17开发时,需要手动进行配置. 1.关键字 1)constexpr c++1 ...

  10. 抓包神器 tcpdump 使用介绍 (转)

    tcpdump 命令使用简介 简单介绍 tcpdump 是一款强大的网络抓包工具,运行在 linux 平台上.熟悉 tcpdump 的使用能够帮助你分析.调试网络数据. 要想使用很好地掌握 tcpdu ...