笔记二 | Rich feature hierarchies for accurate object detection and semantic segmentation
分为三个部分
第一部分 region proposal
方法 selective search
一
二 用R-CNN做目标检测
算法流程:提取候选的region,然后提取
1 Region proposal
主要采用了selective search算法进行候选区域(region proposal)的提取过程,并能够生成约2,000个候选区域
2 Feature extraction
2.1 提取过程
对每个region proposal都先转换为227×227大小的图像,并通过Alexnet(包含5层卷积层和2层全连接层)的技术提取出4096维的特征向量
2.2 网络框架
该链接采用了基于Caffe框架的结构设计。供参考访问详细文档
2.3 网络描述
2.3.1 输入region的尺寸需要调整到与网络输入一致
在进行特征提取前,需要先将每个建议框调整到227×227的尺寸。
【调整方法】原文讨论了好几种调整的方法
2.3.2 时间空间复杂度分析
【参数量】
因为我们在region上首先使用CNN模型实现了特征数据的提取,并随后应用SVM算法完成了区域分类任务。这使得SVM输入数据维度从360K大幅降低至4K-dimension。
时间
【存储】
采用本文所述方法时,R-CNN提取出的特征矩阵尺寸为2,000乘以4,096(即区域数量与每维特征空间的维度)。对应的SVM权重矩阵则为4,096行N列(其中每行对应特定维度的空间信息与类别数目)。在分类过程中,则只需将上述两个矩阵相乘即可完成识别步骤。
传统方法 :高纬度features作SVM分类时,需要大量的内存存储
相比较而言,本文中降维提取的特征所需要的内存是很小的
3 训练
3.1 CNN预训练
有监督预训练:基于CNN在ILSVRC2012数据集上的预训练(带有标签的图像但未标注边界框),经过这一层处理后,4096维特征被映射到包含1000个类别标签的ILSVRC分类数据集。通过这种预训练方法,AlexNet模型显著提升了其在图像分类任务中的特征提取能力。
3.2 Domain-specific fine-tuning(调优)
为了将CNN应用于新的检测任务以及新的domain(warped VOC windows),则需采用SGD算法对网络参数进行重新训练。此时网络输入来源于VOC中被包裹的区域建议。
【网络的调整】
替换层:采用预训练时的 1000 通道分类层替代表示性初始化下的 21-way 分类层(该分类层包含 VOC 的 20 个类别以及背景类别)。
【分类标准】
正样本(positive example):region proposals与ground-truth box的

负样本(negetive example):region proposals 与 ground-truth box 的

【训练过程】
通过采用SGD算法进行训练,并结合小批量采样策略,在各类别中各选取32个正样本以及从各类别中选取96个负样本
计算它们的平均损失函数的值来更新参数,学习率为0.001(预训练时的0.1倍)。
3.3 SVM训练
R-CNN网络生成一个4096维的特征向量序列,并将其输入到支持向量机(SVM)中进行目标识别类别。该算法通过计算样本与各个类别的相似度值来确定目标所属的具体类别,并通过构建多个独立的学习器来提高分类精度和鲁棒性。
【训练方法】
真实标注样本为(Ground-truth bounding boxes)通过CNN提取得到的特征向量。
负样本为与所有标定真值边界框的

的region proposals经CNN提取后的特征向量。
由于负样本的数量极为庞大,在实际应用中难以直接获取足够数量的真实难负样本。因此采用难负样本挖掘方法筛选出最具代表性的negative samples并反向传播用于训练模型。通过持续优化使模型能够有效识别并纠正误判情况直至达到最佳性能水平
【讨论】
为了在SVM训练中有效区分正负样本,在此阶段选择IoU值设定为0.3作为筛选标准。因为SVM模型特别适合于小规模数据集的训练,并且能够在此情况下更好地捕捉特征差异。从而使得对IoU指标的要求更加严格。而当CNN模型面对的数据量较小时往往容易出现过拟合现象,并且在这种情况下容易丢失重要的特征信息。因此相应地将IoU指标的标准放宽至0.4作为判别标准。
调优训练的正样本IoU宽松,不强调位置的精准性
| 正样本 | 负样本 | |
|---|---|---|
| SVM | 标定的真值边界框 | 难负样本挖掘方法筛选 |
| CNN | 与标定真值边界框IoU大于等于0.5的建议框 | 随机抽样 |
用SVM代替softmax分类,mAP由50.9%提升到54.2%。
3.4训练结果
三 可视化,消融实验,误差模式分析
1 可视化学习特征
文章提出一种简单,无参数方法来直接显示网络学习到的内容。
1.1 思路
核心概念是提取一个特征,并将其用作目标检测装置。具体操作包括计算该特征在大量区域建议框(1000万)中的激活值。按照激活值从高到低进行排序。采用非最大值抑制方法筛选并呈现表现最优的区域。
1.2 实验做法
通过可视化分析Alexnet的pool5层特征图(即units),其中每个units对应的空间维度大小为6×6,在原输入图像尺寸为227×227的情况下,每个units的感受野尺寸为195×195。
在VOC 2007数据集上进行过精细调优后,在下图中可以看到的是每一个池化层五单元(pool5)对应的激活值排序后的前16个最高分:

