【目标检测】Faster R-CNN网络学习笔记

原论文:Faster R-CNN: Towards Real-Time ObjectDetection with Region Proposal Networks  Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun

传送门:Faster R-CNN TensorFlow版源码解读

一、Faster-RCNN框架

1.整体框架

从上图可以得到,Faster_RCNN网络主要由三部分组成:

  • 第一部分是一个全卷积网络,用于提取图像特征,得到一个特征图feature map
  • 第二部分是RPN网络,用于在特征图上找到一系列可能是物体目标框,并得到每个框内的图像可能是物体的评分(概率)
  • 第三部分是全连接层,用来得到最终每个框的位置和框内的物体的分类

2.RPN网络

RPN网络是Faster-RCNN的核心部分,它对对特征图的处理过程如下:

2.1 滑动窗

选择一个nxn(作者选了3x3)大小的小滑动窗,对第一部分得到的特征图进行同卷积操作,得到256个特征图(256个是因为原始图像经过第一部分ZF卷积层后,得到了256个特征图,在这里对每个特征图用3x3的滑动窗卷积,并没有去改变特征图的数量;如果第一部分使用的是VGG16网络,最后的特征图是512个)

2.2 框(anchor boxes)的产生

滑动窗在特征图上滑动时,它的中心会扫过特征图上的所有像素点,而每个中心(感受野或者称为锚点)都对应原始图像的一个区域,如图是感受野映射关系的示意图:

那么,在特征图的每个感受野处选取k个框,每个框也都会映射回原图中的一块区域。

这k个框不是随机选取的,首先确定x种框的大小,y种框的长宽比,它们两两组合,得到k=x*y种框(作者选取了k=3x3=9)。在特征图中,将它们放在以感受野为中心的位置,如图所示(这里有3个感受野处,每处只画出了3个代表性的框)

3.3 分类和回归任务

已经得到了框,接下来要进行的就是:

  • 进行分类任务,确定每个框有没有可能是物体,给出每个框是物体的可能性的得分
  • 进行回归任务,对有可能是物体的框,调整框的位置,让它接近标签中标注的物体的实际位置(groundtruth)

3.4 过滤(proposal)

为什么要过滤呢?在2.2中,特征图大小是40*60,每个像素点(感受野)产生k=9个框,那么一共就是近2万个框,这其中有些框距离物体甚远,有些框超出了图的边界,显然是没有必要对他们进行分类和回归任务的。

因此,为了减少冗余,要对这些框进行过滤,过滤的方法采用了以下3种:

1. IOU

IOU(Intersection-over-Union)重叠比:是指选择的框(anchor box)与原始图片中标注为物体的框(gt)的重叠比。

过滤的标准有两个:

  1. 选择一个gt上IOU最大的框标记为正例(positive label)
  2. 选择IOU>=0.7的框标记为正例,IOU=<0.3的框标记为反例,0.3<IOU<0.7的框过滤(它们对正例和反例的训练都不会有很好的作用)

过滤框主要是第2条标准,同时使用第1条标准为了避免没有IOU>0.7的正例产生。

2. NMS

NMS(non-macimum-suppression)非极大值抑制

对选出来的框,它们之间有很多互相重叠,为减少冗余,依据在分类操作中每个框的得分,选出得分最高的N个框(top-N)保留,过滤其他的框。

3. clip

裁剪越界的框

在产生框的时候,有很多是超出了原始图片范围的,如果不过滤这些框,会引入较大的误差项,并且训练时不会收敛。

对这些越界的框,只要沿着边界裁掉越界的部分即可

至此,RPN完成了RPN网络,总结如图:

二、Faster-RCNN TensorFlow源码理解

传送门:Faster R-CNN TensorFlow版源码解读​​​​​​​

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值