赞
踩
两步走的目标检测:先进行区域推荐,而后进行目标分类
代表:R-CNN、SPP-Net、Fast R-CNN、Faster R-CNN
端到端的目标检测:采用一个网络一步到位
代表:YOLO、SSD
Ross Girshick在2014年计算机视觉和模式识别大会(CVPR,Computer Vision and Pattern Recognition)中提出R-CNN。
(1)选取 正负样本
正样本 | 候选区域和该图片中所有真实矩形框的交并比, I O U ≥ 0.5 IOU\geq 0.5 IOU≥0.5,则该候选区域作为这个真实矩形框内物体类别的正样本 |
---|---|
负样本 | 候选区域和该图片中所有真实矩形框的交并比, I O U < 0.5 IOU<0.5 IOU<0.5,则该候选区域作为这个真实矩形框内物体类别的负样本 |
(2)选取 预训练模型:R-CNN采用AlexNet来学习特征,包含5个卷积层和3个全连接层(可直接下载预训练模型AlexNet)
(3)训练 特征提取器(对AlexNet模型进行微调)
(4)训练 SVM分类器
(5)训练 候选框回归器
(1)获取候选区域ROI: 输入一张图像,利用SS方法得到2000个ROI;
(2)特征提取: 所有ROI变换到固定尺寸227×227,作为特征提取器(AlexNet微调)的输入,进行特征提取,得到的 2000 ∗ 4096 2000*4096 2000∗4096维特征向量;
(3)用svm分类器对ROI进行类别预测: SVM的权重矩阵是4096*N,N是类别数/SVM分类器个数,这里一共有20个SVM, 得分矩阵是 2000 ∗ 20 2000*20 2000∗20,进而得到每个ROI预测的类别;
(4)采用非最大抑制方法NMS,过滤ROI ;
(5)微调ROI的位置:使用回归器,对第(4)步得分最高的ROI,进行位置修正。
两个区域的重叠程度评价指标:交并比IoU值
经典的CNN网络限制了输入必须固定大小,所以在实际使用中往往需要对原候选框(ROI)进行crop或者warp的操作,来保证输入大小一致。
无论是crop还是warp,都无法保证在不失真的情况下将图片传入到CNN当中。一般会使用一些方法尽量让图片保持最小的变形,方法如下:
(1)各向异性缩放(不使用):即直接缩放到指定大小,这可能会造成不必要的图像失真
(2)各向同性缩放:在原图上出裁剪侯选区域, (采用侯选区域的像素颜色均值)填充到指定大小在边界用固定的背景颜色
SPPNet主要的两点改进:
(1)减少卷积计算——候选区域映射
(2)防止图片内容变形——提出了SPP层
原图经过CNN变成了feature map,原图通过SS得到了候选区域。基于原图的候选区域映射到feature map中,映射过程图参考如下:
整个映射过程有具体的公式,如下
假设坐标点
(
x
,
y
)
(x,y)
(x,y)表示原图上的点,
(
x
′
,
y
′
)
(x′,y′)
(x′,y′)表示特征图上的坐标点,那么它们之间有如下转换关系,这种映射关心与网络结构有关:
(
x
,
y
)
=
(
S
∗
x
′
,
S
∗
y
′
)
(x,y)=(S∗x′,S∗y′)
(x,y)=(S∗x′,S∗y′),即
例: VGG16 的第一个 FC 层的输入是 7 x 7 x 512,其中 512 表示 feature map 的层数。在经过 pooling 操作后,其特征输出维度满足 H x W。假设输出的结果与FC层要求大小不一致,对原本 max pooling 的单位网格进行调整,使得 pooling 的每个网格大小动态调整为 h/H,w/W, 最终得到的特征维度都是 HxWxD。
(它要求RoI Pooling 后的特征为 7 x 7 x512,如果碰巧 ROI 区域只有 6 x 6 大小怎么办?每个网格的大小取 6/7=0.85 , 6/7=0.85,以长宽为例,按照这样的间隔取网格:[0,0.85,1.7,2.55,3.4,4.25,5.1,5.95],四舍五入取整后,每个网格对应的起始坐标为:[0,1,2,3,3,4,5])
Faster R-CNN的改进: 用 区域生成网络RPN 来代替Fast R-CNN中的选择性搜索方法获取候选区域ROI。(SS方法比较耗时)
(1)首先向CNN网络(VGG-16)输入任意大小图片
(2)Faster RCNN使用一组基础的conv+relu+pooling层提取feature map。该feature map被共享用于后续RPN层和全连接层。
(3)RPN网络用于生成region proposals。该层通过softmax判断anchors属于foreground或者background,再利用bounding box regression修正anchors获得精确的proposals,输出其Top-N(默认为300)的区域给RoI pooling
生成anchors -> softmax分类器提取foreground anchors -> bbox reg回归foreground anchors -> Proposal Layer生成proposals
(4)第2步得到的高维特征图和第3步输出的区域建合并输入RoI池化层(类), 该输出到全连接层判定目标类别。
(5)利用proposal feature maps计算每个proposal的不同类别概率,同时bounding box regression获得检测框最终的精确位置
RPN网络的主要作用是得出比较准确的候选区域。整个过程分为两步
(1)生成anchors
(2)RPN网络的训练——用于筛选出精确的anchors
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。