中心思想

继Relation Network实现可学习的nms之后,MSRA的大佬们觉得目标检测器依然不够fully learnable,这篇文章类似之前的Deformable ROI Pooling,主要在ROI特征的组织上做文章,文章总结了现有的各种ROI Pooling变体,提出了一个统一的数学表达式,藉由这个表达式,提出完全可学习,无人工设计的Region特征,据Han Hu大佬的讲座所说,这篇文章现在只是提出了一种行得通的方案,还没有研究清楚,性能比Deformable Conv那篇文章稍差一点点。

Region特征提取的总结和统一表达

一般地,region feature \(\mathbf{y}(b)\)的提取可以统一表达为如下的公式:
\[\mathbf{y}(b) = \text{RegionFeat}(\mathbf{x}, b)\]
这里x指的是输入特征,b是bbox。\(\mathbf{y}(b)\)的维度是\(K\times C_f\),通道数与输入特征一般相同,为\(C_f\)。注意,要特别关注自变量包含哪些东西,这里x是指整张特征图,而不只是box内的特征,譬如在Deformable ROI Pooling中就用到了box之外的特征。这个式子可以具体地表达为:
\[\mathbf{y}_k(b) = \sum_{p \in \Omega_b}w_k(b,p,\mathbf{x})\odot \mathbf{x}(p)\]
其中,\(\Omega_b\)表示支撑区域“supporting region”,也就是Pooling所用到的区域,p为区域中的每个位置,\(\odot\)表示element-wise相乘,k表示pooling后的第k个位置。也就是说,pooling后的每个位置,都是\(\Omega_b\)中每个位置的加权平均。
最原始的RoI Pooling,作者称之为Regular RoI Pooling,
\[w_k(b, p) =
\begin{cases}
1/|R_{bk}| & \text{ if $p \in R_{bk}$} \\
0 & \text{else}
\end{cases}\]
其中,\(R_{bk}\)是第k个bin的所有位置的几何。这种pooling的缺点是:由于空间上的下采样,难以区分非常靠近的RoIs。譬如,输入特征一般比原图缩小了16倍,如果两个RoI的距离小于16个像素,那么它们的\(R_{bk}\)完全相同,特征也就完全相同。
SPPNet中提出的Spatial Pyramid Pooling,跟原始RoI Pooling差不多,只是用了好几种bin的划分。
Aligned ROI Pooling,
\[w_k(b, p) = g(u_p, u_{bk}) \cdot g(v_p, v_{bk})\]
其中,\(g(a,b) = \max(0, 1-|a-b|)\))表示一维的双线性插值核,\((u_{bk}, v_{bk})\)表示每个bin的中心点,\(p=(u_p,v_p)\)表示整数坐标。比较好理解,就是对于某个浮点坐标,考虑其与四个相邻整数坐标的距离,再进行加权。注意,以上几种Pooling方式,权重都只是依赖几何信息,并不依赖输入特征本身。

Deformable RoI pooling为每个bin的中心学习一个偏移量\((\delta u_{bk}, \delta v_{bk})\),
\[w_k(b,p,\mathbf{x}) = g(u_p, u_{bk} + \delta u_{bk}) \cdot g(v_p, v_{bk} + \delta v_{bk})\]
PSRoI Pooling,与原始RoI Pooling不同的是,每个bin仅与输入特征通道的某个子集相关,可以表达为
\[\mathbf{y}_k(b) = \sum_{p \in \Omega_b}w_k(b,p,\mathbf{x}_k)\odot \mathbf{x}_k(p)\]
其中,\(\mathbf{x}_k\)仅包含x在通道轴上的某个子集,具体依据k来决定。

学习Region Features

重点来了,说了这么多,上面的各种变体说到底都是完全hand-crafted的。即使Deformable RoI pooling引入了一个可学习的组件,但其形式也很大程度上受限于一个规则的网络。本文的目标就是最大限度地减少手工的设计。

