掌握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中的特征向量
将原图中的候选区域映射到特征图当中的候选区域
公式:SPP:空间金字塔变换层 SPATIAL PYRAMID POOLING
假设有1313256 13为像素 256为通道数 (个数)
对于M个候选区域,每个都要经过SPP层进行变换
把M个候选区域进行分块
对每个特征图进行 44 22 11 输出每个候选区域的 特征向量都为21256(不一定为256,不同网络卷积输出通道数不一定一样)
长度固定,特征向量有了
SPPNet总结
不用将图像变形了!减少了计算时间
缺点:训练依然过慢,特征依然写入磁盘
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,目的是为了减少计算时间并且得出固定长度的向量
SPP是金字塔(44,22,11),ROI pooling是单个km块(44),使用最大池化将任何有效的RoI区域内的特征转换成具有HW的固定空间范围的小feature map,其中H和M市超参数 他们独立于任何特定的RoI