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 在精度和速度上都可圈可点,整体思维非常不错。
如果本文对你有帮忙,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】