【R-CNN】“Rich features hierarchies for object detection”
文章目录
1、Background
传统的目标检测是基于SIFT和HOG,但这两种方法在2010-2012年的成效停滞不前标注的数据数量少,不足以有效训练一个大型的CNN网络。因为CNN在图像分类有很重要的作用和好的效果,再加上2012AlexNet在ILSVRC上的出色表现,考虑将CNN网络转向目标检测的领域应用。
解决两大问题: 1 标注数据少不足以训练一个大型CNN网络
2 如何定位目标在图像中的位置
2、Module design
R-CNN的方法结合了两个关键的因素:
(1)在候选区域自下而上使用大型卷积神经网络CNN,用以定位和分割物体
(2)当带标签的训练数据不足时,先针对辅助任务进行有监督预训练,再进行特定任务的调优,就可以产生明显的性能提升。
2.1 Region proposals
使用Selective Search方法生成2000个类别无关的候选区域:
“Selective search for object recognition”-IJCV-2013
(1)使用一种过分割手段,将图像分割成小区域,查看现有小区域,合并可能性最高的两个区域
(2)重复直到整张图像合并成一个区域位置
(3)输出所有曾经存在过的区域,所谓候选区域
滑动窗口sliding-window detector的方法,由于更深的网络,更大的输入图片和滑动步长,使得使用滑动窗口来定位的方法充满挑战
2.2 Feature Extraction
使用2012年ILSVRC的冠军模型AlexNet(输入为227×227大小的图像)
(1)将不同大小的候选区域通过各向异性缩放, padding=16转换为227*227的大小。
( 各向异性缩放:不管图片的长宽比例,强行进行缩放)
(2)将缩放后的候选区域数据输入到AlexNet中,p5有9216个神经元,f6、f7有4096个神经元。每个输入候选框图片都能得到一个4096维的特征向量,特征输入给SVM分类器。
3 Training
3.1 Supervised per-training
物体标注训练数据少,采用随机初始化CNN参数的方法,训练数据远远不够
直接采用AlexNet的网络模型及参数,在辅助数据集ILSVRC上进行有监督的预训练(随机梯度下降法,学习速率大小为0.001)
3.2 Domain-specific fine-tuning 特定领域的参数调优
将f8的1000个神经元替换为N+1个神经元 (N为目标种类数,1为背景)
最后一层参数初始化,其他网络层参数不变。
将所有候选区域框与ground-truth区域判断IoU(重合度)
IoU>0.5 为正样本 IoU<0.5为负样本
Batch_Size = 128 (32个正样本+96个负样本),学习率=0.001
3.3 Object category classifier 训练SVM
f7我们得到20004096的特征向量矩阵,SVM=4096N
分类结果为f7 * SVM权值矩阵
将所有候选区域框与ground-truth区域判断IoU(重合度)
ground-truth区域为正样本,IoU<0.3为负样本,其余样本全部弃用。
由于数据过大,难以装进内存,我们采用hard negative mining method
hard negative mining method: 正负样本数量不均衡,且负样本代表性不够(难以分辨的负样本对于训练效果最棒),每次将棘手的错误样本重新输入进行训练,这种方法收敛性极快。
两个问题:
1. 为什么在fine-tuning和SVM训练中设置的正负样本标准不同?
CNN容易过拟合,需要大量的训练数据,所以对正样本的限制更加宽松
SVM适用于少样本训练,仅ground-truth作为正样本对训练结果更为理想
2. 为什么选择用CNN做特征提取,SVM作分类而不是直接用CNN + SoftMax直接作分类?
直接用CNN + SoftMax设置的IoU>0.5的正样本条件会使训练结果不够理想
3.4 训练Bounding Box回归模型(使定位更准确)
对于窗口一般使用四维向量(x, y, w, h)表示,红色的框P代表原始的proposal,绿色的框代表目标的Ground-truth,我们的目标是寻找一种关系使得输入原始的窗口P经过映射得到一个跟真实窗口G更接近的回归窗口G^。
注意:1. 选取λ很重要
2 我们只选取与ground-truth的IoU>0.6的候选区域进行学习
3 选取IoU>0.6是因为此时满足线性转换的条件,否则会导致训练的回归模型不work
4 Testing
1. 在测试图像上使用Selective Search选取2000个推荐区域,使用各向异性方法变形为227227大小
2. 通过CNN前向传播提取图像特征
3. 使用对N个类别训练出的SVM给整个特征向量的每个类别单独打分
4. 给出一张图像中所有的打分区域,使用***NMS(非极大值抑制)**拒绝掉一些和高分区域IoU大于设置阈值的候选框。
5. 使用Bounding Box回归出预测的区域框
非极大值抑制(NMS):选取邻域里分数最高,并且抑制分数低的窗口。假设有6个矩形框,根据分类器SVM类别分类概率做排序,从小到大属于目标类别的概率分别为A、B、C、D、E、F。从最大概率矩形框F开始,分别判断A-E与F的重叠度IoU是否大于设定的阈值,假设B、D与F的IoU超过阈值,就抛弃B、D,并标记第一个矩形框F;从剩下的矩形框A、C、E中继续进行上一步骤,直到找到所有被保留下来的矩形框。
5 Conclusion
R-CNN的取得良好效果的关键之处在于:
1 在候选区域自下而上使用大型卷积神经网络CNN,用以定位和分割物体
2 当带标签的训练数据不足时,先针对辅助任务进行有监督预训练,再进行特定任务的调优。 “有监督的预训练+特定领域的调优”这一范式对于数据稀少的视觉问题是很有效的。
6 引用关键文献整理
SIFT “Distinctive image features from scale-invariant keypoints”-IJCV-2004
HOG “Histograms of oriented gradients for human detection”-CVPR-2005.
随机梯度下降 “Backpropagation applied to handwritten zip code recognition”-1989
AlexNet “ImageNet classification with deep convolutional neural networks”-NIPS-2012
AlexNet广泛应用 “DeCAF:A Deep Convolutional Activation Feature for Generic Visual Recognition”-2014
OverFeat “OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks”
DPM “Object detection with discriminatively trained part based models”-2010
定位分析工具 “Diagnosing error in object detectors”-ECCV-2012