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


简介

在这里插入图片描述

图1:论文原文

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


0. Abstract

当前 A n c h o r {\rm Anchor} Anchor- B a s e d {\rm Based} Based的目标检测方法会使用预先设定大小和宽高比的 A n c h o r {\rm Anchor} Anchor,然后将大量 A n c h o r {\rm Anchor} Anchor密集地铺在图像上,找出最适合的 A n c h o r {\rm Anchor} Anchor进行分类和回归。论文提出一种高效的方法用以指导 A n c h o r {\rm Anchor} Anchor的生成,同时预测目标的中心区域即大小和宽高比。此外,使用特征自适应模块缓解特征不平衡的问题。该方法可以集成到 A n c h o r {\rm Anchor} Anchor- B a s e d {\rm Based} Based的目标检测方法中。实验结果为在 M S   C O C O {\rm MS\ COCO} MS COCO数据集上, F a s t   R {\rm Fast\ R} Fast R- C N N {\rm CNN} CNN F a s t e r   R {\rm Faster\ R} Faster R- C N N {\rm CNN} CNN R e t i n a N e t {\rm RetinaNet} RetinaNet m A P {\rm mAP} mAP分别提高 2.2 % {\rm 2.2\%} 2.2% 2.7 % {\rm 2.7\%} 2.7% 1.2 % {\rm 1.2\%} 1.2%

本文贡献:(一)提出一种新的 A n c h o r {\rm Anchor} Anchor生成机制;(二)将 A n c h o r {\rm Anchor} Anchor的铺设公式化,即避免在图像上产生大量密集的、无用的 A n c h o r {\rm Anchor} Anchor;(三)基于特征与 A n c h o r {\rm Anchor} Anchor对齐的重要性,设计特征适配模块细化特征;(四)针对两阶段目标检测方法提出高效的区域生成方法。


1. Introduction

当前 A n c h o r {\rm Anchor} Anchor- B a s e d {\rm Based} Based的目标检测方法使用 A n c h o r {\rm Anchor} Anchor作为分类和回归的基础,而设计 A n c h o r {\rm Anchor} Anchor具有两个准则:对齐和一致。对齐是指 A n c h o r {\rm Anchor} Anchor中心与特征图像素对齐,即通常将特征图中的每个像素作为 A n c h o r {\rm Anchor} Anchor的中心。一致是指 A n c h o r {\rm Anchor} Anchor的大小和宽高比要与感受野一致,即 A n c h o r {\rm Anchor} Anchor的设计要符合数据集中目标的大小和形状。滑动窗口是一种常用的方法,通常在特征图上的每个像素位置铺设 k k k个预先指定大小和宽高比的 A n c h o r {\rm Anchor} Anchor

作者指出,上述方法可能存在以下问题:(1)由于 A n c h o r {\rm Anchor} Anchor的大小和形状依赖预先设定,设计不当将会影响模型的速度和精度;(2)大量仅含背景的 A n c h o r {\rm Anchor} Anchor会增加计算量。论文提出一种高效的方法以指导 A n c h o r {\rm Anchor} Anchor生成。受到如下启发:目标并非均匀地分布在图像上,目标的大小和宽高比与图像内容、位置、几何场景密切相关。该方法分为两步:首先确定可能存在目标的子区域,然后确定其形状。如果将 A n c h o r {\rm Anchor} Anchor的大小和宽高比当做变量,则对于特征图上的每个像素,对应 A n c h o r {\rm Anchor} Anchor需要自适应确定。论文提出 G A {\rm GA} GA- R P N {\rm RPN} RPN方法( G u i d e d   A n c h o r i n g {\rm Guided\ Anchoring} 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} Region Proposal Network)解决上述问题。


2. Related Work

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


3. Guided Anchoring

G u i d e d   A n c h o r i n g {\rm Guided\ Anchoring} Guided Anchoring的流程如下:一个 A n c h o r {\rm Anchor} Anchor可由 ( x , y , w , h ) (x,y,w,h) (x,y,w,h)确定。现假设某个目标来自图像 I 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,w,hI)=p(x,yI)p(w,hx,y,I)(3.1)

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

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

