二阶段目标检测系列文章
目标检测1——二阶段目标检测概述
目标检测2——R-CNN(将CNN网络应用在目标检测领域的开山之作)
目标检测3——SPPNet(空间金字塔池化可以接收任何尺度的图像)
目标检测4——Fast R-CNN(ROI Pooling、SVD、Multi-task Loss等新特性实现端到端的训练并显著提升训练和推理的速度)
目标检测5——Faster R-CNN(RPN网络代替Selective Search来获取候选框)
一、基本介绍
- CVPR2014:Rich feature hierarchies for accurate object detection and semantic segmentation
- R-CNN 的全称为 Regions with Convolutional Neural Network Features
- R-CNN 是一种基于 Region Proposal 的 CNN 网络结构
- R-CNN 是将深度学习应用到目标检测领域的经典之作,并凭借卷积神经网络出色的特征提取能力,大幅度提高了目标检测的效果
- 尽管R-CNN显著地提高了目标检测的效果,但仍存在以下问题:
- 重复计算
- 训练测试分为多步
- 训练的空间和时间代价很高
- 检测速度较慢 10s/image (GPU)、50s/image (CPU)
- 无法输入任意尺寸大小图片
二、R-CNN的基本步骤
基本步骤
- Region Proposal:提取候选框/ROI(~2k/image,Selective Search)
- ROI 预处理:先将候选框膨胀16像素(dilate),再将候选框缩放至227×227固定大小
- 特征提取:通过 CNN 网络提取每个候选区域的图像特征(AlexNet,4096维)
- 分类与回归:
- 分类:使用 N 个 SVM 分类器(二分类,FC7,N-类别数量)
- 回归:Bounding Box Regression 进行候选框的微调(Conv5)
Bounding Box Regression
- 黄色框口 P 表示建议框 Region Proposal
P = ( P x , P y , P w , P h ) P=(P_x, P_y, P_w, P_h) P=(P