faster-rcnn详解(rpn,损失函数)

框架

在这里插入图片描述

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

weixin_43745234

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

火灾烟雾检测数据集

火灾烟雾检测数据集(群名:火灾烟雾检测) 1. CVPR Lab ——KMU Fire and Smoke database(视频数据,可直接下载) http

Day 14 - 安装与执行 YOLO

Day 14 - 安装与执行 YOLO 在 介绍影像辨识的处理流程 - Day 10 有提到 YOLO 模型是由 Joseph Redmon 所提出,而到了 YOLOV4 后才换成另外一群人继续发展,

Yolo(3)(项目)Yolo v3 目标检测(85分类)

目录 基础理论 一、 读取文件 二、神经网络初始化 1、搭建神经网络 2、GPU加速 三、打开摄像头、按帧读取图像 四、向神经网络输入 五、获取神经网络输出 1、获取各层名称 2、获取输出层名称 3、获取输出层图像&#xff