赞
踩
一. 源起于Faster
深度学习于目标检测的里程碑成果,来自于这篇论文:
也可以参考:【论文翻译】
虽然该文章前面已经讲过,但只给出了很小的篇幅,并没有作为独立的一篇展开,这里我们详细展开并讨论其 网络结构、应用领域 及 后续改进。
前面文章参考:【目标检测-RCNN系列】
二. 网络结构
Faster RCNN的网络结构图如下:
用的还是之前的图,其实对于这张图只需要记住一点:RPN网络,这是本文的核心贡献,RPN通过深度网络实现了 Proposal 功能,相较于之前的 SS(Selective Search)方法 和 EdgeBoxes 方法有很大提升。
RPN 我们来看原论文的图:
这张图虽然经典,但描述的并不太清楚,有些人可能看不明白,有几个关键点需要说明:
1)RPN 连接在 Conv5 之后
参考网络结构图,先理解 Conv5,Conv5是前面经过4次conv和pooling。
对于原图800*600的输入,Feature尺寸 变为[800/16,600/16] = [50,37.5],
Conv5的输出维度为 256,Feature维度 为 256。
2)Anchor 生成与排序
特征图采用滑窗方式遍历,每个特征像素点 对应K个 Anchor(即不同的Scale和Size),上述input对应的Anchor Count为 50*38*k(9) = 17100。
对应如此多的 Anchor,需要通过置信度剔除大多数Candidate,通常保留100-300个就足够了。
训练过程中通过IOU进行正负样本的选择,测试过程中置信度较低的被丢弃。
3)RPN 输出
如上图所示,输出分为两部分,2K Scores + 4K Reg,基于 256d 的 intermediate 层,通过两个网络,同时进行 分类 + 回归,Scores提供了作为前景、背景目标的概率(2位),Reg提供了4个坐标值,标识Box位置。
参考如下Caffe结构图,先通过3*3 的卷积核进行处理,然后1*1的卷积核进行降维,在 k=9 的情况下,每个像素对应生成 2*k = 18个 Scores 参数 和 4*k = 36个 Reg参数。
整体上 1*1 卷积生成的特征是 分类W*H*18 & 回归W*H*36,其中 ReShape 是方便 Softmax 用的,可以忽略掉。
Proposal层 根据 Softmax 输出(丢弃背景),结合对应 Anchor和Stride进行映射,将Box映射到原图,作为下一步 ROI Pooling 的输入。
4)RPN 结合方式
RPN 网络相对独立于卷积层,原文中通过 ImageNet 数据集进行预训练。
微调时,分别固定 RPN参数 和 卷积网络参数,对另外的网络部分进行微调,也就是说,虽然 Faster实现了端到端的处理,但并未实现全局的 Fine Turning。
5)ROI Pooling
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。