直觉上,影响\(w_k\)的因素有二:一是位置p与RoI box b的几何关系,例如,b内部的位置理应具有较高的权重;二是图像特征x应自适应地使用,这一点Deformable中已经做到了。因此,使用下列式子对\(w_k\)进行建模:
\[w_k(b,p,\mathbf{x}) \propto \exp(G_k(b,p)+A_k(\mathbf{x},p))\]
其中,第一项用来捕捉几何关系:
\[G_k(b,p) = \langle W^{\text{box}}_{k}\cdot \mathcal{E}^{\text{box}}(b), W^{\text{im}}\cdot \mathcal{E}^{\text{im}}(p) \rangle\]
这个式子分三步进行。首先,将box和图像坐标嵌入到一个高维空间中(Relation Network中也有类似操作)。
\[\mathcal{E}_{2i}(z) = \sin \Large ( \frac{z}{1000^{2i/C_{\mathcal{E}}}} \Large ), \quad \mathcal{E}_{2i+1}(z) = \cos \Large (\frac{z}{1000^{2i/C_{\mathcal{E}}}} \Large )\]
这个操作确实说不出太多道理,作者也说了这问题还没研究清楚。z是一个标量,ε(z)是一个\(C_ε\)维的向量,下标i的取值范围为0至\(C_ε/2-1\)。经过这一操作,一个图像坐标p的高维空间嵌入\(ε^im (p)\)的维度是\(2C_ε\),一个box b的高维空间嵌入\(ε^box (b)\)的维度是\(4C_ε\)。

而后,使用\(W^{\text{box}}_{k}\)和\(W^{\text{im}}_{k}\)分别对上面的两个向量作线性变换,变换到同一维度\(C_g\)。注意,这里k的数值是比较大的,一般是7x7,实例分割任务中甚至会取14x14,这样搞下来可学习的参数会比较多,所以作者寻思着共享一部分参数,\(W^{\text{box}}_k = \hat{W}^{\text{box}}_k V^{\text{box}}\), \(V^{\text{box}}\)没有下标k,所以是共享的,这样做也是比较符合直觉的,在保证输出维度不变的前提下能减少很多参数。

第二项使用图像特征,跟Deformable那篇是一样的,
\[A_k(\mathbf{x},p) = W^{\text{app}}_k \cdot \mathbf{x}(p)\]
\(W^{\text{app}}_k\)代表1x1卷积核的权重。

高效实现

上面这一系列骚操作,乍一看是非常费劲的。但仔细分析之下可以看到,\(A_k(\mathbf{x},p)\)和\(W^{\text{im}}\cdot \mathcal{E}^{\text{im}}(p)\)的计算对所有的RoI是可复用的。所以计算量主要来自计算权重时要跟特征图上的所有点两两进行计算,所以数量级是HW,可以去看原论文中的表,这里就不贴出来了,如果用这种naive的实现方式,计算量惊人。怎么办呢?很显然应该从HW上下手,手法是很符合直觉的,就是在RoI内部密集采样,而在RoI外部稀疏采样。如下图所示,数量级可以下降100倍左右!但个人认为不是所有的RoI都需要计算,因为一般只选取k个RoI进入到第二阶段,不选的就不必计算了,论文里好像没写这个,不过代码里想必是实现了的。