可以看出所选的六个unit各自涵盖了独特的知识体系;其中第一行聚焦于人脸特征识别,第二行则深入探究了狗的脸部结构及其图案排列方式;整个网络架构展示了在池化层5中提取的有效表征,并融合了基于类别特化的特征以及与形状、纹理等相关的细节信息
2 消融实验
2.1 实验内容
研究了fine-tune阶段中CNN网络后三层的分类能力,并通过提取各层特征并利用SVM进行分类评估
【各层介绍】
pool5:输出9216维的特征向量
全连接层6:对pool5左乘一个4096×9216的权重矩阵,再对结果添加bias,并半波整流
全连接层7:其功能是对fc6的特征进行4096×4096权重矩阵的矩阵乘法运算,并加入一个大小为4096×4096的bias向量;随后对计算结果进行半波整流处理。
2.2 实验介绍及结果分析
2.2.1 实验一:不对网络进行fine-tuning,只在ILSVRC 2012上对CNN参数预训练

实验结果显示,在经过fc7层处理后,其分类效果较弱。这表明可以通过去除该层(节省约29%的参数量)来优化模型性能而不影响其平均精度。
文中提到:CNN表现出主要得益于卷积层的作用,而非随后的全连接层拥有大量参数数量。
2.2.2 实验二:在VOC 2007 trainval数据集上进行fine-tuned:

可以看到fc7的mAP提升了8%,且fc6和fc7层mAP的提升远大于pool5层
主要体现在池化层5(pool5)的学习结果中。其中第6和第7层(fc6, fc7)的表现得益于提取了具有领域特定且非线性的特征。
2.2.3 实验三:与同期其他特征学习方法的比较
DPM ST represents a model that has established middle-level feature representations for object contour and object detection tasks.
DPM HSC

可以看到任一种R-CNN的性能都优于三种基于DPM的方法
3 误差分析
基于Hoiem的《Object Detection Error Analysis》,在图4和图5中讨论了相关内容

四 边界框回归
在进行误差分析时会发现存在定位误差。假设有标定的目标边界框和建议框,在某些情况下即使被分类器误识别为飞机。然而由于定位不够精确导致与其对比。其与真值边界框的IoU较低相当于未正确识别飞机
我们可以采用边界框回归方法来减少目标定位误差。其基本思路是通过对定位不够准确的建议框进行精细调整优化,使得调整后的边界框与真实边界框更为精确匹配,并显著提升了定位准确性。
构建一组涵盖Pascal VOC数据集全部20个类别的线性回归模型,在对建议框进行SVM评分后,在CNN顶层推导出新的目标边界框位置。实验结果显示,在采用边界框回归方法后,定位错误数量显著减少,并使mAP值提高了约3%-4%
对上述的问题,进行修正
Bounding box regression
构建了一个线性回归模型用于预测一个新的检测区域,并将其作为selective search region proposal采用后,优化了检测精度
五 应用于语义分割
Semantic segmentation
Region分类任务属于语义分割的标准方法之一。因此使得R-CNN在PASCAL VOC分割挑战中的应用成为可能。本文将目光转向同期领先的语义分割系统O2P,在保持一致性的前提下采用了他们的开源框架。首先基于CPMC的方法能从每张图像生成150个区域建议;其次在每个类别中使用支持向量回归(SVR)来评估这些区域的质量。此外在区域层面结合多特征类型的基础上采用二阶池化技术
用于分割的CNN特征
研究者们进行了评估,在CPMC区域上计算特征采用了三种不同的策略。其中一种一致的做法是将包含该区域的矩形窗口统一转换为固定大小的... 227×227尺寸。
该算法(Full):该算法不考虑区域的形状特征,并在变形窗口中直接提取CNN特征,在实现目标检测的过程中具有相似的操作流程
但这样的缺点就是没有考虑到region具有的non-matrix shapes的特性, 导致两个可能高度重叠但区域较小的region拥有非常相似的bounding boxes.
第二种方法(fg)计算一个区域的foreground mask上的CNN features。
第三种方法是(full+fg):

