当前位置:首页 > 杂谈 > 正文内容

faster_rcnn 目标检测网络模型解析-resnet目标检测代码

2024-09-20 09:13:47杂谈407

faster_rcnn是由Ross B.Girshick 在2016提出的一种目标检测网络,是基于VGG16的一种卷积神经网络。首先由初期的 rcnn 演变为 fast_rcnn 最终才演变为 faster_rcnn,faster_rcnn 由四个主要部分组成,分别为 Conv layers(卷积层)、RPN(区域生成网络)、Roi Pooling(ROI 池化层)、Classifier(分类及回归)。模型的整体框架图如下图所示,以下对四个部分做出进一步介绍。

①Conv layers(卷积层)

faster_rcnn 基于的是传统的卷积神经网络,其通过 13 个卷积层加 13 个 rule 激励函数再加 4 个池化层的方式提取输入图像的特征图,并将其用于后面的 rpn 层和全连接层。

②RPN(区域生成网络)

区域生成网络的框架如下图所示,将卷积层输出的特征图再进行一次卷积将特征图数量扩展为 512。之后对特征图分别进行两个全卷积 cls layer 和 reg layer,分别得到 9 个 Anchor box 的二分类结果和四个坐标信息。

Anchor 的生成方法为,对于特征图上的每个像素点生成 16x16 的区域,并通过将面积不变长宽比变为 1:1、2:1、1:2 生成三个新的区域,并将长宽扩展为 128、256、512 生成 9 个 Anchor box,生成方式示例图如下图所示。

在每个像素点的 Anchor box 生成后需要对其进行标记和获取坐标偏移量,标记方法为计算 Anchor box 与目标区域的重叠度,重叠度等于两区域的重叠面积与并集的面积比。去掉原图的边界,若重叠度最大或大于 0.7 标记为正样本编号为 1,小于 0.3 标记为负样本编号为 0 其他的舍去。获取坐标偏移量方法为取得 Anchor box 与目标区域的中心坐标和宽高[x* y* w* h*]、[x y w h]。偏移量的计算公式如下。

③Roi Pooling(ROI 池化层)

利用 RPN 生成的特征图,将特征图划分为多个小区域,并利用 max pooling 的方法将所需的小特征图进行提取,max pooling 为取得小区域内的最大值,并作为全连接层的输入。

④Classifier(分类及回归)

最终将所有的数据通过全连接层并利用 softmax 函数对小特征图进行分类并计算其概率值及对候选边界框进行 L1 Loss 回归。

Softmax 公式为:

Smooth L1 函数计算损失值的公式为:

轻量化分割网络-残差瓶颈模块mp.weixin.qq.com/s?__biz=MzIzNDc4MzQxMg==&mid=2247488128&idx=1&sn=3bb36d35e7cc3c54c33ad078acfb537f&chksm=e8f0455bdf87cc4d53f58e1299380b4ffdc7f20d734bcdd5d200240c86e735b2ff742b39217f&token=1097541433&lang=zh_CN#rd