快速回顾 R-CNN Family

目标检测与深度学习

共 2887字,需浏览 6分钟

 ·

2021-04-06 14:23

R-CNN

Region-based Convolutional Neural Networks (基于区域的CNN)

主要思想:使用selecting search,它可以确定候选框的数量和ROI。然后从每个区域中独立提取CNN特征进行分类


Model Workflow


1、预训练CNN网络,例如对VGG或ResNet进行ImageNet数据集训练

2、通过seective search提出 proposal regions(ROI),这些区域可能包含目标对象,并且它们的大小不同

3、将proposal regions warped成相同大小,这是由于CNN要求输入相同的大小

4、微调CNN

5、给定每个图像区域,通过CNN的一次正向传播会提取特征向量。使用SVM进行分类。

6、减小localization error,训练回归模型来调整预测的bounding box


Bounding Box Regression

计算predicted bounding box p=(px,py,pw,ph)和 ground truth box coordinates

g=(gx,gy,gw,gh)的中心进行尺度不变变换scale-invariant,高度和宽度进行对数尺度变换log-scale transformation

标准回归模型可以通过正则化将SSE loss最小化来解决

值得注意的是并非所有的 predicted bounding 都有 ground truth box,在这里仅保留IOU大于0.6的predicted bounding用于bbox 回归模型的训练

NMS(Non-Maximum Suppression)

NMS可以避免重复检测同一目标,得到相同对象类别的一组匹配边界框后:按置信度分数对所有边界框进行排序。丢弃置信度较低的盒子。尽管有任何剩余的边界框,重复如下:选择一个得分最高。跳过剩余的具有较高IoU(即> 0.5)的框和先前选择的框。

Speed Bottleneck

RCNN速度较慢的原因:
(1)大量的region candidates消耗大量的计算

(2)整个过程缺少shared computation,整个过程包括CNN提出特征和SVM分类和回归模型预测bounding box



Fast R-CNN


主要思想:为了加速R-CNN,将三个独立的模块统一到一个共同的训练框架中并且增加了共享计算结果(shared computation result)来改进训练过程。不在为每一个region proposal提出CNN特征,而是对整个图像提出特征,所有region proposal共享这个特征矩阵。

ROI Pooling

最大池化将经过卷积提出的图片特征H*W转为小尺寸h*w。


Model Workflow
Fast R-CNN的工作方式总结如下:许多步骤与R-CNN中的相同:

1、首先,在图像分类任务上预训练CNN网络

2、通过选择性搜索Propose regions

3、更改预训练的CNN:

    (1)用RoI pooling layer替换经过预训练的CNN的最后一个最大池化层。RoI pooling layer输出region proposals的固定长度特征向量。共享CNN计算非常有意义,因为同一图像的许多Propose regions高度重叠。

    (2)将最后一个完全连接的层和最后一个softmax层(K个类)替换为一个完全连接的层,并在K + 1个类上替换softmax。


4、最后,模型分为两个输出层:

    (1)K + 1类的softmax估计量(与R-CNN中相同,+ 1是“背景”类),每个RoI输出离散的概率分布。

    (2)bounding - box 回归模型,针对K个类别中的每个类别,相对于原始RoI预测偏移。


Loss Function
针对合并了分类和定位两个任务对loss进行优化

多任务loss function 结合了classification loss和bounding box regression

忽略背景ROI,即那些分类为无类别的ROI

  采用smooth L1 loss
Speed Bottleneck
Region Proposals由另一种模型分别生成的,计算消耗很大。


Faster R-CNN


主要思想:它是第一个端到端,第一个近实时的深度学习检测器。它的主要贡献是引入了 RPN,使区域提议近乎无时间损耗。它将区域提议、特征提取、边界框回归集成在一个统一的,端到端框架中。通过构建一个RPN(regionproposal network)和具有共享卷积特征层的Fast R-CNN。

Model Workflow

1、预训练CNN

2、微调RPN(region proposal network),该任务由训练前图像分类器初始化。正样本的IoU> 0.7,而负样本的IoU <0.3。

在整个图像的转换特征图上滑动一个小的nxn空间窗口。

在每个滑动窗口的中心,我们同时预测各种比例和比率的多个区域。anchor是(滑动窗口中心,比例,比率)的组合。例如,每个滑动位置有3个比例+ 3个比率=>  9个anchor。

3、使用当前RPN生成的 proposals 训练Fast R-CNN的对象检测模型

4、然后使用 Fast R-CNN 网络初始化 RPN 训练。在保留共享卷积层的同时,仅微调RPN特定的层。在这个阶段,RPN和检测网络具有共享的卷积层

5、最后,微调 Fast R-CNN 的 unique layers

6、如果需要,可以重复步骤4-5来训练RPN和Fast R-CNN。


Loss Function

其中  是 log 损失函数

Mask R-CNN


主要思想:Mask R-CNN 将 Faster R-CNN 扩展成像素级的图像分割,在Faster R-CNN的框架基础上,与分类和定位并行增加了预测object mask branch, mask branch是一个作用每个 ROI 的全连接层小网络,以 pixel-to-pixel 方式预测segmengtation mask



10000+人已加入「大毛CV」

       

       



敬正在努力的我们! 

浏览 46
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报