SaccadeNet:使用角点特征进行two-stage预测框精调 | CVPR 2020
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的更多相关文章
- GhostNet: 使用简单的线性变换生成特征图,超越MobileNetV3的轻量级网络 | CVPR 2020
为了减少神经网络的计算消耗,论文提出Ghost模块来构建高效的网络结果.该模块将原始的卷积层分成两部分,先使用更少的卷积核来生成少量内在特征图,然后通过简单的线性变化操作来进一步高效地生成ghost特 ...
- 『OpenCV3』Harris角点特征_API调用及python手动实现
一.OpenCV接口调用示意 介绍了OpenCV3中提取图像角点特征的函数: # coding=utf- import cv2 import numpy as np '''Harris算法角点特征提取 ...
- ICEM-三角形特征几何
原视频下载地址:https://pan.baidu.com/s/1qY8SKri 密码: wf17
- SEPC:使用3D卷积从FPN中提取尺度不变特征,涨点神器 | CVPR 2020
论文提出PConv为对特征金字塔进行3D卷积,配合特定的iBN进行正则化,能够有效地融合尺度间的内在关系,另外,论文提出SEPC,使用可变形卷积来适应实际特征间对应的不规律性,保持尺度均衡.PConv ...
- Anchor-free目标检测综述 -- Dense Prediction篇
早期目标检测研究以anchor-based为主,设定初始anchor,预测anchor的修正值,分为two-stage目标检测与one-stage目标检测,分别以Faster R-CNN和SSD作 ...
- Guided Anchoring:在线稀疏anchor生成方案,嵌入即提2AP | CVPR 2019
Guided Anchoring通过在线生成anchor的方式解决常规手工预设anchor存在的问题,以及能够根据生成的anchor自适应特征,在嵌入方面提供了两种实施方法,是一个很完整的解决方案 ...
- Anchor-free目标检测综述 -- Keypoint-based篇
早期目标检测研究以anchor-based为主,设定初始anchor,预测anchor的修正值,分为two-stage目标检测与one-stage目标检测,分别以Faster R-CNN和SSD作 ...
- CenterNet算法笔记(目标检测论文)
论文名称:CenterNet: Keypoint Triplets for Object Detectiontection 论文链接:https://arxiv.org/abs/1904.08189 ...
- mxnet深度学习实战学习笔记-9-目标检测
1.介绍 目标检测是指任意给定一张图像,判断图像中是否存在指定类别的目标,如果存在,则返回目标的位置和类别置信度 如下图检测人和自行车这两个目标,检测结果包括目标的位置.目标的类别和置信度 因为目标检 ...
随机推荐
- 《手把手教你》系列技巧篇(五十九)-java+ selenium自动化测试 - 截图三剑客 -上篇(详细教程)
1.简介 今天本来是要介绍远程测试的相关内容的,但是宏哥在操作服务器的时候干了件糊涂的事,事情经过是这样的:本来申请好的Windows服务器用来做演示的,可是服务器可能是局域网的,连百度都不能访问,宏 ...
- Python小练习更改版(更改一部分代码,与错误)
之前上传的发现有部分代码错误,重新上传: 更改了第一次的代码与错误,增加了注释与商店部分功能: 没有每天坚持更新博客,与初衷相差甚远,坚持!每天进步一点点! user_list.txt 部分代码: { ...
- 集合框架-ArrayList练习(去除ArrayList集合中的重复元素)
1 package cn.itcast.p3.arraylist.test; 2 3 import java.util.ArrayList; 4 import java.util.Iterator; ...
- web前端基础之SCC(定位-z-index模态框)
目录 一:定位(position) 1.relative(相对定位) 2.absolute(绝对定位) 3.fixed(固定) 二:相对定位 1.相对定位 2.实现相对定位 三:绝对定位 1.实现绝对 ...
- 学习Java第14天
今天成功安装了MySQL Visual Studio Code 准备试着学习HTML+CSS了 明天开始认识HTML和CSS学会软件的使用 今天安装调试这些东西属实费了点劲,可能电脑配置较低吧,还有点 ...
- Homework_1
寒假第一份作业 一.博客园部分 1.个人博客园链接 Click here 2.markdown界面截图 我用typora编辑 所以贴上typora界面的截图 二.Github部分 1.个人Github ...
- 如何修改TOMCAT的默认主页为你自己项目的主页
感谢作者:xxs673076773 原文链接:https://www.iteye.com/blog/xxs673076773-1134805 (最合适的) 最直接的办法是,删掉tomcat下原有Roo ...
- JFrame实现圆角窗体
感谢大佬:https://blog.csdn.net/Mr_Pang/article/details/47808299?utm_source=blogxgwz0 注:使用AWTUtilities类跨平 ...
- Eclipse 找不到或者无法加载主类
最近因为频繁练习JDBC更换了几次驱动jar包,然后突然发现出现了找不到或者无法加载主类的错误, 项目上出现了一个感叹号. 解决方法: 项目-右键 properties-java Build Path ...
- rm, git rm, git rm --cached 区别与关系
HEAD, staging area, working copy在上篇<Git命令之回退篇 git revert git reset>已经讲过,不明白请自行传送过去. 1. rm 是仅仅删 ...