【每日一网】Day3:Faster R-CNN流程简单理解

Faster R-CNN

算法背景

Faster R-CNN同样使用vgg16作为网络的backbone,推理速度在gpu上达到了5fps,准确率也有进一步的提升,在2015年的ILSVRC以及coco竞赛中获得多个项目的第一名

算法流程

1、将图像输入网络得到相应的特征图
2、使用RPN结构生成候选框,将RPN生成的候选框投影到特征图上获得相应的特征矩阵
3、将每个特征矩阵通过ROI pooling层缩放到7x7大小的特征图,接着将特征图战平通过一系列的全连接层得到预测结果
在这里插入图片描述
也就是说,Faster R-CNN与Fast R-CNN只是在生抽候选框时从ss算法改成了rpn网络,其余部分都是一样 的

rpn网络

这是rpn的网络结构,conv feature map是经过backbone生成的特征图,在特征图上使用滑动窗口进行滑动,每滑动到一个位置上就生成一个一维的向量,在向量的基础上通过两个全链接层输出目标概率和边界框回归参数,图中2k scores中的2k对应的是k个anchor box中对应前景、背景的概率,针对每个anchor 又会生成4个边界框回归参数,所以有4k coordinates,256指的是在使用ZF作为backbone时输出的特征图的深度,如果使用vgg16作为backbone,则为512。

在这里插入图片描述

anchor计算方法

首先计算特征图中心点在原图中对应的位置,然后以中心点计算出k个anchor box,anchor box的大小和长宽比例都是提前人为设定好的,

在这里插入图片描述
此处生成的两个向量分别类别预测和边界框回归,
在cls中,分为两个一组,则每一组的第一个值为当前anchor预测为背景的概率,第二个值为预测为目标的概率。注意,此处仅仅只预测anchor中是前景还是背景,并不对目标进行分类。
边界框回归可按anchor分为四个一组,每一组的元素分别负责xywh的调整。
在这里插入图片描述

anchor

在原论文中,Faster R-CNN给出了三种尺度、三个比例的anchor,三种尺度分别为(128x128, 256x256, 512x512),三种比例为(1:2, 1:2, 2:1)因此每个滑动窗口在原图上都对应有3x3=9个anchor。对于zf的感受野来说是171,对于vgg来说则是228,如此有可能就会有疑问,为什么228的感受野可以预测256 甚至512的目标呢,对此作者在论文中的解释为,对于人类来说,分类一个物品不一定需要看到物体的全部,只看到物体的一部分也是有可能准确分类物体的。所以是可以预测的。
对于一张1000x600x3的图像,大约有60x40x9(20k)个anchor,忽略跨越边界的anchor以后,剩下约6k个,对于rpn生成的候选框之间存在大量重叠,基于候选框的cls得分,采用nms,iou设为0.7,这样没涨图片只剩2k个候选框。

anchor正负样本选取规则

正样本:1、anchor与gt的iou最高的一个
2、anchor与gt的iou大于0.7的
负样本:anchor与所有gt的iou晓宇0.3的

损失函数

loss函数可以分为分类损失和边界框回归损失
在pytorch官方实现的Faster R-CNN中,边界框回归损失的系数可以直接替换为跟分类损失一样的系数
在这里插入图片描述
原论文中softmax交叉熵损失则使用如下损失函数
在这里插入图片描述
pytorch中使用二值交叉熵损失函数,则cls的长度则变为k
在这里插入图片描述
边界框回归损失函数与Fast R-CNN中的是一样的
在这里插入图片描述

Faster R-CNN训练过程

Faster R-CNN直接采用RPN loss+Fast rcnn loss的联合训练方法
原论文中采用分别训练rpn以及Fast R-CNN的方法
1、利用imagenet预训练分类模型初始化前置卷积网络层参数,并开始单独训练rpn网络参数
2、固定rpn网络独有的卷积层以及全链接层参数,再利用imagenet预训练分类模型初始化前置卷积网络参数,并利用rpn网络生成的目标建议框去训练Fast R-CNN网络参数
3、固定利用Fast R-CNN训练好的前置卷积网络层参数,去微调rpn网络独有的卷积层以及全链接层参数
4、同样保持固定前置卷积网络层参数,去微调Fast R-CNN网络的全链接层参数,最后rpn网络与Fast R-CNN网络共享前置卷积网络层参数,再构成一个统一的网络

ps:zf网络感受野的计算

在这里插入图片描述

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值