前文提到了目标检测-Two Stage-Fast RCNN提到了Fast RCNN主要缺点是:
Faster RCNN针对上述缺点做了改进
提示:以下是本篇文章正文内容,下面内容可供参考
近些年来随着深度学习特征提取网络的成熟,将这类特征提取网络称为骨干网(backbone)
使用RPN网络取代手工方法生成候选框,RPN网络的流程是:
- 使用3×3的卷积核窗口对共享卷积特征图(Feature Map)进行卷积,获得通道(channel)为256的输出:256 x H x W
- 使用两个1×1卷积分别对每个锚点的锚框进行卷积,获得(2 x k) x H x W个类别分数和(4 x k) x H x W个目标框参数
ps:特征图的每个像元都预先设置以该像元为中心(锚点)的k(k=9)个相同大小的锚框(anchor boxes)- 将类别分数和目标框参数合并得到k x H x W个候选框:k x H x W x 5
RoI pooling:
- 将共享卷积特征图输入到池化层,获取共享池化特征图
- 将候选框在原图的位置映射到共享特征图,以获取每个候选框的卷积特征图
- 将将候选框在卷积特征图的位置映射到共享池化特征图,以获取每个候选框的池化特征图
ps:将候选框在原图的位置映射到共享池化特征图时,为了和图像像元对齐,使用了两次量化操作(不能整除时取整对齐)
NMS:
先假设有6个矩形框,根据分类器的类别分类概率做排序,假设从小到大属于人脸的概率 分别为A、B、C、D、E、F。
- 从最大概率矩形框F开始,分别判断A~E与F的重叠度IoU是否大于某个设定的阈值;
- 假设B、D与F的重叠度超过阈值,那么就扔掉B、D;并标记第一个矩形框F,是我们保留下来的。
- 从剩下的矩形框A、C、E中,选择概率最大的E,然后判断E与A、C的重叠度,重叠度大于一定的阈值,那么就扔掉;并标记E是我们保留下来的第二个矩形框。
- 就这样一直重复,找到所有被保留下来的矩形框。
IoU:IoU 的全称为交并比(Intersection over Union),通过IoU的值可以判断边框间的重叠度,计算方式为两个框的交集和并集的比值
一种网络,四个损失函数:
? RPN classification(anchor good.bad):SoftmaxLoss
? RPN regression(anchor->propoasal):SmoothL1Loss
? Fast R-CNN classification(over classes):SoftmaxLoss
? Fast R-CNN regression(proposal ->box):SmoothL1Loss
边框修正主要由4个值完成,(tx,ty,th,tw),表示x和y方向上做出平移(由tx和ty决定),并且长宽各自放大一定的倍数(由th和ty决定)
Faster R-CNN的训练方式有三种:
对于作者采用的交替训练的方式,步骤如下:
Faster R-CNN的测试流程和训练流程相似,描述如下:
相比于之前的算法,Faster RCNN由于其端到端的特性得到广泛应用,但是受Two Stage算法思想的影响,速度仍不够快,
并且ROI Pooling有两次量化操作,会引入误差影响精度。