目标检测之Faster R-CNN(附pytorch代码)

本文详细介绍了Faster R-CNN的工作原理,包括目标检测任务、整体架构、RPN网络、Anchor概念以及RoIHead的ROI Pooling。Faster R-CNN通过Region Proposal Network显著提高了目标检测的速度,其核心在于Anchor的设计和RoIHead的分类与回归。
摘要由CSDN通过智能技术生成

原论文:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

概念

目标检测的任务就是不仅要对图片中的物体进行定位,而且还要将物体进行分类,同时还要输出分为此类的置信度概率。如下图:
在这里插入图片描述

整体架构

在这里插入图片描述

  1. Dataset:数据,提供符合要求的数据格式(目前常用数据集是VOC和COCO)
  2. Extractor(有的文章也称为Backbone): 利用CNN提取图片特征features(原始论文用的是ZF和VGG16,后来人们又用ResNet101)
  3. RPN(Region Proposal Network): 负责提供候选区域rois(每张图给出大概2000个候选框)
  4. RoIHead: 负责对rois分类和微调。对RPN找出的rois,判断它是否包含目标,并修正框的位置和座标

Faster R-CNN整体的流程可以分为三步:

  1. 提特征: 图片(img)经过预训练的网络(Extractor),提取到了图片的特征(feature)
  2. Region Proposal: 利用提取的特征(feature),经过RPN网络,找出一定数量的rois(region of interests)。
  3. 分类与回归:将rois和图像特征features,输入到RoIHead,对这些rois进行分类,判断都属于什么类别,同时对这些rois的位置进行微调。

RPN

Faster R-CNN最突出的贡献就在于提出了Region Proposal Network(RPN)代替了Selective Search,从而将候选区域提取的时间开销几乎降为0(2s -> 0.01s)。RPN架构图如下:
RPN架构图

Anchor

在RPN中,作者提出了anchor。Anchor是大小和尺寸固定的候选框。论文中用到的anchor有三种尺寸和三种比例,如下图所示,三种尺寸分别是小(蓝128)中(红256)大(绿512),三个比例分别是1:1,1:2,2:1。3×3的组合总共有9种anchor。
在这里插入图片描述
然后用这9种anchor在特征图(feature)左右上下移动,每一个特征图上的点都有9个anchor,最终生成了 (H/16)× (W/16)×9个anchor. 对于一个512×62×37的feature map,有 62×37×9~ 20000个anchor。 也就是对一张图片,有20000个左右的anchor。这种做法很像是暴力穷举,20000多个anchor,哪怕是蒙也能够把绝大多数的ground truth bounding boxes蒙中。

anchor的数量和feature map相关,不同的feature map对应的anchor数量也不一样。RPN在Extractor输出的feature maps的基础之上,先增加了一个卷积,然后利用两个1x1的卷积分别进行二分类(是否为正样本)和位置回归。进行分类的卷积核通道数为9×2(9个anchor,每个anchor二分类,使用交叉熵损失),进行回归的卷积核通道数为9×4(9个anchor,每个anchor有4个位置参数)。RPN是一个全卷积网络(fully convolutional network),这样对输入图片的尺寸就没有要求了。

但进行RPN网络训练时,会利用(AnchorTargetCreator)将20000多个候选的anchor选出256个anchor进行分类和回归位置。

RPN在自身训练的同时,还会提供RoIs(region of interests)给Fast RCNN(RoIHead)作为训练样本 。

Anchor的生成过程:
假设图像高h,宽为w。以每个像素为中心,大小s∈(0,1](s为scale,经过缩放归一化后),宽高比r>0。那么锚框的宽为 w s r ws\sqrt{r} wsr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值