图2:方法框架

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

3.1 Anchor Location Prediction

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

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

3.2 Anchor Shape Prediction

3.1 3.1 3.1部分得到目标的大致位置后,现在开始预测可能的大小和宽高比。 N S N_S NS分支针对特征图 F I F_I FI上的每个位置预测合适的 ( w , h ) (w,h) (w,h)。由于目标大小和尺寸的多样性,这里不直接预测 w w w h 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} w=σsedw,  h=σsedh(3.2)

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

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

3.3 Anchor-Guided Feature Adaptation

在特征图 F I F_I FI上,不同位置的目标大小和宽高比变化可能很大。直觉上,较大的 a n c h o r {\rm anchor} anchor对应于较大的区域;较小的 a n c h o r {\rm anchor} anchor对应于较小的区域。基于此,作者提出一个特征自适应模块,根据 a n c h o r {\rm anchor} 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} fi=NT(fi,wi,hi)(3.3)

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

在这里插入图片描述

图3:DCN

i n p u t   f e a t u r e   m a p {\rm input\ feature\ map} input feature map后接两个分支。上面分支通过卷积产生一个和输入特征图大小相同、通道数为 2 N 2N 2N的偏移(对应 N N N x x x y y y方向上的偏移)。将偏移作用于输入特征图上的卷积核后,卷积核变为输出特征图上的蓝框。 D C N {\rm DCN} 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=λ1Lloc+λ2Lshape+Lcls+Lreg(3.4)

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

Anchor location targets,为了训练 N L N_L NL分支,针对每幅图像使用一个二值标签图( 1 1 1表示有效位置、 0 0 0反之),这里使用标注框指导标签图的生成。对于标注框 ( x g , y g , w g , h g ) (x_g,y_g,w_g,h_g) (xg,yg,wg,hg),其映射到对应特征图上为 ( x g ′ , y g ′ , w g ′ , h g ′ ) (x_g^{'},y_g^{'},w_g^{'},h_g^{'}) (xg,yg,wg,hg),令 R ( x , y , w , h ) R(x,y,w,h) R(x,y,w,h)表示中心在 ( x , y ) (x,y) (x,y)、宽高为 ( w , h ) (w,h) (w,h)的矩形框。而 a n c h o r {\rm anchor} anchor要尽可能放置到邻近标注目标中心的区域,以获得更大的 I o U {\rm IoU} IoU。这里定义 3 3 3中类型的区域:

(1) C R = R ( x g ′ , y g ′ , σ 1 w ′ , σ 1 h ′ ) CR=R(x_g^{'},y_g^{'},σ_1w^{'},σ_1h^{'}) CR=R(xg,yg,σ1w,σ1h)表示框的中心区域, C R CR CR内的像素为正样本;

(2) I R = R ( x g ′ , y g ′ , σ 2 w ′ , σ 2 h ′ ) IR=R(x_g^{'},y_g^{'},σ_2w^{'},σ_2h^{'}) IR=R(xg,yg,σ2w,σ2h)是一个不包含 C R CR CR的更大的区域( σ 2 > σ 1 {σ_2>σ_1} σ2σ1), I R IR IR内的像素为忽略;

(3)除去 C R CR CR I R IR IR区域内的像素为负样本。

基于 D e n s e B o x {\rm DenseBox} DenseBox的思想,每层特征图仅对应于特定大小范围的 a n c h o r {\rm anchor} anchor,这个问题在FCOS中也有相应的讨论。所以,论文将 C R CR CR分配到对应的特征层,而 I R IR IR被分配到相邻层的对应区域。这样, C R CR CR能够抑制 I R IR IR I R IR IR能够抑制 O R OR OR。(我的理解是,将相邻层对应区域置为 I R IR IR后可以改善 a n c h o r {\rm anchor} anchor分配的模糊性问题)。由于 C R CR CR往往对应特征图上的一个较小区域,而 O R OR OR区域相对较大, N L N_L NL分支的损失函数采用 F o c a l   L o s s {\rm Focal\ Loss} Focal Loss形式。

