Guided Anchoring 论文笔记
前言
作者提出设计anchor时的两个准则:
- aligment——使用卷积特征作为anchor的表示特征,anchor的中心要与特征图中的像素对齐;
- consistency——在特征图的不同位置,感受野的大小是一致的,因此不同位置anchor的尺度和形状也要保持一致。
本文希望得到的是稀疏的、根据位置可变的anchor。作者观察到,图像中的目标并不是均匀分布的,目标的尺度与图像的内容、场景的位置及几何形状密切相关。由此作者提出生成稀疏的anchor的步骤:
- 首先确定可能包含目标的子区域;
- 然后确定不同位置anchor的形状。
这种方式可以让anchor自己学习形状的设计,但是这违背了之前提到的consistency这一准则。anchor的尺度和长宽比现在是可变的,那么不同的特征图的像素要根据相对应的anchor学习调整特征表示。本文设计了feature adaption模块来修正特征图使之与 anchor 形状更加匹配。
本文做出的贡献:
- 本文提出了新的anchor机制,可以预测稀疏的、任意形状的anchor;
- 将anchor的联合分布分解为两个条件分布,并分别使用模型进行建模;
- 设计feature adaption模块来修正特征图使之与 anchor 形状更加匹配;
- 研究了two-stage检测器高质量的proposal,并提出一种提高已训练的模型的性能。
Guided Anchoring
一个anchor的形状和位置可以由(x,y,w,h)(x,y,w,h)(x,y,w,h)来表示,其中(x,y)(x,y)(x,y)是anchor中心点的坐标,www和hhh分别是宽和高。给定一个输入图像III,anchor的分布可以被分解为两个条件分布:
anchor的概率分布被分解为两个条件概率分布,也就是给定图像特征之后anchor中心点的分布,和给定图像特征和中心点之后anchor形状的概率分布。根据这个公式,anchor的预测可以被分为两个步骤,anchor位置预测和形状预测。anchor生成模型的结构如下:
图中红色虚线框内的部分就是anchor生成模型,它包括位置预测分支和形状预测分支。给定一个输入图像III,首先得到特征图FIF_{I}FI,位置预测分支在FIF_{I}FI上生成一个概率map,说明目标可能会出现的位置;形状预测分支在这些位置上预测最有可能出现的形状。后来结合两个分支的输出结果,通过比较预测的概率值超过一定阈值来得到一些可能的位置,然后在这些位置上结合最有可能的形状来生成一系列anchor。之后采用feature adaption模块,根据anchor的形状来对特征进行调整,得到新的特征图FI′F^{'}_{I}FI′供之后的预测(anchor 的分类和回归)使用。
anchor生成模型结合了FPN,在多层级的特征图上进行anchor的生成。同时,anchor生成的参数在所有层级之间都是共享的,因此效率较高。
1. anchor位置的预测
位置预测分支生成一个和输入特征图FIF_{I}FI大小相同的概率map p(⋅∣FI)p(·|F_{I})p(⋅∣FI),在概率map上的概率值p(i,j∣FI)p(i,j|F_{I})p(i,j∣FI)与原始输入图像III上的点((i+1/2)s,(j+1/2)s)((i+1/2)s,(j+1/2)s)((i+1/2)s,(j+1/2)s)相对应,其中sss是特征图的步长。这个概率值说明了目标中心在这个位置上存在的可能性的大小。
p(i,j∣FI)p(i,j|F_{I})p(i,j∣FI)由子网NLN_{L}NL产生,这个子网在FIF_{I}FI上采用1 × 1的卷积得到objectness score的map,然后通过一个element-wise的sigmoid函数转换为概率值。虽然一个更深的子网可以得到更精确的预测结果,但这种方法可以使速度和精度之间达到平衡。
基于概率map p(⋅∣FI)p(·|F_{I})p(⋅∣FI),如果一些概率值超过了阈值ϵL\epsilon_{L}ϵL,那么就选择这些概率值对应的位置作为目标中心可能存在的位置。这一步可以在保持召回率的条件下过滤掉90%的区域。在inference时,用masked conv替代普通的conv,以提高速度。
2. anchor形状的预测
在确定了目标可能会出现的位置后,接下来就是判断相应位置anchor可能的形状。形状预测分支与边界框回归是不同的,它没有改变anchor的位置,因此不会造成anchor与特征图之间不匹配的问题。给定一个特征图FIF_{I}FI,这个分支会在每个位置上预测出一个最佳形状(w,h)(w,h)(w,h),预测出的形状可能会与最近的gt产生较高的IoU。但是由于www和hhh的范围太大了,直接预测的话会非常不稳定。因此采用如下的转换:
形状预测分支输出的就是dwdwdw和dhdhdh,然后通过上式映射到(w,h)(w,h)(w,h),其中sss是步长,σ\sigmaσ是缩放因子,在这里σ=8\sigma=8σ=8。该非线性转换将输出的空间从[0,1000]映射到[-1,1],得到稳定的学习目标 。该分支通过一个1 × 1 × 2的子网NSN_{S}NS进行预测,得到dwdwdw和dhdhdh,然后通过上式进行转换。
通过该方法,一个位置只预测一个形状动态变化的anchor,实验证明,由于位置和形状之间的密切联系,guided anchoring具有更高的召回率,并且能更好的捕捉具有极端大小目标的信息。
3. feature adaption
在RPN或者一些single-stage检测器中,每个位置上anchor的尺度和形状都是相同的,因此特征图的表示是一致的。而在本文的机制中,每个位置上anchor的形状各有不同,和特征不能特别好的匹配;另外,因为接下来的分类和回归是基于预测出的anchor来做的,但特征图并不知道形状预测分支预测的anchor的形状,因此不能继续像以前一样用一个全卷积分类器作用在特征图上。
本文提出feature adaption模块,基于每个位置的anchor形状来调整特征的形状,就是把 anchor 的形状信息直接融入到特征图中,这样新得到的特征图就可以去适应每个位置 anchor 的形状:
其中fif_{i}fi是第iii个位置的特征,(wi,hi)(w_{i},h_{i})(wi,hi)是该位置上对应的anchor的形状。
为了实现这个变换,采用了一个3 × 3 的可变卷积层(deformable convolutional)NTN_{T}NT,如上图所示。首先根据形状预测分支的输出预测一个offset field,然后将原始的特征图FIF_{I}FI通过NTN_{T}NT并结合offset field得到FI′F^{'}_{I}FI′,最后在FI′F^{'}_{I}FI′上进行分类与回归。注意,可变卷积的offset field是通过anchor的w和h经过一个1×1的卷积得到的。
Training
1. 损失函数
训练是端到端的,使用的是多任务损失函数。除了分类损失LclsL_{cls}Lcls和回归损失LregL_{reg}Lreg之外,还引入了另外两个loss,分别是anchor定位损失LlocL_{loc}Lloc和anchor形状预测损失LshapeL_{shape}Lshape。总loss为:
2. anchor的定位
为了训练anchor定位分支,每个图像需要一个binary lable map,其中1表示可以把一个anchor放到这个位置上,0则相反。首先,将gt box (xg,yg,wg,hg)(x_{g},y_{g},w_{g},h_{g})(xg,yg,wg,hg)映射到对应的特征图上的尺度为(xg′,yg′,wg′,hg′)(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)是中心点,www和hhh分别是宽和高。anchor越接近gt box的中心越好,这样可以得到较大的IoU,因此为每个gt box设计了如下三种区域:
- 中心区域CR=R(xg′,yg′,σ1w′,σ1h′)CR=R(x_{g}^{'},y_{g}^{'},\sigma_{1}w^{'},\sigma_{1}h^{'})CR=R(xg′,yg′,σ1w′,σ1h′),也就是gt box靠近中心部分的区域,如图中的绿色区域。在CRCRCR中的像素都是正样本;
- 忽略区域IR=R(xg′,yg′,σ2w′,σ2h′)IR=R(x_{g}^{'},y_{g}^{'},\sigma_{2}w^{'},\sigma_{2}h^{'})IR=R(xg′,yg′,σ2w′,σ2h′)\ CRCRCR,其中σ2>σ1\sigma_{2}>\sigma_{1}σ2>σ1。IRIRIR比CRCRCR大,但不包含CRCRCR,如图中的黄色区域。IRIRIR中的像素在训练时是被忽略的;
- 外部区域OROROR,就是特征图除IRIRIR和CRCRCR之外的部分,如图中的灰色区域。OROROR中的像素都是负样本。
guided anchoring框架使用的FPN,也就是有多尺度的特征图,因此每个层级的特征图上都是需要预测anchor的位置的。每个层级的特征图只能负责预测特定尺度范围的目标,因此还要考虑邻近的特征图的影响。具体来说就是,如果一个目标的尺度落入某个层级特征图所负责的尺度范围,就把gt box映射到这个特征图上,把CRCRCR也分配到这个特征图上;在与这个特征图相邻的特征图上,将相同区域设为IRIRIR,如上图所示。当某个层级上有多个目标重叠时,CRCRCR可以抑制IRIRIR,IRIRIR可以抑制OROROR。
由于CRCRCR只负责整个特征图上的一小部分,因此用focal loss来训练定位分支。
3. anchor的形状
确定anchor的最佳形状需要两个步骤:
- 将anchor与gt box匹配;
- 预测anchor的宽和高,使其能更好的覆盖匹配的gt box。
按照之前的做法,通过计算anchor与所有gt box之间的IoU,然后将anchor分配给IoU最大的那个gt box。但是这种方法并不适用于现在的anchor,因为现在的anchor的www和hhh是不确定的,是需要预测的变量。为了解决这个问题,重新定义IoU,将anchor awh=a_{wh}=awh={(x0,y0,w,h)∣w>0,h>0(x_{0},y_{0},w,h)|w>0,h>0(x0,y0,w,h)∣w>0,h>0} 与gt box gt=(xg,yg,wg,hg)gt=(x_{g},y_{g},w_{g},h_{g})gt=(xg,yg,wg,hg)之间的IoU表示为:
其中IoUnormalIoU_{normal}IoUnormal是经典的IoU定义,www和hhh是变量。对于任意一个anchor与gt,计算它们之间的vIoU是很复杂的,也不可能把www和hhh遍历一遍求最大值,因此采用了近似的方法。对于一个给定的anchor (x0,y0)(x_{0},y_{0})(x0,y0),采样一些www和hhh的可能值,然后计算这些采样的anchor与gt之间的IoU,取最大值作为vIoU的近似。理论上,采样的组数越多,近似的效果越好,但出于效率的考虑,训练时共采样了9组(w,h)(w,h)(w,h)。作者通过实验发现,最终结果对采样的组数这个超参并不敏感,也就是说不管采样多少组,近似效果已经足够。
形状预测分支的损失函数是bounded iou loss的变体:
其中(w,h)(w,h)(w,h)是预测的anchor的形状,(wg,hg)(w_{g},h_{g})(wg,hg)是它对应的gt box的形状。L1L_{1}L1是smooth L1 loss。
高质量的proposal
GA-RPN(由guided anchoring强化过的RPN)可以生成质量更高的proposal,本文研究如何利用这些高质量的proposal来提升two-stage检测器的性能。
上图展示了RPN和GA-RPN生成的proposal的IoU分布,可以看到GA-RPN有两个明显的优点:
- 正样本更多;
- 高IoU的proposal比例更显著;
那么自然而然地就会产生这样一个想法:用GA-RPN代替现有模型中的RPN,然后进行端到端的训练。但是实验证明,这种做法带来的效果的提升比较有限。通过观察发现,使用高质量proposal的先决条件是根据proposal的分布进一步调整训练样本的分布。因此,相比RPN,训练GA-RPN时改进的地方有两点:
- 减少proposal的数量;
- 增大练时正样本的 IoU 阈值(这个更重要)。既然在top300里面已经有了很多高IoU的proposal,那么何必用1000个框来训练和测试,既然proposal们都这么优秀,那么让IoU标准严格一些也未尝不可。
参考
作者自己写的论文解读
Guided Anchoring 论文笔记相关推荐
- 【论文阅读】Region Proposal by Guided Anchoring
论文地址:https://arxiv.org/abs/1901.03278v2 代码地址: mmdetection (https://github.com/open-mmlab/mmdetection ...
- 【论文阅读】GA-RPN:Region Proposal by Guided Anchoring
论文名称:Region Proposal by Guided Anchoring 作者: Jiaqi Wang \ Kai Chen \ Shuo Yang \ Chen Change Loy \ D ...
- 显著性应用--论文笔记--2019--Aesthetic guided deep regression network for image cropping
论文信息: 作者:Peng Lua, Hao Zhanga, XuJun Pengb, Xiang Penga 期刊:Signal Processing: Image Communication 任务 ...
- 经验 | 深度学习中从基础综述、论文笔记到工程经验、训练技巧
点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:本文授权转自知乎作者跑者小越,https://zhuanla ...
- 从基础综述、论文笔记到工程经验、训练技巧:值得一看的目标检测好文推荐...
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文授权转自知乎作者跑者小越,https://zhuanlan.z ...
- 论文笔记(一):Temporal Network Embedding with High-Order Nonlinear Information
论文笔记(一):Temporal Network Embedding with High-Order Nonlinear Information 论文标题:Temporal Network Embed ...
- [深度学习论文笔记]医学图像分割U型网络大合集
[深度学习论文笔记]医学图像分割U型网络大合集 2015 U-Net: Convolutional Networks for Biomedical Image Segmentation (MICCAI ...
- 【目标检测系列:十】Anchor Free | GARPN | Region Proposal by Guided Anchoring
CVPR 2019 商汤 Region Proposal by Guided Anchoring https://github.com/open-mmlab/mmdetection DCN ancho ...
- 【论文笔记 2】CNN经典入门STRIVING FOR SIMPLICITY: THE ALL CONVOLUTIONAL NET
[论文笔记 2]CNN经典入门STRIVING FOR SIMPLICITY: THE ALL CONVOLUTIONAL NET 1. 综述 对现代的CNN网络结构进行了简要说明,一般的网络都是由卷 ...
- ORB-SLAM3 论文笔记
ORB-SLAM3 论文笔记 这篇博客 ORB-SLAM3系统 相机模型的抽象(Camera Model) 重定位的问题 图片矫正的问题 视觉惯性SLAM的工作原理 相关公式 IMU初始化 跟踪和建图 ...
最新文章
- SAP SD基础知识之SD常见流程概述
- 虚拟机登服务器,用虚拟机登录云服务器
- 如何做好性能压测(一)丨压测环境设计和搭建
- JQuery中的样式操作
- 智能算法的研究与实现
- chrono0.10插件离线版_梁宝川:这11条anki插件的使用常识分享给你
- 前缀,中缀,后缀表达式求值
- 最近被安排搞搜索接口优化,压测了4次,才勉强达到要求~
- 智能一代云平台(十九):选修课---类似秒杀的高并发业务
- poj-3185-开关问题
- 使用Axure设计中,大型的后台系统原型总结
- js中将html文档写入静态界面当中
- 极简darknet环境搭建记录
- python基础语法看一篇就够了,全网最全python语法笔记汇总
- 浙江海洋大学计算机 周斌,浙江海洋大学2018年硕士研究生调剂拟录取名单公示(一)...
- 苹果 Apple Beta 版软件计划 相关软件地址
- 思科模拟器Cisco Packet Tracer交换机的端口聚合配置
- 【读书笔记】《大型互联网企业安全架构(石祖文)》
- 正向代理与反向代理通俗版解释
- 字节跳动后端面经(18)