深度之眼Pytorch框架训练营第四期——目标检测与Faster RCNN

目标检测与Faster RCNN

1、图像目标检测是什么?

目标检测的核心是:判断图像中目标位置,这里涉及到两个对象,一个是目标,一个是位置,因此目标检测的两要素为:

  • 分类:即对目标进行分类,得到分类向量 [ p 0 , … , p n ] [p_0,\ldots, p_n] [p0,,pn],通常是一个 n + 1 n+1 n+1维的向量,背景为第0类
  • 回归:确定回归边界框: [ x 1 , y 1 , x 2 , y 2 ] [x_1, y_1, x_2, y_2] [x1,y1,x2,y2]
2、模型是如何完成目标检测的?

模型要完成目标检测,必须完成两个方面的内容,首先是目标的位置在哪里,其次这个目标是属于什么类别,因此在目标检测中,模型需要把输入的一个三维张量通过复杂的运算,最终输出两个张量:

  • 分类张量:形状为 [ N , c + 1 ] [N, c+1] [N,c+1]
  • 边界框张量:形状为 [ N , 4 ] [N, 4] [N,4]

这里涉及到一个非常重要的问题——目标个数(边界框数量) N N N如何确定?

  • 传统方法:滑动窗策略。在一张图像中,利用一定大小的框逐像素进行滑动,遍历整张图片,这种方法的缺点非常明显,那就是
  • 重复计算量大
  • 窗口大小难确定

利用卷积可以减少重复计算,由于特征图一个像素对应原图一块区域,因此由于滑动产生的不同窗口就对应于特征图中不同的像素点,这样就可以避免重复计算

3、深度学习目标检测模型简介

在这里插入图片描述
从上图可以看出,目标检测的发展可以分为两个阶段,2014年之前为第一阶段,这一时期都是使用传统方法进行目标检测,而2014年 R C N N RCNN RCNN问世后,标志着目标检测进入了深度学习阶段, F a s t   R C N N Fast \ RCNN Fast RCNN F a s t e r   R C N N Faster \ RCNN Faster RCNN都是与 R C N N RCNN RCNN一脉相承的,这一派是属于 Two-stage ,而以 Y O L O YOLO YOLO为代表的网络属于 One-stageTwo-stageOne-stage 的区别如下:

在这里插入图片描述

从上图可以看出 One-stageTwo-stage 的区别就在于是否有 proposal generation 这个区域,这个木块是区域推荐模块,可以生成推荐的区域,输出的是候选框

4、PyTorch中的Faster RCNN训练
(1)Faster RCNN 数据流
  • Feature map
  • Softmax
  • Regressors
  • NMSOUT
  • ROILayer
  • FC1与FC2
  • c+1 Softmax
  • Regressors
(2)Faster RCNN 代码结构
  • torchvision.models.detection.fasterrcnn_resnet50_fpn() 返回 FasterRCNN实例
  • class FasterRCNN(GeneralizedRCNN)
  • class GeneralizedRCNN(nn.Module)
  • forward():
    • features = self.backbone(images.tensors)
    • proposals, proposal_losses = self.rpn(images, features, targets)
    • detections, detector_losses = self.roi_heads(features, proposals, images.image_sizes, targets)

解释:通过torchvision.models.detection.fasterrcnn_resnet50_fpn()调用模型,返回的是FasterRCNN实例,而FasterRCNN是继承于GeneralizedRCNNGeneralizedRCNN又是继承于nn.Module,里面最重要的forward函数中包含三个部分,一个是通过backlone得到特征图,然后利用rpn得到推荐区域以及利用roi_heads得到检测结果

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值