2024-11-15 R-CNN/SPP-NET/Fast R-CNN

掌握Overfeat模型思路

滑动窗口

掌握R-CNN流程

掌握训练过程

预训练
微调
SVM+bbox regressor训练

缺点:

1、训练阶段多 步骤繁琐
2、训练好事
3、处理速度慢
4、图片形状变化 要经过crop/warp进行固定大小,无法保证图片不变形

SPPNet和RCNN的区别
RCNN
1、RCNN让每个候选区域经过crop/wrap等操作变换成固定大小的图像
2、固定大小的图像塞给CNN传给后面的层做训练回归分类操作

SPPNet
1、把全图塞给CNN得到全图的feature map
2、让候选区域与featrue map直接映射,得到候选区域的映射特征向量
3、映射过来的特征向量大小不固定,这些特征向量塞给SPP层(空间金字塔变换层),SPP层接收任何大小的输入,输出固定大小的特征向量,再塞给FC层(全连接层)

映射:

原始图片经过CNN变成feature map,原始图片通过SS 得到了候选区域,现在需要将基于原始图片的候选区域映射到feature map中的特征向量


image.png

将原图中的候选区域映射到特征图当中的候选区域

公式:
image.png

SPP:空间金字塔变换层 SPATIAL PYRAMID POOLING

假设有1313256 13为像素 256为通道数 (个数)
对于M个候选区域,每个都要经过SPP层进行变换

image.png

把M个候选区域进行分块
对每个特征图进行 44 22 11 输出每个候选区域的 特征向量都为21256(不一定为256,不同网络卷积输出通道数不一定一样)
长度固定,特征向量有了

SPPNet总结

image.png

不用将图像变形了!减少了计算时间
缺点:训练依然过慢,特征依然写入磁盘

Fast R-CNN

学习目标:了解结构 说明Rol pooling的特点 了解多任务损失

SPP-NET网络之间不统一训练,造成很大麻烦

fast r-cnn改进的地方

RoI 感兴趣的区域
提出了一个RoI pooling,整合整个模型,把CNN、SPP变换层、分类器、bbox回归几个模块一起训练。

fast r-cnn步骤

首先将整个图片输入到一个基础卷积网络,得到整张图的feature map
将region proposal(RoI)映射到feature map中
RoI pooling layer 提取一个固定长度的特征向量,每个特征会输入到一系列全连接层,得到一个RoI特征向量(此步骤是对每一个候选区域都会进行同样的操作)
其中一个是传统softmax层进行分类,输出类别有K哥类别加上“背景”类
另一个是bounding box regressor

RoI pooling

知识一个简单版本的SPP,目的是为了减少计算时间并且得出固定长度的向量

image.png

SPP是金字塔(44,22,11),ROI pooling是单个km块(44),使用最大池化将任何有效的RoI区域内的特征转换成具有HW的固定空间范围的小feature map,其中H和M市超参数 他们独立于任何特定的RoI

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容