两步检测算法详解:从R-CNN到Mask R-CNN

5 下载量 143 浏览量 更新于2024-08-29 1 收藏 2.22MB PDF 举报
"本文总结了从RCNN到Mask R-CNN的目标检测算法发展,包括R-CNN的基本流程、存在的问题及SPPNet的改进,最后提及了两步检测模型Light-Head R-CNN的引入。" 目标检测是计算机视觉领域中的核心任务之一,它旨在识别并定位图像中的物体。本文主要关注两步检测算法,即R-CNN(Region-based Convolutional Neural Network)及其后续改进。R-CNN由Ross Girshick等人提出,它的出现标志着深度学习在目标检测上的突破。 R-CNN算法流程如下: 1. 使用Selective Search等方法生成1K到2K个候选区域(RoIs,Region of Interest),这些区域大小不一。 2. 对每个缩放后的RoI(warped region)应用预训练的CNN(如AlexNet或VGG)提取特征,并将特征保存到磁盘。 3. 读取特征,将其输入到每个类别的支持向量机(SVM)分类器,判断RoI是否包含该类物体。 4. 使用位置回归器调整RoI的位置,以更精确地框定物体。 R-CNN的优势在于: - 结构清晰,易于理解。 - CNN自动提取特征,减少了人工特征工程的需求。 - Selective Search减少了候选区域数量,提高了检测质量。 - 相比滑动窗口法,提高了预测精度。 然而,R-CNN也存在显著的局限性: - 计算效率低,每个RoI都需要单独处理。 - 固定尺寸的RoI可能导致物体比例失真,丢失细节。 - 非端到端训练,需要多阶段完成,包括预训练、微调、存储特征、训练SVM和位置回归。 - 磁盘存储大量特征,耗时且占用空间大。 - 候选区域生成过程耗时。 - 预测速度极慢,一张图片可能需要近50秒。 为解决这些问题,何凯明提出了SPP-Net(Spatial Pyramid Pooling Network)。SPP-Net将特征提取与RoI生成顺序反转,先提取全局图像的特征,然后对不同大小的RoI进行池化。这样避免了重复计算,提高了速度,同时保持了特征的尺度不变性。 随着研究的深入,Mask R-CNN进一步扩展了R-CNN系列,不仅检测物体,还能实现像素级的语义分割,即预测物体的精确轮廓。Light-Head R-CNN则是一种轻量级的改进模型,旨在提高检测速度,降低计算复杂度,同时保持一定的检测性能。 总结来说,从RCNN到Mask R-CNN的发展体现了目标检测技术的进步,从最初的基于区域的方法到现在的端到端网络,不断优化着检测速度、精度和效率。这些算法的演进为实际应用提供了更强大、更灵活的工具。