两阶段目标检测算法:

R-CNN:

1.对图像进行Selective Search生成1K~2K个候选区域
2.将每个候选区域输入网络提取特征
3.将特征送入每一类的SVM分类器中,判读是否属于该类
4.使用回归器精细修正候选框的位置
具体的一些细节:
1.利用Selective Search 算法通过图像分割的方法得到一些原始区域。然后使用一些合并策略将这些区域合并,得到一个层次的区域结构,这些结构就包含可能需要的物体。
2.对每个候选区域使用深度网络提取特征
将2000个候选区域缩放到227 * 227,接着将候选区域输入到预先训练好的Alex net获取2000 * 4096维矩阵
3.将特征送入每一类的SVM分类器,判断类别
将20004096维特征与20个SVM组成的权值矩阵409620相乘,获得200020维矩阵,表示每个建议框是每个目标类别的得分。对上述200020维矩阵中的每一列及进行非极大值抑制提出重叠的建议框,得到该列中得分最高的建议框(VOC数据集有20类)

两阶段目标检测网络病害 两阶段目标检测算法_深度学习


(算法的缺点:1.测试速度慢,Selective Search算法提取候选框花费大量时间,候选框之间存在大量重叠,提取特征操作冗余。

2.训练速度慢

3.训练所需空间大)

Fast-R-CNN

1.对输入的图像进行Selective Search得到1K~2K个候选区域

2.将图像输入网络得到特征图(feature map),同时将候选区域投影到特征图上得到相应的特征矩阵

3.通过ROI pooling将特征矩阵缩放到7*7尺寸大小的特征图,接着将特征图展平通过一系列全连接层得到预测结果

分类器(输出N+1个类别的概率(N为检测目标的类别,1为背景)共N+1个节点)

边界框回归器(输出对应N+1个类别的候选边界框回归参数(x,y,h,w)共(N+1)*4个节点)

损失函数:

分类损失函数+边界框回归损失函数

分类损失函数:交叉熵

回归损失函数:smoothL1

两阶段目标检测网络病害 两阶段目标检测算法_两阶段目标检测网络病害_02

两阶段目标检测网络病害 两阶段目标检测算法_深度学习_03


Faster - R-CNN:1.将图像输入到网络得到特征图

2.将特征图输入到RPN结构生成候选框,将候选框投影到特征图上获得相应的特征矩阵

3.将每个特征矩阵通过ROI-pooling层缩放到77大小的特征图,接着将特征图通过一系列的全连接层得到预测结果
RNP结构 + Fast-R-CNN
RPN结构:
将图片输入到backbone得到feature map,在特征图上使用3
3大小的滑动窗口,计算出滑动窗口中心相对于原始图像上的中心点,计算出K个anchor boxes没滑动一个位置生成一个一维的向量,通过两个全连接层输出目标概率以及边界框回归参数,针对于k个anchor box 相应的会有2K个 sorces 和 4K个coordinates。

anchor box 是规定长宽比大小的框

三种尺度(面积){128^2,256 ^2,512 ^2}

三种比例{1:1,1:2,2:1}经验所得

这样每个位置对应就会有3*3=9anchor

对于ZF感受野:171

对于VGG感受野:228

两阶段目标检测网络病害 两阶段目标检测算法_深度学习_04

两阶段目标检测网络病害 两阶段目标检测算法_深度学习_05


两阶段目标检测网络病害 两阶段目标检测算法_损失函数_06