论文笔记:Learning Region Features for Object Detection的更多相关文章

  1. 论文笔记:Structure Inference Net: Object Detection Using Scene-Level Context and Instance-Level Relationships

    Structure Inference Net: Object Detection Using Scene-Level Context and Instance-Level Relationships ...

  2. 论文笔记之:Natural Language Object Retrieval

    论文笔记之:Natural Language Object Retrieval 2017-07-10  16:50:43   本文旨在通过给定的文本描述,在图像中去实现物体的定位和识别.大致流程图如下 ...

  3. 论文阅读 | FCOS: Fully Convolutional One-Stage Object Detection

    论文阅读——FCOS: Fully Convolutional One-Stage Object Detection 概述 目前anchor-free大热,从DenseBoxes到CornerNet. ...

  4. [论文理解] Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

    Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 简介 Faster R-CNN是很经典的t ...

  5. 论文笔记:Selective Search for Object Recognition

    与 Selective Search 初次见面是在著名的物体检测论文 「Rich feature hierarchies for accurate object detection and seman ...

  6. 轮廓检测论文解读 | Richer Convolutional Features for Edge Detection | CVPR | 2017

    有什么问题可以加作者微信讨论,cyx645016617 上千人的粉丝群已经成立,氛围超好.为大家提供一个遇到问题有可能得到答案的平台. 0 概述 论文名称:"Richer Convoluti ...

  7. 论文阅读之 DECOLOR: Moving Object Detection by Detecting Contiguous Outliers in the Low-Rank Representation

    DECOLOR: Moving Object Detection by Detecting Contiguous Outliers in the Low-Rank Representation Xia ...

  8. [论文理解]Focal Loss for Dense Object Detection(Retina Net)

    Focal Loss for Dense Object Detection Intro 这又是一篇与何凯明大神有关的作品,文章主要解决了one-stage网络识别率普遍低于two-stage网络的问题 ...

  9. 论文笔记:Ten years of pedestrian detection, what have we learned?

    最近正在研究行人检测,学习了一篇2014年发表在ECCV上的一篇综述性的文章,是对行人检测过去十年的一个回顾,从dataset,main approaches的角度分析了近10年的40多篇论文提出的方 ...

随机推荐

  1. 权限控制(delphi actionlist)

    权限控制(delphi TActionList方案)在软件开发中,为软件加入权限控制功能,使不同的用户有不同的使用权限,是非常重要的一项功能,由其在开发数据库方面的应用,这项功能更为重要.但是,要为一 ...

  2. 配置yum镜像源

    centos7配置本地yum源 先从官网下载centos7镜像 以centos7.4 为例 CentOS-7-x86_64-Everything-1804 [root@kangvcar ~]# mv ...

  3. .Netcore 2.0 Ocelot Api网关教程(3)- 路由聚合

    在实际的应用当中,经常会遇到同一个操作要请求多个api来执行.这里先假设一个应用场景:通过姓名获取一个人的个人信息(性别.年龄),而获取每种个人信息都要调用不同的api,难道要依次调用吗?在Ocelo ...

  4. 关于LINQ中SELECT NEW 的问题

    public static object SelectAnyInfo(){    DataAccessContext context = new DataAccessContext();    var ...

  5. powerDesigner关联数据库显示中文注释

    最近使用powerdesigner,遇到些问题,记录一下[安装过程就略过了] 一.安装odbc驱动 分享下驱动,百度网盘链接:https://pan.baidu.com/s/1UYPq_PEQkDOJ ...

  6. Spring Cloud health节点通过注册中心扫描状态的简单实现

    package com.zjs.web; import com.netflix.appinfo.InstanceInfo; import com.zjs.FallbackApiApplication; ...

  7. nRF5 SDK Bootloader and DFU moudles(1)

    在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行.可以初始化硬件设备.建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境. 在嵌 ...

  8. (5.13)mysql高可用系列——1主3从复制(SSL)

    目录: [0]需求 目前使用Mysql数据库,100GB+数据量,需要实现1主3从环境. 需要实现SSL安全复制,同时需要测试异常宕机切换演练 [1]实验环境 数据库架构:主从复制,基于主库搭建3个从 ...

  9. TUM 慕尼黑工业大学 MSEI 课程结构介绍 ws19/20

    本文内容 根据德文 tum 官网介绍:https://www.ei.tum.de/studium/master-ei-msei/ 翻译,提取并且翻译成中文信息. 本文适用于ws19/20届的学生. 概 ...

  10. PHP 协程:Go + Chan + Defer

    Swoole4为PHP语言提供了强大的CSP协程编程模式.底层提供了3个关键词,可以方便地实现各类功能. Swoole4提供的PHP协程语法借鉴自Golang,在此向GO开发组致敬 PHP+Swool ...