AAAI2019 | 基于区域分解集成的目标检测 论文解读
Object Detection based on Region Decomposition and Assembly
AAAI2019 | 基于区域分解集成的目标检测 论文解读

作者 | 文永亮
学校 | 哈尔滨工业大学(深圳)
研究方向 | 目标检测、GAN
推荐理由:
这是一篇发表于AAAI2019的paper,文章提出了一种R-DAD的方法来对RCNN系列的目标检测方法进行改进。
研究动机:
目前主流的目标检测算法分为1 stage和2 stage的,而2 stage的目标检测方法以Faster-RCNN为代表是需要RPN(Region Proposals Network)生成RoI(Region of Interests感兴趣区域)的,文章认为正是因为被遮挡了的或者不精确的Region Proposals导致目标检测算法的不准确。作者的想法动机其实很简单,就是假如一辆车的左边被人遮挡了,那么这辆车的右边带来的信息其实才是更可信的。基于这个想法,文章提出R-DAD(Region Decomposition and Assembly Detector),即区域分解组装检测器,来改善生成的Region Proposals。
R-DAD的网络结构:
文章以Faster-RCNN的网络结构为例,修改成它提出的R-DAD结构:

R-DAD网络架构主要分成两个模块MRP和RDA:
- MRP(Multi-Scale Region Proposal)模块,用来改善RPN生成的Region Proposals的准确率。

图一:MRP模块,框内分别对应S=0.7,1,1.2的Region Proposals
MRP表面意思就是生成多尺度的Region Proposal,方法很简单,就是使用传统的RPN生成一些建议框,然后用不同的缩放因子(文章使用了5种缩放因子作为一组s=[0.5,0.7,1,1.2,1.5])对生成出的建议框进行不同比例的缩小放大从而提高Region Proposals的多样性。如图一,生成了不同尺度的区域,有一些仅仅是局部有一些是大于目标本身的,但是这也带来了一个问题,就是原来的Region Proposals已经可以说是极大的数量了,再乘以五倍,想要网络能够完全利用这些建议框是不切实际的,作者最后还添加了RoI的采样层,对分数低的和跟ground truth重叠率低的进行了筛选。
由MRP网络生成的各种Region Proposals可以进一步适应目标之间因为空间变化所导致的特征变化,提高结构的鲁棒性。
- RDA(Region Decomposition and Assembly)模块,作者也称它为mutil-region-based appearance model,即基于多区域的外观模型,它可以同时描述一个物体的全局外观和局部外观,RDA分为目标分解和目标区域集成的两部分,目标分解如图二所示,把一个目标分为上下左右四个方向的分解部分

一般会先用线性插值两倍上采样之后再分解,后面作者给出了表格表示这样效果更好。左右刚好是特征图的左右一半,上下也同理,都会送入RAB模块,RAB模块如图三所示:

图三:RAB模块
其实就是下面这个函数:


其中p代表着上下左右的每一个部分或者组合后的部分如左-右(l/r)、下-上(b/u)和comb(l/r与b/u的组合),*是卷积操作,f()是ReLU单元。最后再取max,是为了融合了
和
的信息,生成同样大小的
。最后
就是代表着全局信息的scale为1生成的Region Proposals,一起送进RAB模块。这样整个网络结构就可以做到既捕捉到局部信息的同时,也不丢失全局信息。RAB模块是一个类似maxout的单元,理论上它可以逼近任何连续的函数,所以我们使用RAB而不是直接使用ReLU。这表明可以通过配置不同的分层地组合RAB模块来表示各种各样的目标特征。
损失函数:
对每一个框(box)d,我们都会通过IoU筛选出跟GT(ground truth)最匹配的d*,如果d跟任何的d*的IoU超过0.5,给予正标签
,若在0.1到0.5之间的,给予负标签。R-DAD的输出层对每一个框d都有四个参数化坐标和一个分类标签
。对于box regression来说,我们与以往目标检测的参数化一致如下:
同理,
是用来评估预测框和GT的差距的。跟训练RPN网络相似,R-DAD也需要最小化分类损失和回归损失,如下:




