系列文章目录
目标检测之RCNN: OD-Paper【1】:Rich feature hierarchies for accurate object detection and semantic segmentation 目标检测之Fast RCNN: OD-Paper【2】:Fast R-CNN 目标检测之Faster RCNN: OD-Paper (Faster R-CNN)【3】:Towards Real-Time Object Detection with Region Proposal Networks
文章目录
- 系列文章目录
- 前言
- 1. Abstract & Introduction
-
- 1.1. Abstract
- 1.2. Introduction
- 2. Object detection with R-CNN
-
- 2.1. Algorithm process
- 2.2. Module design
-
- 2.2.1. Region proposals
- 2.2.2. Feature extraction
- 2.2.3. SVM classifier
-
- 2.2.3.1. 非极大值抑制
- 2.2.4. Regressor correction
- 3. R-CNN存在的问题
- 总结
前言
RCNN(Regions with CNN features)是将CNN该方法应用于目标检测问题的里程碑CNN通过良好的特征提取和分类性能RegionProposal实现目标检测问题转化的方法。
本文主要解释论文,并解释相关内容RCNN框架的部分
1. Abstract & Introduction
1.1. Abstract
本文的方法结合了两个关键因素:
- 高容量卷积神经网络在候选区域自下而上使用(CNNs)(网络容量:人工神经网络塑造复杂函数的能力),用于定位和分割对象。
- 当标签培训数据不足时,首先对辅助任务进行监督的预培训模型,加上特定领域的微调,可以产生显著的性能改进。
本文将候选区域(region proposals)与CNNs因此,本文称这种方法为组合 R-CNN(Regions with CNN features):具有CNN特征候选区域。
1.2. Introduction
本文主要关注两个问题:使用深度网络定位目标和在小规模标记数据集中进行高容量网络模型培训。
与图像分类不同,检测需要在图像中定位许多物体。一种方法是将定位视为回归问题。另一种替代方法是通过这种方法构建滑动窗探测器CNNs至少20年了。通常用于一些有限的物体类别,如人脸、行人等。为了保持高空间分辨率,这些CNNs只有两个卷积层和两个池化层。
相反,这篇论文是通过使用的用候选区识别解决了方法CNN定位问题(这在目标检测和语义分割方面都取得了成功)。在测试过程中,本文的方法是输入图像,生成接近使用与个别类别无关的候选区域CNN从每个候选区域提取一个固定长度的特征向量,然后借助专门针对特定类别的线性SVM对每个候选区域进行分类。我们不考虑该区域的大小,使用放射图像变形的方法对每个候选区域产生固定长度 CNN 输入特征向量(即将不同大小的候选区域放置在同一大小)。下图显示了我们方法的概述,并突出了一些实验结果。因为我们的系统结合了候选区域和CNNs,所以起名为R-CNN(regions with CNN features):具有CNN特征候选区域。
2. Object detection with R-CNN
2.1. Algorithm process
RCNN算法过程可分为四个步骤:
- 图像生成1000~2000个候选区域(使用)Selective Search方法)
- 使用深度网络提取每个候选区域的特征
- 特征送到每一类SVM分类器,判断它是否属于这
- 使用回归器细修正候选框的位置
2.2. Module design
2.2.1. Region proposals
利用Selective Search算法通过图像分割获得一些原始区域,然后使用一些合并策略合并这些区域,获得一个包含可能需要的物体的层次化区域结构。
2.2.2. Feature extraction
使用深度网络提取每个候选区域的特征。将2000个候选区域缩放到 ,然后将候选区域输入事先训练好的候选区域AlexNet CNN获取4096维网络的特征 矩阵。 这里的CNN图像分类网络,但去掉最后一层全连接层,得到输出的4096维向量。
2.2.3. SVM classifier
将 特征与20个SVM权值矩阵的组成 相乘,获得 矩阵表示每个建议框都是对某个目标的得分。分别对上述进行评分 矩阵中的每一列都是每一类 剔除重叠建议框,得到该列即该类中得分最高的一些建议框。
注:为便于观察,图片中的向量为转移后
可以理解为,每列向量表示图片中的分类框对应该列的概率
- 左矩阵:每行通过每个特征框CNN分类网络后获得的特征向量
- 中间矩阵:即SVM权值矩阵,每列对应一类权值向量
- 右矩阵:假设中间矩阵的第一列表示猫,第二列表示狗,左矩阵的第一行乘以中间矩阵的第一列,得到右矩阵的第一行元素,即猫的概率的第一个候选框
- 为了消除一些重叠的建议框,对右侧矩阵的每一列(即每一类)进行非极大抑制
- 如右边矩阵的第一列表示的所有候选框为猫的概率
2.2.3.1. 非极大值抑制
IoU (Intersection over Union)
- 数学表示: ( A ∩ B ) / ( A ∪ B ) (A\cap B) / (A\cup B) (AB)/(A∪B)
- 对于每一个类别的使用
- 寻找得分最高的目标
- 计算其他目标与该目标的IoU值
- 删除所有IoU值大于给定阈值的目标
- 此处的删去的目标指的是那些跟最高得分重叠多的部分,IoU虽大,但是分数不是最高的,分数最高的留一个就够了
- 目的是剔除重叠框架,IoU值越大说明重叠区域越多
2.2.4. Regressor correction
使用回归器精细修正候选框位置,对 处理后剩余的建议框进一步筛选。接着分别用20个回归器对上述20个类别中属于的建议框进行回归操作,最终得到每个类别的修正后的得分最高的bounding box。
经过回归分类器之后,会得到4个参数:目标建议框的中心点的x偏移量、y偏移量,边界框高度的缩放因子、宽度缩放因子
如图,黄色框口 表示建议框Region Proposal,绿色窗口 表示实际框Ground Truth, 红色窗口 表示Region Proposal进行回归后的预测窗口,可以用最小二乘法解决的线性回归问题。
3. R-CNN存在的问题
- 测试速度慢 测试一张图片约53s(CPU)。用Selective Search算法提取候选框用时约2s,一张图像内候选框之间存在大量重叠,提取特征操作冗余。
- 训练速度慢 过程极其繁琐
- 训练所需空间大 对于SVM和bbox回归训练,需要从每个图像中的每个目标候选框提取特征,并写入磁盘。对于非常深的网络,如VGG16,从VOC07训练集上的5k图像上提取的特征需要数百G的存储空间
总结
翻译参考 本文笔记源自b站Up主的讲解