在VOC 2011上验证集上的结果
fc6的结果好于fg
masked region又好于full
六 补充
1 目标建议框的变换
CNN网络规定输入必须为统一大小227\times 227;然而proposal框可为任意大小矩形框;因此为了使proposal能够适应进入CNN网络的需求;需将其转换成适合接收的标准尺寸。
1.1 尺寸变换
有两种变换方法:
tightest square with context:用最小包围框包裹proposal,并对该框内的图像进行尺寸调整以适应CNN输入;另一种变体则是仅保留与proposal相关的区域
wrap:直接将proposal缩放成CNN输入尺寸,改变长宽比。
1.2 padding
对proposal的周围进行填充。
2 正负样本选取以及softmax
2.1 正负样本的选取
根据文中所载,在微调过程中和SVM训练阶段对正负两类样本的划分方式存在差异:具体而言,在微调环节中将与ground-truth boxes具有交并比值不低于0.5的所有proposal划为positive samples(即正类),而将剩余的所有proposal归类为background samples(即negative samples);而在SVM训练过程中,则将所有与ground-truth boxes匹配且满足交并比值低于0.3的所有proposals视为positive samples,并将那些未能达到这一条件的要求范围内的proposals剔除作为negative samples处理
【原因解释】
在采用SVM模型进行分类任务时,默认的数据来源是基于从ImageNet平台预训练完成后提取的有效特征。在此阶段并未实施任何微调优化。通过实验研究发现,在当前正负样本定义方法下取得了较好的分类效果。然而,在实施微调过程中发现,在保持与SVM一致的正负样本划分标准的情况下,并未达到与现有方法相当的效果表现。
在fine-tuning阶段中利用了大量IoU值介于0.5至1之间的真实示例(被称作"jittered" samples),从而将正面样例的数量提升了约30倍左右。研究者推测,在此过程中较大的训练集有助于提升模型性能并防止过拟合现象的发生;然而这些被称作"jittered" samples的真实示例本质上是次优解而非经过精细调优后的精确定位结果
2.2 softmax分类与SVM
由section 2.1可知,在微调阶段无法实现精确定位。这引发了另一个问题:为什么要采用SVM进行后续训练而非直接使用经微调后的网络最后一层来进行分类?
在对VOC 2007数据集进行实验测试后,在应用softmax进行分类任务时,其平均精度(mAP)从54.2%降至50.9%。这一现象可能的原因
- 在fine-tuning阶段被定义为不特别关注定位准确性;
- softmax分类器基于随机采样的negative examples进行训练;而SVM则采用hard negatives子集来完成训练。
鉴于性能差异较小,作者认为可以通过采用额外的微调手段来缩小性能差异,并且将Softmax(记作S)替代SVM(记作T),从而在不损失性能的前提下同时使得训练过程得以简化并加快速度。
3 边界框回归(Bounding-box regression)
通过bounding-box回归阶段优化定位性能,在一类的支持向量机(SVM)上获得proposal的分数之后,采用一个类别特异的bounding-box回归器来预测一个bounding box。
3.1 训练算法
[ 算法输入 ] 输入为N个训练对

,其中

表示了proposal

中心像素点的坐标。每个ground-truth bounding box

也由

来表示。
训练目标是学习一种能够将proposal

映射为ground-truth bounding box

的变换。
[ 算法介绍 及 训练过程]
各维度的变换函数为

,实现为:

前两个函数实现的是平移变换:

后两个函数实现的是一个对数空间的尺寸缩放变换:

每个变换函数

都是线性函数,在CNN最高层特征图上建模,输入为proposal在

的特征(这一点很重要!!特征是从CNN的pool5层得到的),用

表示。
根据上述定义,将原proposal变换函数与输入的关系可以描述为:

。

是可学习的参数向量,学习

可以通过优化下面的正则化最小二乘目标(岭回归ridge regression):


的定义如下:

其含义为真正需要的平移量

和尺寸缩放量

训练损失函数为

经过训练,就能通过proposal在CNN顶层的特征

,根据学习到的参数

预测出

,进而得到需要的平移变换

和尺寸缩放

,实现更精确的目标定位 。
[ 有关bounding-box回归实现时的两个问题 ]
一是正则化:在验证集上设置

二是要注意训练对

的选取:
若proposal离所有ground-truth box很远,则对其做回归没有意义;
因此,在选择训练输入时,我们需要确保所选的proposal至少存在一个与某个ground-truth box接近的情况。这里所说的'接近程度'是指该proposal与所有ground-truth boxes之间的IoU值的最大值超过0.6。对于不满足这一条件的所有proposal,则会被排除。
4 特征可视化
该图展示了池化层5(Pool5)的69个特征,在VOC2007数据集中前24个最大激活响应的建议区域中进行了展示。每个特征在其池化层5(维度大小为6×6且通道数为256)的空间位置上进行了标记,在二维坐标系中用(y,x,channel)表示其所在的位置坐标。(y,x)坐标确定了感受野的位置


