(九)论文阅读 | 目标检测之GA


简介

在这里插入图片描述

图1:论文原文

论文是发表在 C V P R   2019 {\rm CVPR\ 2019} 上的一篇关于目标检测的论文。论文的主题是 G u i d e d   A n c h o r i n g {\rm Guided\ Anchoring} ,即采用某种方法指导生成 A n c h o r {\rm Anchor}
论文原文 源码


0. Abstract

当前 A n c h o r {\rm Anchor} - B a s e d {\rm Based} 的目标检测方法会使用预先设定大小和宽高比的 A n c h o r {\rm Anchor} ,然后将大量 A n c h o r {\rm Anchor} 密集地铺在图像上,找出最适合的 A n c h o r {\rm Anchor} 进行分类和分类和回归。论文提出一种高效的方法用以指导 A n c h o r {\rm Anchor} 的生成,同时预测目标的中心区域即大小和宽高比。此外,使用特征自适应模块缓解特征不平衡的问题。该方法可以集成到 A n c h o r {\rm Anchor} - B a s e d {\rm Based} 的目标检测方法中。实验结果为在 M S   C O C O {\rm MS\ COCO} 数据集上, F a s t   R {\rm Fast\ R} - C N N {\rm CNN} F a s t e r   R {\rm Faster\ R} - C N N {\rm CNN} R e t i n a N e t {\rm RetinaNet} m A P {\rm mAP} 分别提高 2.2 % {\rm 2.2\%} 2.7 % {\rm 2.7\%} 1.2 % {\rm 1.2\%}
本文贡献:(一)提出一种新的 A n c h o r {\rm Anchor} 生成机制;(二)将 A n c h o r {\rm Anchor} 的铺设公式化,即避免在图像上产生大量密集的、无用的 A n c h o r {\rm Anchor} ;(三)基于特征与 A n c h o r {\rm Anchor} 对齐的重要性,设计特征适配模块细化特征;(四)针对两阶段目标检测方法提出高效的区域生成方法。


1. Introduction

当前 A n c h o r {\rm Anchor} - B a s e d {\rm Based} 的目标检测方法使用 A n c h o r {\rm Anchor} 作为分类和回归的基础,而设计 A n c h o r {\rm Anchor} 具有两个准则:对齐和一致。对齐是指 A n c h o r {\rm Anchor} 中心与特征图像素对齐,即通常将特征图中的每个像素作为 A n c h o r {\rm Anchor} 的中心。一致是指 A n c h o r {\rm Anchor} 的大小和宽高比要与感受野一致,即 A n c h o r {\rm Anchor} 的设计要符合数据集中目标的大小和形状。滑动窗口是一种常用的方法,通常在特征图上的每个像素位置铺设 k k 个预先指定大小和宽高比的 A n c h o r {\rm Anchor}
作者指出,上述方法可能存在以下问题:(1)由于 A n c h o r {\rm Anchor} 的大小和形状依赖预先设定,设计不当将会影响模型的速度和精度;(2)大量仅含背景的 A n c h o r {\rm Anchor} 会增加计算量。论文提出一种高效的方法以指导 A n c h o r {\rm Anchor} 生成。受到如下启发:目标并非均匀地分布在图像上,目标的大小和宽高比与图像内容、位置、几何场景密切相关。该方法分为两步:首先确定可能存在目标的子区域,然后确定其形状。如果将 A n c h o r {\rm Anchor} 的大小和宽高比当做变量,则对于特征图上的每个像素,对应 A n c h o r {\rm Anchor} 需要自适应确定。论文提出 G A {\rm GA} - R P N {\rm RPN} 方法( G u i d e d   A n c h o r i n g {\rm Guided\ Anchoring} + R e g i o n   P r o p o s a l   N e t w o r k {\rm Region\ Proposal\ Network} )解决上述问题。


2. Related Work

相关工作部分首先介绍了滑动窗口的使用,主要涉及到 F a s t e r   R {\rm Faster\ R} - C N N {\rm CNN} S S D {\rm SSD} D e n s e B o x {\rm DenseBox} R e t i n a N e t {\rm RetinaNet} Y O L O v 2 {\rm YOLOv2} 等。然后是论文方法同现存方法的对比:(1)后者通常需要大量密集的 A n c h o r {\rm Anchor} ,论文方法舍弃了滑动窗口机制,提出一种高效的方法产生稀疏的 A n c h o r {\rm Anchor} ;(2)级联式的检测方法采用多阶段逐步完善边界框,但通常会带来额外的参数和推理速度的下降;(3) A n c h o r {\rm Anchor} - F r e e {\rm Free} 方法难以胜任复杂的场景;(4) S i n g l e {\rm Single} - S h o t {\rm Shot} 方法使用多次回归和分类逐步确定 A n c h o r {\rm Anchor}


