Fast RCNN学习笔记

重点理解

1.如何简化2000次的CNN?

在RCNN中,通过SS算法提取2000个ROI区域,再将2000个ROI从原始图像中扣出并统一进行resize,最后通过2000个CNN提取特征; 在fast rcnn中,利用convolution的位置对齐性,直接经过CNN提取特征,然后再在feature map上提取ROI区域。

2.feature map上提取的ROI大小不同,如何送到全连接层进行分类?

一般情况下,pooling用到的卷积核是固定的,大小为22,stride=2.。但是ROI大小不同,我们无法直接使用相同的pooling,因此要根据feature map的大小计算stride和kernel,使得ROI Pooling对每一个区域进行训练。
例如原始图像为200
200,输出图像是7*7,那么这个时候我们用到的pooling层是卷积核kernel=200/7(取整),stride=200/7。由于backbone足够强,模型已经用fc层成功代替SVM和LR.。

3.损失函数

L1loss是平均绝对值误差,对离群点不敏感。但是存在不可导点,收敛速度稍慢。

L2loss是均方误差损失函数,也称MSE。便于梯度下降,但易受离群点的影响,可能导致梯度爆炸。

smooth L1loss虽是平滑之后的L1,也称MAE,是一个分段函数,对于离群点的鲁棒性更高(受异常值的影响)。虽然在公式上是拼接的,但是是连续的,左右极限相同,连续可导。

Fast RCNN中采用多loss的分类回归器,损失函数包括分类损失和回归损失,分类损失函数采用交叉熵函数:loss=-pi*log(pi^)。其中
i指的是类别,^表示预测值。回归损失函数采用的是smooth L1。

4.finetune的优点

使一个统一的网络分阶段训练
使一个统一的网络可以多loss训练
说明了网络具有记忆功能,可以断点后继续训练
在Fast RCNN中,利用finetune的性质,将SVM和LR用CNN模块来实现。

训练过程

1.前向计算过程
图片——VGG提取特征——SS算法选择2000个ROI——Pooling——全连接层进行分类(softmax)和回归——P和T
2.训练过程(反向传播)
图片——VGG提取特征——SS算法选择2000个ROI——Pooling——全连接层进行分类和回归——计算损失函数
在这里插入图片描述

在这里插入图片描述

总结

1.RCNN系列对比:关键在于ROI提取过程,RCNN仅是采用了SS算法后直接给每一个候选区域直接加上了CNN,计算量过大。
RCNN主要由四个模块组成:SS、CNN、SVM分类和Linear回归。
Fast RCNN主要是通过VGG得到feature map,再通过SS提取ROI,只包含SS和VGG两个模块(ROIPooling和CNN)。
2.缺点:在Region proposal过程中,selective search比较耗时,希望将SS算法也用CNN来实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值