R-CNN
R-CNN: Region with CNN feature
R-CNN是利用深度学习进行目标检测的开山之作。作者Ross Girshick多次在PASCAL VOC的目标检测竞赛中折桂,曾在2010年带领团队获得终身成就奖。
Paper
Rich feature hierarchies for accurate object detection and semantic segementation
pipline
R-CNN算法流程可分为4个步骤
- 一张图像生成 1k~2K个候选区域*(使用Selective Search方法)
- 对每个候选区域,使用深度网络提取特征
- 特征送入每一类的SVM分类器,判别是否属于该类
- 使用回归期精细修正候选框位置(SS算法不是很准,专门设计回归期修正
Selective Search
- 利用 Selective Search 算法通过图像分割的方法得到一些原始区域,然后使用一些合并策略进行合并,得到一个层次化的区域结构,而这个结构就包含着可能需要的物体。
feature extraction
- 将2000候选区缩放到 227x227 pixel, 接着将候选区域输入是预先训练好的AlexNet CNN网络获取4096维的特征得到2000x4096维矩阵。
SVM判别
- 2000x4096唯独特征与20个SVM组成的权值矩阵4096x20相乘,获得2000x20纬度矩阵的概率矩阵,每行代表一个候选框归于每个目标类别的概率。
- 分别对上述2000x20维矩阵中每一列即每一类进行非极大值一直剔除重叠建议框,得到该列即分类中得分最高的一些建议框。
Non maximum suppression
非极大值抑制
IoU: Intersection over Union
IoC score =
- 寻找得分最高的目标
- 计算器他目标与该目标的IoU值
- 删除所有IoU大于给定阈值的目标
- 返回1.
回归期修正
分别用20个回归器对NMS处理后剩余的建议框进一步筛选。
20个回归器对20个类别中剩余的建议框进行回归操作,最终得到每个类别的修正后的得分最高的bouding box。
R-CNN 模型结构图
R-CNN 存在的问题
- 测试速度慢
- 测试一张图片约53s(CPU)用Selective Search算法提取候选框用时约2秒,一张图像内候选框之间存在最大重叠,提取特征操作冗余。
- 训练速度慢
- 过程及其繁琐
- 训练所需空间大:
- 对于SVM和bbox回归训练,需要从每个图像中的每个目标候选框提取特征,并写入磁盘。
- 对于非常深的网络,如VGG16,从VOC07训练机上的5k图像上提取的特征需要数百GB的存储空间。
Fast R-CNN
Fast R-CNN是作者Ross Girshick继R-CNN后的又一力作。同样适用VGG16作为网络的backbone,与R-CNN相比训练时间快了9倍,测试推理事件快213倍,从准确率从62%上升到了66%(在Pascal VOC数据集上
paper
pipeline
- 一张图像生成1K~2K个候选区域(使用Selective Search方法)
- 将图像输入网络得到对应的特征图,将SS算法生成的候选框投影到特征图上获得相应的特征矩阵
- 将每个特征矩阵通过ROI pooling层缩放到7x7大小的特征图,接着将特征图战平通过一系列全联接层得到预测结果
Fast R-CNN利用了原图位置与特征图位置的映射关系,直接获取候选框对应特征图上的位置。(参考了SPP-net)
训练数据采样
(正样本,负样本)
正样本:目标类
负样本:背景
在采样的过程中,需要平衡正负样本的balance
对每张图片,2000个候选框中采集了64个候选区域,其中一部分为正样本,另一部分为负样本。
正样本定义: 候选框与真实目标边界框 IoU>0.5
负样本定义: 与真实边界框 0.1<IoU<0.5
RoI Pooling Layer
不对输入图像大小进行限制,将图片切割成7X7大小,每个图片网格
分类器与回归器
- RoI pooling layer的输出为 7x7 的feature map
- 将 7x7 的tensor展平处理,通过两个FC(全链接层)-> RoI feature vector
- RoI feature vector -> (并联)两个全链接层
- 目标概率预测: 通过 softmax 进行N+1分类(其中第一类为背景)
- 候选框回归: 回归决定(N+1)个类别的候选框4参数:(
)总共 4*(N+1)个参数
Multi-task loss
reference: https://www.cnblogs.com/wangguchangqing/p/12021638.html
Fast R-CNN结构图
模型缺点
比起 R-CNN 网络结构以及被划分为两个结构了
- Selective Search算法提取候选框(Region proposal
- CNN融合完成了三个任务(特征提取、分类、候选框回归)
Reference
- Post title: R-CNN 和 Fast R-CNN
- Create time: 2022-05-27 13:00:11
- Post link: Object-Detection/r-cnn-和-fast-r-cnn/
- Copyright notice: All articles in this blog are licensed under BY-NC-SA unless stating additionally.