在这里插入图片描述

图4:3种区域

Anchor shape targets,这里分两步确定 a n c h o r {\rm anchor} anchor的形状:将 a n c h o r {\rm anchor} anchor分配到标注框和预测宽高。常用做法是通过 I o U {\rm IoU} IoU a n c h o r {\rm anchor} anchor分配到标注框。由于这里 w w w h h h的值没有确定,作者将 I o U {\rm IoU} 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} vIoU(awh,gt)=w>0h>0maxIoUnormal(awh,gt)(3.5)

这里可变 a n c h o r {\rm anchor} 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\} awh={(x0,y0,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) gt=(xg,yg,wg,hg)。然后对于位置 ( x 0 , y 0 ) (x_0,y_0) (x0,y0),选择一系列 a n c h o r {\rm anchor} anchor常用的 w w w h h h值,遍历所有 ( w , h ) (w,h) (w,h),将与标注框的最大 I o U {\rm IoU} IoU作为 v I o U {\rm vIoU} vIoU值。实验中采用 9 9 9 ( w , h ) (w,h) (w,h)值同 R e t i n a N e t {\rm RetinaNet} RetinaNet设置,宽高比分别为KaTeX parse error: Undefined control sequence: \< at position 1: \̲<̲font size=3>{1:…、尺寸分别为该特征层对应大小的 { 2 0 , 2 1 / 3 , 2 2 / 3 } \{2^0,2^{1/3},2^{2/3}\} {20,21/3,22/3}

N S N_S NS分支的损失函数采用 L 1 L_1 L1形式: 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\left(1-{\rm min}\left(\frac{w}{w_g},\frac{w_g}{w}\right)\right)+L_1\left(1-{\rm min}\left(\frac{h}{h_g},\frac{h_g}{h}\right)\right)\tag{3.6} Lshape=L1(1min(wgw,wwg))+L1(1min(hgh,hhg))(3.6)

3.5 The Use of High-Quality Proposals

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

在这里插入图片描述

图5:RPN和GA-RPN


4. Experiments

在这里插入图片描述

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

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

在这里插入图片描述

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

这部分实验主要对比模型的设计,消融实验 1 1 1结果:

在这里插入图片描述

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

8 8 8显示了论文中所提出的各部分模块对最终结果的影响,其中 L . {\rm L.} L.为位置预测、 S . {\rm S.} S.为形状预测、 F . A . {\rm F.A.} F.A.为特征自适应模块。这部分实验主要对比 a n c h o r {\rm anchor} anchor位置的选取(即阈值),消融实验 2 2 2结果:

在这里插入图片描述

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

这部分实验主要对比 a n c h o r {\rm anchor} anchor形状的选取,消融实验 3 3 3结果:

在这里插入图片描述

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

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


5. Conclusion

论文提出一种 a n c h o r {\rm anchor} anchor生成机制,通过 a n c h o r {\rm anchor} anchor的位置引导生成 a n c h o r {\rm anchor} anchor的形状。此外,使用一个特征自适应模块保证训练的稳定性。实验结果为在当前的区域建议方法中表现 S O T A {\rm SOTA} SOTA

生成建议区域是两阶段目标检测算法中包含的阶段,论文实验结果也证明了 G A + R P N + F P N {\rm GA+RPN+FPN} GA+RPN+FPN的形式能够显著提升基于 R P N {\rm RPN} RPN两阶段目标检测算法的性能。论文中利用 a n c h o r {\rm anchor} anchor的位置引导生成 a n c h o r {\rm anchor} anchor的形状的思想很巧妙,同时配合 D C N {\rm DCN} DCN模块的使用也能够保证多尺度检测的问题。


参考

  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.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值