3. Guided Anchoring

G u i d e d   A n c h o r i n g {\rm Guided\ Anchoring} 的流程如下:一个 A n c h o r {\rm Anchor} 可由 ( x , y , w , h ) (x,y,w,h) 确定。现假设某个目标来自图像 I I ,则其形状和位置可由如下确定: p ( x , y , w , h I ) = p ( x , y I ) p ( w , h x , y , I ) (3.1) p(x,y,w,h|I)=p(x,y|I)p(w,h|x,y,I)\tag{3.1}

上述等式即是条件概率等式的简单变形,但其可以反映的是: p ( x , y I ) p(x,y|I) 表明目标可能只存在于图像中特定位置; p ( w , h x , y , I ) p(w,h|x,y,I) 表明目标的大小和宽高比与其位置密切相关。

基于上述结论,论文提出一种 A n c h o r {\rm Anchor} 生成模块,如图:
在这里插入图片描述

图2:方法框架

如图所示,左边是一个特征金字塔。每个金字塔层后接一个 G u i d e d   A n c h o r i n g {\rm Guided\ Anchoring} 。以顶层特征图 F I F_I 为例说明,上面分支 N L N_L 产生一个标识目标位置的概率图,下面分支 N S N_S 预测基于密保位置的形状。然后会产生一系列的 A n c h o r {\rm Anchor} ,通过阈值保留可能的结果。由于图像中的目标可能大小形状各异,采用一个特征自适应模块基于 A n c h o r {\rm Anchor} 的形状自适应特征。详情步骤见后面部分。

3.1 Anchor Location Prediction

如图 2 2 所示。首先 N L N_L 分支产生一个同输入特征图 F I F_I 等大的概率图 p ( F I ) p(·|F_I) ,概率图上每个像素点 p ( i , j F I ) p(i,j|F_I) 对应于原图的位置为 ( ( i + 1 2 ) s , ( j + 1 2 ) s ) ((i+\frac{1}{2})s,(j+\frac{1}{2})s) s s 为步长。概率图上的值表明目标中心在此处的概率。得到概率图的具体过程为:使用 1 × 1 1×1 卷积作用于特征图 F I F_I ,然后通过一个 s i g m o i d {\rm sigmoid} 函数将值归一化,由此得到各个位置的概率值。接着,通过阈值得到存在目标的可能位置。这个操作可以过滤掉大约 90 % 90\% 的低召回率区域。由于不需要考虑概率低的区域,后接掩码卷积。

掩码卷积请参考这篇文章里的 R e g i o n   C o n v o l u t i o n {\rm Region\ Convolution} 。首先针对输入特征图上的每个像素值对应的概率值设置标志,决定其是否参与下面的卷积。即在特征图上添加一个掩膜,目标区域为 1 1 、其他区域为 0 0 ,则卷积操作只在 R o I {\rm RoI} 上进行。

3.2 Anchor Shape Prediction

3.1 3.1 部分得到目标的大致位置后,现在开始预测可能的大小和宽高比。 N S N_S 分支针对特征图 F I F_I 上的每个位置预测合适的 ( w , h ) (w,h) 。由于目标大小和尺寸的多样性,这里不直接预测 w w h h 值: w = σ s e d w ,    h = σ s e d h (3.2) w=σ·s·e^{dw},\ \ h=σ·s·e^{dh}\tag{3.2}

N S N_S 分支预测值 d w dw d h dh s s 为步长, σ = 8 σ=8 ,这里将参数空间归一化到 [ 1 , 1 ] [-1,1] 。类似的处理在 R {\rm R} - C N N {\rm CNN} Y O L O {\rm YOLO} 系列中经常使用,目的是将坐标的预测归一化,使其值的变化限制在某个范围,有利于网络的训练过程以及后续的边界框回归。

得到位置预测的具体过程为:使用 1 × 1 1×1 卷积作用于特征图 F I F_I ,得到一个两通道的特征图,分别为值 d w dw d h dh 。然后应用公式 ( 3.2 ) (3.2) 得到对应的宽和高。

3.3 Anchor-Guided Feature Adaptation

