Paper Reading:HyperNet
论文:HyperNet: Towards Accurate Region Proposal Generation and Joint Object Detection
发表时间:2016
发表作者:(tsinghua)Tao Kong, Anbang Yao, Yurong Chen, Fuchun Sun
发表刊物/会议:cvpr
论文链接:论文链接
CNN高层特征具有丰富的语义信息,低层特征具有较高空间分辨率,研究如何融合不同层之间的特征,是物体检测领域热门的方向。近期很多工作通过融合多层来提升检测和分割的性能,按照融合与预测的先后顺序,分类为早融合(Early fusion)和晚融合(Late fusion)。
早融合: 先融合多层的特征,然后在融合后的特征上训练预测器。这类方法也被称为skip connection。这里面的代表是ION和HyperNet。本文主要介绍 HyperNet的思想细节。
HyperNet是2016年清华提出的优秀的Faster-RCNN变种。HyperNet主要改进在于集合了多层的特征图,得到多尺度的超特征(Hyper Feature),相比与Faster-RCNN,HyperNet更擅长处理小物体,在高IOU时更有优势,mAP提高3.1%。但多尺度也必然降低速度。其快速模型HyperNet-SP速度与Faster-RCNN相同,VOC上mAP仅提高1.6%。但注意到其应用的跳层特征(skip layer feature)在处理小物体检测中已经在ION等多次被用到,成为了一种常用的有效手段。
整体框架
按照红框的依次介绍:
Network for Hyper Feature Extraction:
RCNN之后的framework在做小物体检测时有一个通病,就是物体的的信息会损失的非常厉害,比如原来$3232$的物体,到最后一层feature map 只剩下了$22$,所以本文为了处理这个问题提出了两种方法,第一种,放大feature map,第二种,skip layer。按照标配输入$1000600$的图最后的map size 会是$6237$, 这样的话信息损失非常严重,所以作者想办法把最后的map放大到$250*150$,把第一层的map做一个max pooling, 把最后一层的map做一个deconv,然后把1,3,5层的map LRN之后连在一起。LRN是必要的,因为不同层的feature resolution 不同,如果不做正则norm大的feature会压制住norm小的feature。
在产生hyper feature map之前,这些resize过的map会各自通过一层卷积,一方面缩小维度,另一方面增强语义。
Region Proposal Generation:
作者讲了RPN的另外一个坏处,就是RPN在产生proposal的时候,一个sliding window产生9个尺度大小不同的anchor作为proposal的基准,作者argue,尺度大小不同的proposal用同样的input去产生会有问题,所以用了这个方法。在产生的hyper feature map上随机产生了不同大小和尺度的proposal,然后每一个都feed到ROI pooling里面去,然后对这每一个proposal做一个判断是不是proposal,其中使用了一个卷积作为降维和防止overfit。
这一步是整篇文章最大的瓶颈,因为70%的时间就在这一步。加速的方法是把卷积层放到了ROI Pooling前面,但是performance会下降。
Object Detection:
和fast rcnn到大同小异,在原来的检测网络基础上做了两点改进:
a)在 FC 层之前添加了一个 卷积层($3363$),对特征有效降维;
b)将 DropOut 从 0.5 降到 0.25;
另外,与 Proposal一样采用了 NMS 进行 Box抑制,但由于之前已经做了,这一步的意义不大。
采用了 联合训练(joint training)的方法,首先对 Proposal 和 Detection 分别训练,固定一个训练另一个,然后 joint 训练,即共享前面的卷积层训练一遍,具体可以参考原文给出的训练流程。
Hyper Feature Extraction
跳层提取特征。既能获取高层语义,又可以得到低层高分辨率的位置信息。提高小目标检测效果。
注:
不同层提出了不同的采样策略。在层次较低的卷积层最大池化。对层次较高的卷积层,添加了一个反卷积操作(Deconv)来进行上采样。最后,用LRN(local response normalization)归一化多个feature maps。LRN是必要的,因为不同层的feature resolution 不同,如果不做正则norm大的feature会压制住norm小的feature。
该特征主要有以下优点:
(1)多级抽象,将不同高低的层的CNN特征结合
(2)适当的分辨率,对于一个$1000600$的图像的特征图分辨率正好调整至250150,这个尺度对于检测很方便
(3)计算效率,所有特征可以在proposal和detection产生前进行预计算好,做到没有计算冗余
训练中的loss函数主要有两部分,类别loss,bounding box和positive box的loss,这里主要参考了其他文章,没有特别的地方。而proposal的产生部分参数,则主要参考R-CNN。
加速方法
为了速度的提升,这里去除了ROI pooling层后面的$334$的卷积层加速,这样主要有两点优势:Hyper特征图数量大大减少,同时滑动窗分类器更加简单(from Conv-FC to FC)
实验效果对比
通过对比可以看到 mAP 比 Faster 提高了 1%,主要是多尺度的功劳。
Paper Reading:HyperNet的更多相关文章
- Paper Reading: Stereo DSO
开篇第一篇就写一个paper reading吧,用markdown+vim写东西切换中英文挺麻烦的,有些就偷懒都用英文写了. Stereo DSO: Large-Scale Direct Sparse ...
- Paper Reading:ION
Inside-Outside Net (ION) 论文:Inside-Outside Net: Detecting Objects in Context with Skip Pooling and R ...
- [Paper Reading]--Exploiting Relevance Feedback in Knowledge Graph
<Exploiting Relevance Feedback in Knowledge Graph> Publication: KDD 2015 Authors: Yu Su, Sheng ...
- Paper Reading: Perceptual Generative Adversarial Networks for Small Object Detection
Perceptual Generative Adversarial Networks for Small Object Detection 2017-07-11 19:47:46 CVPR 20 ...
- Paper Reading: In Defense of the Triplet Loss for Person Re-Identification
In Defense of the Triplet Loss for Person Re-Identification 2017-07-02 14:04:20 This blog comes ...
- Paper Reading - Attention Is All You Need ( NIPS 2017 ) ★
Link of the Paper: https://arxiv.org/abs/1706.03762 Motivation: The inherently sequential nature of ...
- Paper Reading - Convolutional Sequence to Sequence Learning ( CoRR 2017 ) ★
Link of the Paper: https://arxiv.org/abs/1705.03122 Motivation: Compared to recurrent layers, convol ...
- Paper Reading - Deep Captioning with Multimodal Recurrent Neural Networks ( m-RNN ) ( ICLR 2015 ) ★
Link of the Paper: https://arxiv.org/pdf/1412.6632.pdf Main Points: The authors propose a multimodal ...
- Paper Reading - Deep Visual-Semantic Alignments for Generating Image Descriptions ( CVPR 2015 )
Link of the Paper: https://arxiv.org/abs/1412.2306 Main Points: An Alignment Model: Convolutional Ne ...
随机推荐
- Asp.Net Core中的角色
在前面介绍中我们知道了Asp.Net Core Identity中创建用户使用到的类UserManager<IdentityUser>,同样的,创建角色我们需要使用RoleManager& ...
- 如何使用js实现轮播图
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" ...
- [转帖]从零开始入门 K8s:应用编排与管理:Job & DaemonSet
从零开始入门 K8s:应用编排与管理:Job & DaemonSet https://www.infoq.cn/article/KceOuuS7somCYbfuykRG 陈显鹭 阅读数:193 ...
- SQLite基础-1.SQL简介
目录 一.SQLite简介 二.SQLite命令 三.SQLite安装 在 Windows 上安装 SQLite 四.SQLite 点命令 一.SQLite简介 最近在使用Python+Flask框架 ...
- logstash grok nginx log
#cat logstash.conf input { file { path => "/alidata/logs/nginx/appapi.dayutang.cn.access*.lo ...
- python_openCV例程遇到error: (-215) !empty() in function cv::CascadeClassifier::detectMultiScale的简单解决方法
需要把haar分类器训练的结果xml数据放在名为haarcascades的文件夹下进行调用. 将: face_cascade = cv2.CascadeClassifier('haarcascade_ ...
- 【搜索+set去重】Balance Scale
Balance Scale 题目描述 You, an experimental chemist, have a balance scale and a kit of weights for measu ...
- 将dubbo中使用的动态代理作为工具类
ReflectUtils package per.qiao.util.javassistUtil; import java.lang.reflect.Constructor; import java. ...
- Oracle VIP说明
本篇文档,描述说明VIP的作用 1.VIP全称 virtual ip 虚拟IP 2.Oracle为啥要搞个VIP 3.两节点RAC,集群单个节点故障关闭后,VIP漂移否继续对外提供服务 一.模拟RAC ...
- (五)Activiti之查看最新版本的流程定义
一.查看最新版本的流程定义 因为每个流程定义都可能会有好几个版本,所以有时候我们有这样的需求,查询出最新版本的流程定义的集合 第一步:我们通过Activiti接口来获取根据流程定义Version升序排 ...