目标检测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的主要改进
1. ROI Pooling
- ROIS 是指 Selective Search 完成后得到的所有“候选框”在特征图上的映射
- ROI(单层)就是对 SPP(三层)的简化
- 其思路如下:
- 将 Region Proposal 划分成 H×W 大小的网格
- 对每个网络做 Max Pooling
- 这样就形成固定大小为 H×W 的 Feature Map
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 时后候选框对应的类别值/正例
三、整体思路
1. 训练整体架构
2. 测试整体架构
Fast R-CNN相关思考题
1. 为什么这里可以使用Softmax替换SVM分类器?
2. 如何处理尺度不变性问题?
- single scale
- multi-scale
五、参考资料
文章来源:https://blog.csdn.net/qq_45792437/article/details/135563406
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:chenni525@qq.com进行投诉反馈,一经查实,立即删除!