在特征图 F I F_I 上,不同位置的目标大小和宽高比变化可能很大。直觉上,较大的 a n c h o r {\rm anchor} 对应于较大的区域;较小的 a n c h o r {\rm anchor} 对应于较小的区域。基于此,作者提出一个特征自适应模块,根据 a n c h o r {\rm anchor} 的形状转化特征: f i = N T ( f i , w i , h i ) (3.3) {\rm f}_i^{'}=N_T({\rm f}_i,w_i,h_i)\tag{3.3}

这里的 f i {\rm f}_i 表示特征中的第 i i 个位置, ( w i , h i ) (w_i,h_i) 为对应 a n c h o r {\rm anchor} 的宽和高, N T N_T 表示一个 3 × 3 3×3 的可变卷积,最后得到相应位置的输出 f i {\rm f}_i^{'} 。可变卷积来自于一篇 C V P R   2017 {\rm CVPR\ 2017} 文章,如下图:在这里插入图片描述

图3:DCN

i n p u t   f e a t u r e   m a p {\rm input\ feature\ map} 后接两个分支。上面分支通过卷积产生一个和输入特征图大小相同、通道数为 2 N 2N 的偏移(对应 N N x x y y 方向上的偏移)。将偏移作用于输入特征图上的卷积核后,卷积核变为输出特征图上的蓝框。 D C N {\rm DCN} 的提出致力于解决图像中目标的多尺度变化问题。

3.4 Training

损失函数定义如下: L = λ 1 L l o c + λ 2 L s h a p e + L c l s + L r e g (3.4) L=λ_1L_{loc}+λ_2L{shape}+L_{cls}+L_{reg}\tag{3.4}

除了目标检测中常用的分类损失 L c l s L_{cls} 和定位损失 L r e g L_{reg} 外,还添加了位置预测损失 L l o c L_{loc} 和形状预测损失 L s h a p e L_{shape} L c l s L_{cls} 常用的形式是 F o c a l   L o s s {\rm Focal\ Loss} L r e g L_{reg} 常用的形式是 I o U   L o s s {\rm IoU\ Loss} ,而 L l o c L_{loc} L s h a p e L_{shape} 的具体形式见源码部分。

A n c h o r   l o c a t i o n   t a r g e t s {\rm Anchor\ location\ targets} ,为了训练 N L N_L 分支,针对每幅图像使用一个二值标签图( 1 1 表示有效位置、 0 0 反之),这里使用标注框指导标签图的生成。对于标注框 ( x g , y g , w g , h g ) (x_g,y_g,w_g,h_g) ,其映射到对应特征图上为 ( x g , y g , w g , h g ) (x_g^{'},y_g^{'},w_g^{'},h_g^{'}) ,令 R ( x , y , w , h ) R(x,y,w,h) 表示中心在 ( x , y ) (x,y) 、宽高为 ( w , h ) (w,h) 的矩形框。而 a n c h o r {\rm anchor} 要尽可能放置到邻近标注目标中心的区域,以获得更大的 I o U {\rm IoU} 。这里定义 3 3 中类型的区域:
(1) C R = R ( x g , y g , σ 1 w , σ 1 h ) CR=R(x_g^{'},y_g^{'},σ_1w^{'},σ_1h^{'}) 表示框的中心区域, C R CR 内的像素为正样本;
(2) I R = R ( x g , y g , σ 2 w , σ 2 h ) IR=R(x_g^{'},y_g^{'},σ_2w^{'},σ_2h^{'}) 是一个不包含 C R CR 的更大的区域( σ 2 σ 1 {σ_2>σ_1} ), I R IR 内的像素为忽略;
(3)除去 C R CR I R IR 区域内的像素为负样本。
基于 D e n s e B o x {\rm DenseBox} 的思想,每层特征图仅对应于特定大小范围的 a n c h o r {\rm anchor} ,这个问题在FCOS中也有相应的讨论。所以,论文将 C R CR 分配到对应的特征层,而 I R IR 被分配到相邻层的对应区域。这样, C R CR 能够抑制 I R IR I R IR 能够抑制 O R OR 。(我的理解是,将相邻层对应区域置为 I R IR 后可以改善 a n c h o r {\rm anchor} 分配的模糊性问题)。由于 C R CR 往往对应特征图上的一个较小区域,而 O R OR 区域相对较大, N L N_L 分支的损失函数采用 F o c a l   L o s s {\rm Focal\ Loss} 形式。
在这里插入图片描述

图4:3种区域

A n c h o r   s h a p e   t a r g e t s {\rm Anchor\ shape\ targets} ,这里分两步确定 a n c h o r {\rm anchor} 的形状:将 a n c h o r {\rm anchor} 分配到标注框和预测宽高。常用做法是通过 I o U {\rm IoU} a n c h o r {\rm anchor} 分配到标注框。由于这里 w w h h 的值没有确定,作者将 I o U {\rm IoU} 定义为一个变量: v I o U ( a w h , g t ) = max w > 0 h > 0 I o U n o r m a l ( a w h , g t ) (3.5) {\rm vIoU}(a{\rm _{wh},gt})={\underset {w>0,h>0}{\operatorname {max} }}{\rm IoU}_{normal}(a_{wh},{\rm gt})\tag{3.5}

这里可变 a n c h o r {\rm anchor} a w h = { ( x 0 , y 0 , w , h ) w > 0 , h > 0 } a_{\rm {wh}}=\{(x_0,y_0,w,h)|w>0,h>0\} ,标注框为 g t = ( x g , y g , w g , h g ) {\rm gt}=(x_g,y_g,w_g,h_g) 。然后对于位置 ( x 0 , y 0 ) (x_0,y_0) ,选择一系列 a n c h o r {\rm anchor} 常用的 w w h h 值,遍历所有 ( w , h ) (w,h) ,将与标注框的最大 I o U {\rm IoU} 作为 v I o U {\rm vIoU} 值。实验中采用 9 9 ( w , h ) (w,h) 值同 R e t i n a N e t {\rm RetinaNet} 设置,宽高比分别为 { 1 : 2 , 1 : 1 , 2 : 1 } \{1:2,1:1,2:1\} 、尺寸分别为该特征层对应大小的 { 2 0 , 2 1 / 3 , 2 2 / 3 } \{2^0,2^{1/3},2^{2/3}\}

N S N_S 分支的损失函数采用 L 1 L_1 形式: L s h a p e = L 1 ( 1 m i n ( w w g , w g w ) ) + L 1 ( 1 m i n ( h h g , h g h ) ) (3.6) L_{shape}=L_1(1-{\rm min}(\frac{w}{w_g},\frac{w_g}{w}))+L_1(1-{\rm min}(\frac{h}{h_g},\frac{h_g}{h}))\tag{3.6}

该损失函数形式来自这里

3.5 The Use of High-Quality Proposals

R P N {\rm RPN} G A {\rm GA} - R P N {\rm RPN} 的对比,在采用不同 I o U {\rm IoU} 的情况下得到的建议区域数量。由图可知, G A {\rm GA} - R P N {\rm RPN} 能够得到更多高质量的建议框。
在这里插入图片描述

图5:RPN和GA-RPN


4. Experiments

在这里插入图片描述

图6:各区域建议方法的对比

图中 A R {\rm AR} 表示平均召回率( A v e r a g e   R e c a l l {\rm Average\ Recall} ), A R 100 {\rm AR_{100}} 表示建议区域为 100 100 个情况下的平均召回率。

在这里插入图片描述

图7:RPN和GA-RPN的可视化对比

这部分实验主要对比模型的设计,消融实验1结果:在这里插入图片描述

图8:消融实验1结果对比

8 8 显示了论文中所提出的各部分模块对最终结果的影响,其中 L . {\rm L.} 为位置预测、 S . {\rm S.} 为形状预测、 F . A . {\rm F.A.} 为特征自适应模块。

这部分实验主要对比 a n c h o r {\rm anchor} 位置的选取(即阈值),消融实验2结果:在这里插入图片描述

图9:消融实验2结果对比

这部分实验主要对比 a n c h o r {\rm anchor} 形状的选取,消融实验2结果:
在这里插入图片描述

图10:消融实验3结果对比

图中 G T {\rm GT} 表示标注框, G A {\rm GA} 表示 G u i d e d   A n c h o r i n g {\rm Guided\ Anchoring} S W {\rm SW} 表示滑动窗口。由图可知, G A {\rm GA} 得到的分布同 G T {\rm GT} 更接近。

原文还有关于对齐和一致的对比、 R P N {\rm RPN} G A {\rm GA} - R P N {\rm RPN} 的详细对比,请参考原文


5. Conclusion

论文提出一种 a n c h o r {\rm anchor} 生成机制,通过 a n c h o r {\rm anchor} 的位置引导生成 a n c h o r {\rm anchor} 的形状。此外,使用一个特征自适应模块保证训练的稳定性。实验结果为在当前的区域建议方法中表现 S O T A {\rm SOTA}
生成建议区域是两阶段目标检测算法中包含的阶段,论文实验结果也证明了 G A + R P N + F P N {\rm GA+RPN+FPN} 的形式能够显著提升基于 R P N {\rm RPN} 两阶段目标检测算法的性能。论文中利用 a n c h o r {\rm anchor} 的位置引导生成 a n c h o r {\rm anchor} 的形状的思想很巧妙,同时配合 D C N {\rm DCN} 模块的使用也能够保证多尺度检测的问题。

由于没有阅读源码,本文只总结了 G A {\rm GA} 的大体结构和信息,详细内容请阅读论文原文


参考

  1. Wang J, Chen K, Yang S, et al. Region proposal by guided anchoring[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019: 2965-2974.


猜你喜欢

转载自blog.csdn.net/Skies_/article/details/105011051