Two-stage Faster RCNN系列基础知识

Posted 深度之眼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Two-stage Faster RCNN系列基础知识相关的知识,希望对你有一定的参考价值。

作者:LSC 来源:投稿
编辑:学姐

1.1目标检测引入CNN

「RCNN(Rich feature hierarcies for accurate object detection and semantic segmentation )」

「候选区域生成」: 一张图像生成1-2k个候选区域,采用选择性搜索(Selective Search)方法

「特征提取」: 对每个候选区域,使用深度卷积网络提取特征(CNN)

「类别判断」: 特征送入每一类的SVM分类器,判别是否属于该类

「位置精修」: 使用回归器精细修正候选框位置

R-CNN

  • 将CNN引入目标检测的开山之作

  • 每个候选框就是RoI(感兴趣的区域,region of interest)

  • 选择性搜索,可以得到很多候选区

「ROI要warp到同样尺寸输入到CNN中」:

含有全连接层的CNN需要固定输入图片大小

因为卷积层和池化层需要经过Flatten后,才能与全连接相连。

1.2 SPP-Net(空间金字塔池化,Spatial Pyramid Pooling)

在feature map上提取的ROI特征,这样就只需要在整幅图像上做一次卷积

「原始图像的ROI映射到特征图: 等比例去找」

ROI的在特征图上对应的特征区域的维度不满足全连接层的输入要求怎么办?

「设了SPP模块,统一了进入全连接层的输入」

三种尺寸池化,无视输入尺寸,输出(44+22+1*!)*256维度的特征

1.3 Fast-RCNN

RCNN训练过程比较繁琐(需要训练SVM分类器,需要额外的回归器)

时间和内存消耗

ROI pooling

  • 根据输入image,将ROI映射到feature map对应位置

  • 将映射后的区域划分为相同大小的部件(sections, sections数量与输出维度相同)

  • 对每个sections进行max pooling操作

「例子」

「ROI pooling」: 假设有一个88大小的feature map,一个ROI,以及输出大小为22。

RCNN训练步骤

(1)fine tuning(好的迁移模型)预训练的特征提取网络

(2)针对每个类别训练一个SVM分类器

(3)训练regressors对bounding-box进行回归

「解决训练步骤多的问题」:

  • 将regressor放进网络一起训练,每个类别对应一个

  • 用softmax代替原来的SVM分类器

  • 设计多任务损失

「Proposal Grund Truth 回归后的框」

寻找一种关系使得输入原始的窗口P经过映射得到一个跟真实窗口G更接近的回归窗口。

1.6边界框回归(bounding box regression)

(1)先做平移

(2)再做缩放

输入是某一层的特征图:

使用最小二乘法或者梯度下降法求解表达式

「使用相对坐标差」:

  • CNN具有尺度不变性,x1-p1=x2-p2显然不等

  • 使用相对位移可以解决这个问题

「宽高比取对数」:

  • 尺度缩放系数大于0,让自动学习的数能大于0,所以使用exp函数

  • IoU较大认为是线性变换

所以宽高必须近似相等,回归才准确。

1.7多任务损失

(1)分类损失使用log损失

(2)位置回归损失使用

1.8 Faster-RCNN

  • 将整个检测过程整合到一个网络中,核心组件是RPN

  • 其余部分和Fast RCNN基本一致

1.9 RPN(Region Proposal Network)

  • RPN的输入是主干网络后的特征图

  • Sliding window是使用3*3卷积

  • 256-d特征向量是卷积后得到的(H*W)*256

  • 2k: k个anchor是物体和背景的概率

  • 4k: k个anchor的坐标(x,y,w,h)

「k个anchor是预先设计好的」

「Faster RCNN整体结构」

1.10性能表现

1.11总结

关注下方《学姐带你玩AI》🚀🚀🚀

回复“卷CV”获取CV方向必读论文

(含10篇高分目标检测论文PDF)

码字不易,欢迎大家点赞评论收藏!

论文解读Faster R-CNN 实时目标检测

前言

Faster R-CNN 的亮点是使用RPN来提取候选框;RPN全称是Region Proposal Network,也可理解为区域生成网络,或区域候选网络;它是用来提取候选框的。RPN特点是耗时少。

Faster R-CNN是“RCNN系列算法”的杰出产物,也是two-stage中经典的物体检测算法。two-stage的过程是:

  • 第一阶段先找出图片中待检测物体的anchor矩形框。(对背景、待检测物体进行二分类)
  • 第二阶段对anchor框内待检测物体进行分类。

简单来说:先产生一些待检测框,再对检测框进行分类。关键点是如何找到“待检测框”,这些待检测框中包含目标物体,虽然暂时不知道它的类别。

论文地址:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Network

开源代码:https://github.com/endernewton/tf-faster-rcnn

目录

一、网络框架

以上是关于Two-stage Faster RCNN系列基础知识的主要内容,如果未能解决你的问题,请参考以下文章

论文解读Faster R-CNN 实时目标检测

从端到端的Fast RCNN到走向实时的Faster RCNN (原理及Pytorch代码解析)

faster-rcnn系列原理介绍及概念讲解

深度学习和目标检测系列教程 10-300:通过torch训练第一个Faster-RCNN模型

深度学习和目标检测系列教程 11-300:小麦数据集训练Faster-RCNN模型

菜品识别系统(Faster-RCNN目标检测算法)