文章目录[隐藏]
框架
1、RPN
rpn工作流程:
在CNN生成的特征图上,执行一个3×3的卷积,pading设为(1,1),保证能够卷到特征图的每个位置,最后得到一个跟特征图尺寸一模一样的特征图,然后在后面并联两个1×1卷积,通道数分别为2k和4k,实现类别和边界框回归参数的预测,这里的类别是前景或背景
在cnn生成的特征图上的每个位置,生成9个anchor(假如20k),然后去除越界的anchor(剩下6k)【注意,原论文中,是在20k个anchor中采样256个正负样本,然后执行下面的操作(用这符合条件的256个anchor训练rpn网络,得到边界框回归参数和非极大值抑制,得到最终的候选框)】,对剩下的6k个anchor利用rpn预测的边界框回归参数进行调整,调整后利用非极大值去除重复率高的候选框,最终剩下2k个候选框,然后将这2k个候选框投影到特征图上,采样出正负样本 ,统一roi pooling,然后全连接,分类预测,边界框回归预测。
代码中,应用nms之前会根据预测的score初筛一遍anchor
注意:anchor与候选框不同,我们是利用rpn网络生成的边界框回归参数对anchor进行调整后得到候选框的
1.1、正样本的定义
与gt的iou大于0.7或者虽然没达到0.7但与某个gt的iou最大
1.2、负样本的定义
与所有的gt的iou都小于0.3
2、损失函数
faster-rcnn的损失函数包括两部分,PRN损失和fast-rcnn损失,比fast-rcnn多了PRN损失
2.1、rpn损失
其中
p
∗
p^*
p∗ 当为正样本是为1,当为负样本时为0,其作用与艾弗森括号相同,保证了当anchor为负样本时,没有边界框回归损失
N
r
e
g
N_{reg}
Nreg约2400是如何计算的呢:特征图的长乘以宽=60*40=2400
N
c
l
s
N_{cls}
Ncls为256即采样的用于训练rpn网络的anchor正负样本总数
原论文中,当
λ
\lambda
λ=10时,分类损失和边界框回归损失前的平衡系数近似相等,可以进行化简
2.1.1 、分类损失
rpn的分类结果只有两个类别,背景或者目标,可以使用多类别的交叉熵损失或者二分类的交叉熵损失进行实现
多分类交叉熵损失:对于每个anchor,预测两个值,分别为背景概率和目标概率
二值交叉熵损失:对于每个anchor,只输出一个值,即该anchor为目标的概率,此时,分类分支上,生成k个score即可
2.1.2 边界框回归损失
与fast-rcnn的边界框回归损失一样,同为smothL1损失
2.2 fast-rcnn损失
fast-rcnn损失函数包括两部分,分类损失和边界框回归损失,其中分类损失使用的是softmax多分类交叉熵损失,边界框回归损失使用的事smooth L1损失。
如何训练
总结:
参考链接:
https://blog.csdn.net/weixin_43745234/article/details/119576549?spm=1001.2014.3001.5501
https://www.bilibili.com/video/BV1af4y1m7iL?p=3&spm_id_from=pageDriver
版权声明:本文为CSDN博主「weixin_43745234」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43745234/article/details/119608202
暂无评论