实验结果:
文章中做了各种设置的组合,关于MRP里缩放因子的组合、是否有RDA模块以及是否上采样,得分如下表所示:

与Faster-RCNN对比,作者使用了VOC07trainval和VOC12trainval数据集训练,再在VOC07test上测试,并且用了不同的特征提取器(VGG、ZF、Res101),得分均比Faster-RCNN高。

在速度方面均比Faster-RCNN慢。

与没有上下区域分解集成的R-DAD对比,有上下分解集成的误判率低很多,因为它在复杂情形下被遮挡物体会更有选择地相信得到的信息。


R-DAD的优点:
1.文章提出因为我们最大化目标在横向空间位置上局部特征的语义响应,与使用支持小区域的最大池化相比,在没有深层次结构的情况下,我们可以改善特征位置的空间不变性。我的理解就是作者取了上下左右四个方向的特征模板,最后对四个方向进行了融合语义信息,利用了横向空间上的空间不变性,揭示了不同方向上的语义关系。
2.在复杂场景下,如有目标对象被另一目标对象遮挡时,通过左右上下模板筛选出来的特征是更符合真实场景的,这样的Region Proposals也更加可信。
3.同时描述了全局特征和局部特征的语义信息,在RAB的组装上具有很强的可操作性,通过配置分层式地组装RAB模块,以及修改特征模板,特征的表达会更加灵活。
点评:
这个区域分解集成的算法令我觉得跟以前传统的人脸识别算法提取Haar-like特征有点异曲同工之处,同样都是把特征图分成上下两部分,然后做特征提取操作,都是定义了特定的特征模板,这就很容易理解为什么作者要做multi scale的操作了,因为在以前使用Haar/SIFT/HoG的时候,往往都需要使用muti scale来检测。
但是R-DAD为什么对特征只分成上下各一半,左右各一半这种特征模板,文章并没有给出令人信服的理由。尽管如此,这也是一个对目标检测的改进方向,通过MRP和RDA模块代替了之前的单纯的RPN网络,而且在不使用FPN(Feature Pyramid Networks)的情况下取得了不错的mAP,这样看来R-DAD是2 stage目标检测系列的另一种技巧,综合了横向空间上的语义信息。
AAAI2019 | 基于区域分解集成的目标检测 论文解读的更多相关文章
- 目标检测论文解读5——YOLO v1
背景 之前热门的目标检测方法都是two stage的,即分为region proposal和classification两个阶段,本文是对one stage方法的初次探索. 方法 首先看一下模型的网络 ...
- 目标检测论文解读1——Rich feature hierarchies for accurate object detection and semantic segmentation
背景 在2012 Imagenet LSVRC比赛中,Alexnet以15.3%的top-5 错误率轻松拔得头筹(第二名top-5错误率为26.2%).由此,ConvNet的潜力受到广泛认可,一炮而红 ...
- 目标检测论文解读10——DSSD
背景 SSD算法在检测小目标时精度并不高,本文是在在SSD的基础上做出一些改进,引入卷积层,能综合上下文信息,提高模型性能. 理解 Q1:DSSD和SSD的区别有哪些? (1)SSD是一层一层下采样, ...
- 目标检测论文解读13——FPN
引言 对于小目标通常需要用到多尺度检测,作者提出的FPN是一种快速且效果好的多尺度检测方法. 方法 a,b,c是之前的方法,其中a,c用到了多尺度检测的思想,但他们都存在明显的缺点. a方法:把每图片 ...
- 目标检测论文解读9——R-FCN
背景 基于ResNet 101的Faster RCNN速度很慢,本文通过提出Position-sensitive score maps(位置敏感分值图)来给模型加速. 方法 首先分析一下,为什么基于R ...
- 目标检测论文解读12——RetinaNet
引言 这篇论文深刻分析了one-stage的模型精度比two-stage更差的原因,并提出Focal Loss提高精度. 思路 在论文中,作者指出,造成one-stage模型精度差的原因主要是:正负样 ...
- 目标检测论文解读11——Mask R-CNN
目的 让Faster R-CNN能做实例分割的任务. 方法 模型的结构图如下. 与Faster R-CNN相比,主要有两点变化. (1) 用RoI Align替代RoI Pool. 首先回顾一下RoI ...
- 目标检测论文解读6——SSD
背景 R-CNN系列算法检测速度不够快,YOLO v1检测准确率较低,而且无法检测到密集目标. 方法 SSD算法跟YOLO类似,都属于one stage的算法,即通过回归算法直接从原图得到预测结果,为 ...
- 目标检测论文解读4——Faster R-CNN
背景 Fast R-CNN中的region proposal阶段所采用的SS算法成为了检测网络的速度瓶颈,本文是在Fast R-CNN基础上采用RPN(Region Proposal Networks ...
随机推荐
- html5 录制/保存视频/录音
国内这方面的资料真少的可怜,翻出去一搜一大把,推荐一个github的插件库,非常强大,支持各种各样的录制方式. 下载完成之后,引用对应的js立即可以使用. <script src="R ...
- 老刘 Yii2 源码学习笔记之 Module 类
关系类图 从上图可以看出 Application 类继承了 Module,在框架中的是非常重要角色. 加载配置 public function setModules($modules) { forea ...
- SyntaxError: Non-ASCII character '\xe5' in file test.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
python的默认编码文件是用的ASCII码,而你的python文件中使用了中文等非英语字符. 在Python源文件的最开始一行,加入一句: # coding=UTF-8
- Grafana展示DNS解析延时
首先一个完整的监控肯定会包含三个部分:1.数据收集部分.2.数据存储部分.3.数据展示部分,今天我也是从这三个方面来实现这个监控的. 数据收集(SHELL 脚本) 没有想到比较好的方法来采集数 ...
- jenkins 后台程序运行
# 背景 jenkins持续集成,需要任务后台执行(nohup执行)结果发现jenkins的job执行完后,看不到运行的进程 # 步骤 原因就是这么一个情况:Jenkins任务结束时候自动关掉了所有的 ...
- java 执行sql文件
# 背景 用例执行完毕,期望回滚数据,因此希望执行sql来回滚数据 # 步骤 直接show代码,借助的是mybatis的ScriptRunner /** * 执行xx库下的表备份脚本 * * @par ...
- 设计模式之组合模式(Composite Pattern)
一.什么是组合模式? 组合模式提供了一种层级结构,并允许我们忽略对象与对象集合之间的差别 调用者并不知道手里的东西是一个对象还是一组对象,不过没关系,在组合模式中,调用者本来就不需要知道这些 二.举个 ...
- [ASP.NET]关于DOT NET的IIS配置LocalHost访问和127.0.0.1访问的区别
项目上遇到一个问题跟大家分享下,配置的localhost地址本地无法访问接口,外网却可以访问,查其原因百度资料比较全面的解释 localhost与127.0.0.1的概念和工作原理之不同 要比较两个东 ...
- Xamarin.Forms第三方XAML预览工具-LiveXAML简单体验
截至目前,Xamarin官方的Xaml Previewer工具仍然处于测试阶段,使用中也发现了各种不便,例如各种莫名其妙的渲染失败,或者提示需要编译项目才能渲染等等,复杂项目基本不可用, 完全没有体现 ...
- element ui aside — 侧栏导航菜单移入移出折叠效果
效果如图,移入移出控制折叠,点击按钮后移入移出不可控制折叠. 功能是很简单的功能,不过昨天这块还是弄了小一个小时,所以记录下来. 发现的问题: 模版上el-aside写上@mouseenter无效 解 ...