目标检测5——Faster R-CNN(RPN网络代替Selective Search来获取候选框)

发布时间:2024年01月14日

二阶段目标检测系列文章
目标检测1——二阶段目标检测概述
目标检测2——R-CNN(将CNN网络应用在目标检测领域的开山之作)
目标检测3——SPPNet(空间金字塔池化可以接收任何尺度的图像)
目标检测4——Fast R-CNN(ROI Pooling、SVD、Multi-task Loss等新特性实现端到端的训练并显著提升训练和推理的速度)
目标检测5——Faster R-CNN(RPN网络代替Selective Search来获取候选框)

一、基本介绍

  • Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
  • Fast R-CNN = Fast R-CNN + RPN
    • 采用 Reigion Proposal Network(RPN)网络取代 Selective Search 模块
    • 候选框生成网络 RPN 和检测网络 Fast R-CNN 共享卷积计算
      在这里插入图片描述

二、Faster R-CNN

1. CNN网络

通过 CNN 网络输出的 Feature Map 有两个应用

  • 一个是和 ROI Pooling 结合使用
  • 另一个是通过 RPN 网络

2. RPN网络

RPN的作用:选择比较好的 anchor boxes

锚框-Anchor Box

  • 9个锚框 k=9,
  • 3个尺度 scale:(128,256,512)
  • 3个宽高比 aspect ratio:(1:1,1:2,2:1)
  • 锚框大小和数量:W×H×k
    通过 scale 和 aspect ratio 的操作,让 Anchor 产生的候选框具有尺度不变性(不同大小的图像输入网络也可以正确的被识别)

在这里插入图片描述

在这里插入图片描述

RPN网络基本步骤

  • 将 Feature Map 进行一次 3×3 的卷积,以每个滑动窗口的中心点作为锚点 (anchor) 生成 9个锚框 (anchor box),再分为两个分支(输出 256×W×H)
    • Classification:识别哪些区域是前景物体、 哪些区域是背景
      • 进行一个 18 通道的 1×1 的卷积(2×k,输出 18×W×H)
      • Reshape:2k×W×H -> 2×k×W×HSoftmax:计算二分类概率
      • Reshape:2×k×W×H -> 2k×W×H
      • 输出 256×(正标签,负标签)
    • BBox Regression:获取前景区域的大致坐标
      • 进行一个 36 通道的 1×1 的卷积(4×k,输出 36×W×H)
      • 输出 128×(dx, dy, dw, dh)
  • Proposal:由普通的Python代码完成
    • 移除超出边界的 anchors (在图像内的anchor box区域宽度、高度低于最小区域大小的情况)
    • 选择出前景概率最大的 N 个proposal(论文中建议12000训练/6000预测)
    • 使用非极大值抑制 (NMS) 对候选框进行过滤 (IoU阈值0.7)
    • 对NMS结果再做 Top M 的操作,获取概率最大的 M 个 proposal (论文中建议2000训练/300预测)
      在这里插入图片描述
      在这里插入图片描述

三、Faster R-CNN相关思考题

  1. 对于一幅有多个 anchor boxes (2w),那么如何获得正负样本呢?
  2. Faster R-CNN 如何训练?—Alternating training
  3. Alternating training 训练过程?

四、参考资料

文章来源:https://blog.csdn.net/qq_45792437/article/details/135574613
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。