Faster R-CNN 基本原理及网络模型

Faster R-CNN

Faster R-CNN主要贡献是提出RPN网络,用于替代Selective Search或其他的图像处理分割算法,实现端到端的训练(end-to-end)。

1.卷积层后插入RPN

RPN经过训练后直接产生Region Proposal,无需单独产生Region Proposal

 

2. RPN后接ROI Pooling和分类层、回归层,同Fast R-CNN

 

候选区域(anchor

特征图可以看做一个尺度51*39256通道图像,对于该图像的每一个位置,考虑9个可能的候选窗口:三种面积{1282,2562,5122三种比例{1:1,1:2,2:1}这些候选窗口称为anchors。下图示出51*39anchor中心,以及9anchor示例。

网络结构(RPN

  • 用一个小窗口滑动(3*3),生成256-d向量(N, H, W, 256
  • 连接分类层和Box回归层:分类层为2分类(前景和背景)。
  • 3*3的窗口提供了图像的局部信息
  • Box回归提供了更佳的定位信息。

  • 每个位置有NAnchor
  • 回归输出Anchor Boxes的偏移量
  • 分类器指定每个Anchor为前景的概率

 

1. 在原文中使用的是ZF model,其Conv Layers 中最后的conv5层num_output=256,对应生成256张特征图,所以相当于feature map每个点都是256-dimensions

2.在conv5之后,做了rpn_conv/3x3卷积,相当于每个点又融合了周围3x3的空间信息。
3.假设在conv5 feature map中每个点上有k个anchor(默认k=9),而每个anhcor要分foreground和background,所以每个点由256d feature转化为cls=2k scores;而每个anchor都有[x, y, w, h]对应4个偏移量,所以reg=4k coordinates
4.全部anchors拿去训练太多了,训练程序会在合适的anchors中随机选取128个postive anchors+128个negative anchors进行训练

网络结构(RPN(resnet-101)

Name

Output

Param

res4b22

N, W, H, 1024

 

rpn/output

N, W, H, 256

K3, p1, s1

rpn_cls_score

N, W, H, 18

K1,p0, s1

rpn_cls_score_reshape

N, 2, W*H/2, 18

 

rpn_loss_cls

输入:rpn_labels

Weight:1

 

Name

Output

Param

res4b22

N, W, H, 1024

 

rpn/output

N, W, H, 256

K3, p1, s1

rpn_cls_score

N, W, H, 18

K1,p0, s1

rpn_cls_score_reshape

N, 2, W*H/2, 18

 

rpn_loss_cls

输入:rpn_labels

Weight:1

 

AnchorTargetLayer

bottom: 'rpn_cls_score'

bottom: 'gt_boxes'

bottom: 'im_info'

bottom: ‘data‘(特征图)

top: 'rpn_labels'

top: 'rpn_bbox_targets'

top: 'rpn_bbox_inside_weights'

top: 'rpn_bbox_outside_weights'

 

Proposal Layer forwardcaffe layer的前传函数),即测试时,按照以下顺序依次处理:

1.生成anchors,计算得分。
2.利用im_info将fg anchors从MxN尺度映射回PxQ原图,判断fg anchors是否大范围超过边界,剔除严重超出边界fg anchors。
3.按照输入的foreground softmax scores由大到小排序anchors,提取前pre_nms_topN(e.g. 6000)个anchors,即提取修正位置后的foreground anchors。
4.进行nms(nonmaximum suppression,非极大值抑制)
5.再次按照nms后的foreground softmax scores由大到小排序fg anchors,提取前post_nms_topN(e.g. 300)结果作为proposal输出。
6.background样本同上。
根据筛选的Anchors计算rpn_bbox_targets

RPN损失:分类损失+正样本的SmoothL1Loss

Fast R-CNN模块网络结构

训练:

缩进Faster CNN的训练,是在已经训练好的model(如VGG_CNN_M_1024VGGZF)的基础上继续进行训练。实际中训练过程分为6个步骤:

1.在已经训练好的model上,训练RPN网络rpn_train1
2.利用步骤1中训练好的RPN网络,收集proposals, rpn_test
3.第一次训练Fast RCNN网络,fast_rcnn_train1
4.第二训练RPN网络,rpn_train2
5.再次利用步骤4中训练好的RPN网络,收集proposals, rpn_test
6.第二次训练Fast RCNN网络,对应fast_rcnn_train2

 

检测结果: 

 

R-CNN

Fast R-CNN

Faster R-CNN

Test time per image (with proposals)

50 seconds

2 seconds

0.2 seconds

Speedup

1x

25x

250x

mAP (VOC 2007)

66.0

66.9

66.9

 

Res-Net 101 + Faster R-CNN + some extras

 
 

ImageNet 检测结果:2013-2015 

 

参考文献:

https://arxiv.org/abs/1506.01497 

 
 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 不是,YOLOv5和Faster R-CNN都是目标检测算法,但它们采用了不同的方法。YOLOv5是一种单发多框检测器(single-shot detector),它使用一个神经网络直接预测边界框的位置和类别,具有实时性和较高的准确率。而Faster R-CNN则采用了两个阶段的方法,首先使用一个区域提议网络(Region Proposal Network)生成候选物体框,然后再对这些框进行分类和位置回归。虽然两种方法都能够达到较好的检测效果,但它们在设计上有很大的区别。 ### 回答2: Yolov5不是Faster R-CNN。它们是两种不同的目标检测算法。 Faster R-CNN是一种经典的目标检测算法,它基于深度学习模型,包括两个主要模块:Region Proposal Network(RPN)和Fast R-CNN。它首先使用RPN生成候选目标区域,然后使用Fast R-CNN对这些候选区域进行分类和边界框回归。Faster R-CNN具有较高的准确性,但在速度方面相对较慢。 相比之下,Yolov5是一种全新的目标检测算法,是Yolov4的改进版。Yolov5的核心思想是将目标检测任务转化为单阶段的回归问题,通过预测目标的类别和边界框。它采用了轻量级网络结构和改进的特征金字塔网络,以提高检测的准确性和速度。Yolov5相对于Faster R-CNN,在速度方面有明显的优势,同时在识别小目标等方面也有很好的表现。 综上所述,Yolov5和Faster R-CNN是两种不同的目标检测算法,它们在原理和性能上有所不同。选择使用哪种算法取决于具体的应用需求和性能要求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值