目标检测4——Fast R-CNN(ROI Pooling、SVD、Multi-task Loss等新特性实现端到端的训练并显著提升训练和推理的速度)

发布时间:2024年01月13日

目标检测1——二阶段目标检测概述
目标检测2——R-CNN(将CNN网络应用在目标检测领域的开山之作)
目标检测3——SPPNet(空间金字塔池化可以接收任何尺度的图像)

一、基本介绍

  • ICCV-2015:Fast R-CNN
  • Fast R-CNN 是在 R-CNN 的基础上融入了 SPPNet 网络优点之后的一个改进网络
  • Fast R-CNN的优势:
    • 实现了端到端的单阶段模型训练(R-CNN 需要分别训练CNN网络,多个 SVM分类器,BB回归器)
      • 所有层的参数都可以 fine-tune 重训练
      • 不需要离线存储特征文件
      • 使用 Softmax 替换 SVM 分类器
    • 兼容任意尺寸图像 (ROI Pooling)
    • 采用奇异值分解 SVD 简化 FC 全连接层的计算量
    • 多任务损失函数 (Muti-task Loss)
    • 训练/预测运行速度更快
    • mAP评估指标更高
  • Fast R-CNN的主要问题使用SS产生候选区域块ROI区域在整个检测过程中耗时太长(SS候选框获取2~3s,特征分类0.3s),这个问题会将后续的 Faster R-CNN 中解决
  • 基于VGG16的Fast RCNN模型在训练速度上比R-CNN快大约9倍,比SPPnet快大约3倍;测试速度比R-CNN快大约213倍,比SPPnet快大约10倍,在VOC2012数据集上的mAP大约为66%
    Fast R-CNN

二、Fast R-CNN的主要改进

1. ROI Pooling

  • ROIS 是指 Selective Search 完成后得到的所有“候选框”在特征图上的映射
  • ROI(单层)就是对 SPP(三层)的简化
  • 其思路如下:
    • 将 Region Proposal 划分成 H×W 大小的网格
    • 对每个网络做 Max Pooling
    • 这样就形成固定大小为 H×W 的 Feature Map

SPP Pooling vs ROI Pooling

2. SVD 改进全连接层

在这里插入图片描述
在这里插入图片描述

3. Muti-task Loss

  • ground truth class u and ground truth bounding box v
  • L c l s ? 分类损失、 L l o c ? 定位损失 L_{cls}-分类损失、L_{loc}-定位损失 Lcls??分类损失、Lloc??定位损失
  • 分类损失是 log 损失 (即对真实分类的概率取负log) L c l s = ? l o g p u L_{cls}=-logp_u Lcls?=?logpu?
  • 定位损失是 smooth L1 损失
  • 为了确保只有在需要定义 bounding box 时才计算定位损失
    • u=0 时候选框为背景/负例
    • u≥1 时后候选框对应的类别值/正例

Muti-task Loss

Loss function of Fast R-CNN model

三、整体思路

1. 训练整体架构

在这里插入图片描述

2. 测试整体架构

在这里插入图片描述

Fast R-CNN相关思考题

1. 为什么这里可以使用Softmax替换SVM分类器?

在这里插入图片描述

2. 如何处理尺度不变性问题?

  • single scale
  • multi-scale
    在这里插入图片描述

五、参考资料

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