来源:paper, MSRA & PKU, ECCV 2018
一些讲解
作者讲解
作者认为数据驱动的方式讷讷够提高准确性并且带来更强的适应性,即将原来人工智能系统各个模块中手工设置的部分改由可学习的参数。本文主要针对特征提取部分,例如ROI Pooling方法。
区域特征提取的一般化视角
基于区域的物体检测方法步骤总结为:图像特征生成、候选区域生成、区域特征提取、区域识别和重复检测去除。在区域特征提取步骤中会根据候选区域和图像特征通过人为的方式(池化、对齐池化、可形变池化等)提取出子区域的特征。但需要注意的是子区域可能并不具有固定的形状,甚至需要考虑相邻区域的特征。
数据驱动的区域特征学习
普通池化和对齐的区域池化完全是人工设计的,可形变的区域池化引入了可学习模块,但形式仍然限制在规则的网格形状。本文尝试用最少的人工设计学习权重的设置。建模时引入了注意力模型,希望能够衡量远距离或者性质各异的元素间的依赖关系。大量实验表明,注意力模型可以很好地对区域和图像位置间的几何关系进行建模。
论文阅读
Abstract
- 提出了一种统一观点整合了所有的区域特征提取方法
- 提出了一种端到端可训练的区域特征提取新方法
- 作者目标是希望实现完全可学习的目标检测
Introduction
- 基于region的物体检测实现:image feature generation, region proposal generation, region feature extraction, region recognition, and duplicate removal.
- 目前区域特征提取步骤
- RoI pooling方法及其变种
- 可形变RoI pooling(Deformable convolutional networks. ICCV 2017)
- 优点:引入了基于框的offset使得RoI特征提取可学习
- 不足:仍然采用的基于网格的pooling方法,可学习部分闲置于offset
- 本文将区域特征提取步骤进行了完全的可学习处理,contribution:
- 一种综合形式看区域特征提取过程,每个盒子区域的特征看作是整个图像不同位置特征的加权和
- 考虑到RoI和图像特征的可学习权重模块,权重收到两方面影响:RoI和图像位置的几何关系(通过注意力模型建模,借鉴Relation和Attention),图像特征本身(通过一层卷积实现,借鉴Deformable)
- 最初的实现计算量很大,通过稀疏采样来环节计算压力
关于区域特征提取的通用视角
图像特征提取过程输出feature maps x \mathbf{x} x, H × W × C f H\times{W}\times{C_{f}} H×W×Cf,然后提取RoI,每一个都是一个四维向量表示的锚点框 b b b。因此,区域特征提取步骤可以写作
(1) y ( b ) = RegionFeat ( x , b ) \mathbf{y}(b)=\text{RegionFeat}(\mathbf{x},b)\tag{1} y(b)=RegionFeat(x,b)(1)
得到的结果 y ( b ) \mathbf{y}(b) y(b) 维度为 K × C f K\times{C_{f}} K×Cf。
推广以上结论,可以让这个区域不具有规则的形状,区域特征 y k ( b ) \mathbf{y}_{k}(b) yk(b) 也不必限制于特征的空间位置,即参与计算的部分不必是RoI本身。因此,通用的计算公式把这个过程看做是一个图像特征在support区域 Ω b \Omega_{b} Ωb 的加权和
(2) y k ( b ) = ∑ p ∈ Ω b w k ( b , p , x ) ⊙ x ( p ) \mathbf{y}_{k}(b)=\sum_{p\in\Omega_{b}}w_{k}(b,p,\mathbf{x})\odot\mathbf{x}(p)\tag{2} yk(b)=p∈Ωb∑wk(b,p,x)⊙x(p)(2)
这里的support区域 Ω b \Omega_{b} Ωb 可以视RoI本身,也可以包括更多区域, w k ( b , p , x ) w_{k}(b,p,\mathbf{x}) wk(b,p,x) 代表权重,满足归一化条件, i . e . , ∑ p ∈ Ω b w k ( b , p , x ) = 1 i.e.\text{, }\sum_{p\in\Omega_{b}}w_{k}(b,p,\mathbf{x})=1 i.e., ∑p∈Ωbwk(b,p,x)=1。
至此,Regular RoI Pooling, Spatial Pyramid Pooling, Aligned RoI Pooling, Deformable RoI Pooling都可以看作是这个公式的特例。
其他相关工作
除了上面提到的RoI Pooling方法,还有好多区域特征提取方法都可以看作是以上公式的特例
- Region Feature Extraction in One-stage Object Detection(基于单阶段或多滑窗的模型)
- Pooling using Non-grid Bins(和最初的pooling类似,但是尝试使用了非网格结构)
- MNC(加入了mask,相当于放宽了权重归一化的限制)
- Position Sensitive RoI Pooling(只选取了channel的子集进行计算)
学习区域特征 Learning Region Features
- 目标:寻找一种针对 Eq.(2) \text{Eq.(2)} Eq.(2) 的加权方式,使他能够最大程度的减少人为带来的随机性
- 影响权重的因素
- 位置 p p p 和 RoI box b b b 的几何关系,这是十分重要的因素。(例如: b b b 中的位置应当占更大的权重)
- 图像的特征 x \mathbf{x} x 应当被自适应地使用(这一点来自于 deformable)
基于以上考虑,权重的计算被设计为:
(7) w k ( b , p , x ) ∝ exp ( G k ( b , p ) + A k ( x , p ) ) w_{k}(b,p,\mathbf{x})\propto\exp(G_{k}(b,p)+A_{k}(\mathbf{x},p))\tag{7} wk(b,p,x)∝exp(Gk(b,p)+Ak(x,p))(7)
-
G k ( b , p ) G_{k}(b,p) Gk(b,p)
(8) G k ( b , p ) = < W k b o x ⋅ E b o x ( b ) , W i m ⋅ E i m ( p ) > G_{k}(b,p)=\big<W_{k}^{box}\cdot\mathcal{E}^{box}(b),W^{im}\cdot\mathcal{E}^{im}(p)\big>\tag{8} Gk(b,p)=⟨Wkbox⋅Ebox(b),Wim⋅Eim(p)⟩(8)
用来表示几何关系信息,共分三步:
-
框和图片中的位置信息被嵌入到高维空间中(类比Relation和Attention),通过以下的正弦和余弦函数完成
E 2 i ( z ) = sin ( z 100 0 2 i / C ε ) , E 2 i + 1 ( z ) = cos ( z 100 0 2 i / C ε ) \mathcal{E}_{2i}(z)=\sin(\frac{z}{1000^{2i/C_{\mathcal{\varepsilon}}}})\text{, }\mathcal{E}_{2i+1}(z)=\cos(\frac{z}{1000^{2i/C_{\mathcal{\varepsilon}}}}) E2i(z)=sin(10002i/Cεz), E2i+1(z)=cos(10002i/Cεz)
嵌入向量 E ( z ) \mathcal{E}(z) E(z) 的维度为 C ε , i ∈ [ 0 , C ε / 2 − 1 ] C_{\mathcal{\varepsilon}}\text{, }i\in[0, C_{\mathcal{\varepsilon}}/2-1] Cε, i∈[0,Cε/2−1]。根据图片位置的二维坐标,图片位置 p p p 被嵌入到 2 ⋅ C ε 2\cdot{C_{\mathcal{\varepsilon}}} 2⋅Cε 维的向量 E i m ( p ) \mathcal{E}^{im}(p) Eim(p);同理,RoI box b b b 被嵌入到四维坐标对应的 4 ⋅ C ε 4\cdot{C_{\mathcal{\varepsilon}}} 4⋅Cε 维向量 E b o x ( p ) \mathcal{E}^{box}(p) Ebox(p)。
-
嵌入向量 E \mathcal{E} E 分别通过可学习的线性变换矩阵 W W W 将维度转变为 C g C_{g} Cg。这里因为 box 的转化维数太多,因此做了转换 W k b o x = W ^ k b o x V b o x W_{k}^{box}=\hat{W}_{k}^{box}V^{box} Wkbox=W^kboxVbox,其中 V b o x V^{box} Vbox 被所有部分共享,输出的维度为 C ε C_{\varepsilon} Cε
-
最终,使用内积结果作为几何关系的权重
作者说 Eq.(8) \text{Eq.(8)} Eq.(8) 实际上是一个注意力模型,可以很好用来在远距离和各种元素之间捕捉依赖关系【这个方法应该是Relation、Attention一致的】,在这里被用来建立4D-bounding box和2D的图像位置之间的联系。
-
-
A k ( x , p ) A_{k}(\mathbf{x},p) Ak(x,p)
这一项自适应地使用图像特征,通过在图像特征上作用 1 × 1 1\times{1} 1×1 的卷积A k ( x , p ) = W k a p p ⋅ x ( p ) A_{k}(\mathbf{x},p)=W_{k}^{app}\cdot\mathbf{x}(p) Ak(x,p)=Wkapp⋅x(p)
整体的网络结构图可以表示为
![region 网络图](https://i-blog.csdnimg.cn/blog_migrate/b46928d59b2125cd74e83d93641d1a4a.png)
复杂度分析与高效实现
参数默认值与复杂度计算结果为
![region 复杂性](https://i-blog.csdnimg.cn/blog_migrate/e3d6b2947d0033d8121e5502a0941b2f.png)
最原始的实现方式要计算 Ω b \Omega_{b} Ωb 区域内的所有位置,当这个区域扩展到全图范围时复杂度会急剧增加。因此考虑采用稀疏化的方式对区域中的位置进行采样,RoI内部的位置采样密度会大于RoI外部,这样得到 Ω b = Ω b i n ∩ Ω b o u t \Omega_{b}=\Omega_{b}^{in}\cap\Omega_{b}^{out} Ωb=Ωbin∩Ωbout(这时, Ω b o u t \Omega_{b}^{out} Ωbout 也可以被理解为表示RoI的上下文信息,同时这个集合也可以为空或者扩展到整个图像)
实验
使用COCO2017进行实验,基于Faster R-CNN和FPN。作者在训练时提到了
In both Faster R-CNN and FPN, to facilitate experiments, separate networks are trained for region proposal generation and object detection, without sharing their features.
【这是正确的训练方法吗?】
Ablation Study
Support Region Ω \Omega Ω
![region 对比](https://i-blog.csdnimg.cn/blog_migrate/de3e9a4a3a821eeeb861ac0ec162db37.png)
- 应用此方法超越了原始的方法【这个幅度看起来不像是什么明显效果啊?论文中也特别说明不和deformable进行比较,为什么?】
- 使用更大的support regions能够带来提升,也就是考虑上下文信息是有效的
稀疏采样
![region 稀疏有效性](https://i-blog.csdnimg.cn/blog_migrate/95544091a98edc85b22d6699af6d27ec.png)
几何关系以及特征表现项
![region 几何关系等](https://i-blog.csdnimg.cn/blog_migrate/93fdada19319a4937e1f54a140bac0bc.png)
只有加入特征表现项之后才能轻微的超过deformable的水平
增强backbone
![region 增强backbone](https://i-blog.csdnimg.cn/blog_migrate/b227f0c2dd40ad7dd9fc7b2bfd6a199a.png)
【真的有必要展示这样一个实验吗?】
学到了什么
-
weight
-
geometric and appearance terms
除了以上结果,作者同时使用了KL散度证明了weight的分布和ground truth的分布之间的关系
- 不同的部分关注到了不同的空间位置,大的物体效果更加明显
- 所有部分权重的集合被学习得和物体mask很像的(作者说这有些类似实例分割)