基础知识 | 目标检测中Anchor的认识及理解

2019 年 3 月 5 日 计算机视觉战队

近期好多同学都在纠结Anchor的设置,而且部分同学私信,可不可以把这个基础知识详细说一次,今天就单独开一次小课,一起来学习Faster R-CNN中的RPN及Anchor。

说到RPN和Anchor,应该立马就能想到Faster R-CNN网络框架,这个我平台在之前就有详细的介绍过。

往期回顾


● 深度学习近期总结分析






有兴趣的可以点击进入看看,当作复习一下。首先我先将几类经典的目标检测网络做一个对比,然后开始说说今天要讲的知识。

最开始出现的是R-CNN,如下图:

从上图可以看出其框架做了很多重复的计算,在第二步之后,如果有2k个proposals,那后面就要执行2k边,太低效。于是,出现了改进的SSP-Net,如下图:

SSP-Ne框架组合了Classification和Regression,做成单个网络,并且可以Een-to-End进行训练,速度上提高许多。但是,SSP-Net还是基于Selective Search产生proposal,之后就出现了Fast R-CNN,其是融合了R-CNN和SPP-Net的创新,并且引入多任务损失函数,使整个网络的训练和测试变得十分方便。

但是Region proposal的提取还是使用了Selective Search,目标检测时间大多消耗在这上面(大约region proposal需2~3s,而提特征分类只需0.32s),这种是无法满足实时应用,而且并没有实现真正意义上的端到端训练测试(因为region proposal使用了Selective Search先提取处来)。

于是就有了直接使用CNN产生region proposal并对其分类,这就是Faster R-CNN框架,如下图:

Faster R-CNN将proposals交给了CNN去生成,这样Region Proposal Network(RPN)应运而生。

Faster R-CNN

仔细看看Faster R-CNN框架,其实还保留了Fast R-CNN的框架,其主要就是CNN+RPN。其中RPN主要就是负责生成proposals,然后与最后一层的feature map一起使用,用ROI Pooling生成固定长度的feature vector。具体如下:

那接下来开始好好的说一下RPN和Anchor!下图是我从网络copy过来的,应该更加能理解整体的流程及内容。

在上图中,红色的3x3红框是其中一个滑窗的操作过程,注意这里的Anchor是原图像像素空间中的,而不是feature map上的。这样的话,就可以很好去知道Anchor的意思,而且Anchor对于RPN非常重要。

现在,我们假设现在的feature map尺寸为W x H x C(13x13x256就是feature map的Width=13,Height=13和Channel=256),在feature map使用滑动窗口的操作方式,当前滑窗的中心在原像素空间的映射点就称为Anchor,并且以Anchor为中心去生成K(paper中default K=9,3个尺寸和3个缩放比例)个proposals。

在feature map上滑动一次,得到一个小网络,该网络输入是3x3x256,经过3x3x256x256的卷积,就可以得到1x1x256的低维特征向量。

然后就得到上图的两个分支。

  • Classification:经过1x1x256x18的卷积核,得到1x1x18的特征向量,分别代表9个proposals的Object的概率(是或不是);

  • Regression:经过1x1x256x36的卷积核,得到1x1x36的特征向量,分别代表9个proposals的(长宽及中心点坐标)。

注意,上面只是一个小网络,也就是一个3x3滑窗的过程及结果,在网络整体运行的过程中,要将整个feature map都要滑动一遍,最终就会得到两个损失函数:

其中就是Classification(Lcls)和Regression(Lreg)两个损失。对于边界框的回归,其是采用以下4个坐标的参数化:

综上,通过滑窗和Anchor机制就可以找到固定比例、一定大小的proposals,这样RPN就可以完美替代低效的Selective Search去产生proposals。

最终,在目标检测领域中,这个框架算是一个里程碑,值得大家学习与深入探索。最后的检测结果也是不错的。

如果想加入我们“计算机视觉战队”,请扫二维码加入学习群。计算机视觉战队主要涉及机器学习、深度学习等领域,由来自于各校的硕博研究生组成的团队,主要致力于人脸检测、人脸识别,多目标检测、目标跟踪、图像分割等研究方向。

如果觉得不错,请帮忙点一个好看,感谢对我工作的认可,谢谢!
登录查看更多
34

相关内容

【清华大学】低资源语言:回顾综述和未来的挑战,14页pdf
3D目标检测进展综述
专知会员服务
186+阅读 · 2020年4月24日
CVPR2020 | 商汤-港中文等提出PV-RCNN:3D目标检测新网络
专知会员服务
43+阅读 · 2020年4月17日
【2020新书】如何认真写好的代码和软件,318页pdf
专知会员服务
63+阅读 · 2020年3月26日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
160+阅读 · 2019年10月28日
最全综述 | 图像目标检测
计算机视觉life
30+阅读 · 2019年6月24日
干货!关于目标检测你需要看的9篇论文
人工智能前沿讲习班
9+阅读 · 2018年12月18日
理解 YOLO 目标检测
AI研习社
19+阅读 · 2018年11月5日
ECCV 2018 | CornerNet:目标检测算法新思路
极市平台
13+阅读 · 2018年8月11日
Cascade R-CNN 论文笔记
统计学习与视觉计算组
8+阅读 · 2018年6月28日
Faster R-CNN
数据挖掘入门与实战
4+阅读 · 2018年4月20日
Fast R-CNN
数据挖掘入门与实战
3+阅读 · 2018年4月20日
YOLO,一种简易快捷的目标检测算法
AI研习社
5+阅读 · 2018年1月11日
Arxiv
4+阅读 · 2019年9月5日
Self-Attention Graph Pooling
Arxiv
5+阅读 · 2019年4月17日
Arxiv
31+阅读 · 2018年11月13日
Arxiv
4+阅读 · 2016年12月29日
VIP会员
相关VIP内容
【清华大学】低资源语言:回顾综述和未来的挑战,14页pdf
3D目标检测进展综述
专知会员服务
186+阅读 · 2020年4月24日
CVPR2020 | 商汤-港中文等提出PV-RCNN:3D目标检测新网络
专知会员服务
43+阅读 · 2020年4月17日
【2020新书】如何认真写好的代码和软件,318页pdf
专知会员服务
63+阅读 · 2020年3月26日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
160+阅读 · 2019年10月28日
相关资讯
最全综述 | 图像目标检测
计算机视觉life
30+阅读 · 2019年6月24日
干货!关于目标检测你需要看的9篇论文
人工智能前沿讲习班
9+阅读 · 2018年12月18日
理解 YOLO 目标检测
AI研习社
19+阅读 · 2018年11月5日
ECCV 2018 | CornerNet:目标检测算法新思路
极市平台
13+阅读 · 2018年8月11日
Cascade R-CNN 论文笔记
统计学习与视觉计算组
8+阅读 · 2018年6月28日
Faster R-CNN
数据挖掘入门与实战
4+阅读 · 2018年4月20日
Fast R-CNN
数据挖掘入门与实战
3+阅读 · 2018年4月20日
YOLO,一种简易快捷的目标检测算法
AI研习社
5+阅读 · 2018年1月11日
Top
微信扫码咨询专知VIP会员