论文精读之R-CNN(Region-based Convolutional Networks for Accurate Object Detection and Segmentation)

R-CNN是目标检测的开篇之作,后续许多工作都是基于这篇文章的思想

论文地址:https://arxiv.org/abs/1311.2524https://arxiv.org/abs/1311.2524

1 Introduction

论文精读之R-CNN(Region-based Convolutional Networks for Accurate Object Detection and Segmentation)_第1张图片

文章的导言中提到,文章提出了解决“如何利用深度网络定位物体”以及“在只有少量注释检测数据的情况下训练高容量模型”。

论文精读之R-CNN(Region-based Convolutional Networks for Accurate Object Detection and Segmentation)_第2张图片

文章提到定位物体主要有两种方法:框回归以及滑动窗口。其中,框回归需要对图像种物体数量进行特别假设,前人已经做过实验效果不佳;而滑动窗口通常用于受限对象类别,并且由于图像分辨率的影响,在卷积神经网络种感受野会很大,这使得在滑动窗口中进行精确定位非常困难。

论文精读之R-CNN(Region-based Convolutional Networks for Accurate Object Detection and Segmentation)_第3张图片

相反,文章提出一种全新的“范式”来解决CNN的定位问题,并且在目标检测和语义分割领域均取得成功;在测试时,文章的方法会为输入图像生成约 2000 个与类别无关的区域,使用 CNN 从每个区域中提取固定长度的特征向量,然后使用特定类别的线性 SVM 对每个区域进行分类。文章使用一种简单的技术(仿射图像扭曲)从每个区 域中计算出固定大小的 CNN 输入。

论文精读之R-CNN(Region-based Convolutional Networks for Accurate Object Detection and Segmentation)_第4张图片

论文精读之R-CNN(Region-based Convolutional Networks for Accurate Object Detection and Segmentation)_第5张图片

本文的第二个主要贡献是表明在数据稀缺的情况下,在大型辅助数据集 (ILSVRC)上进行有监督的预训练,然后在小型数据集(PASCAL)上进行特定领域的微调,是学习高容量CNN 的有效范例。

2 Object detection with R-CNN

2.1 Module design

论文精读之R-CNN(Region-based Convolutional Networks for Accurate Object Detection and Segmentation)_第6张图片

文章选择使用selective search作为生成候选区域的方法,该种方法主要思路是对图像分割成许多的区域之后,根据相邻区域之间各种相似度计算(颜色、纹理、尺寸)合并相似度高的区域作为候选区域。

论文精读之R-CNN(Region-based Convolutional Networks for Accurate Object Detection and Segmentation)_第7张图片

在特征提取阶段,文章选择使用AlexNet作为特征提取模块,输入为227*227的尺寸大小,选择最后的4096维特征向量作为输出。由于候选区域尺寸不是统一的尺寸,文章对每一个输入的区域进行”扭曲“处理。

论文精读之R-CNN(Region-based Convolutional Networks for Accurate Object Detection and Segmentation)_第8张图片

文章讨论了3种方法的优劣性,分别是”带有边缘像素的填充“,”不带边缘像素的填充“,以及”带边缘像素填充的最长边或最短边缩放“,其中边缘像素填充为周围的16个像素。文章发现最后一种的效果是最好的。

2.2 Test-time detection

论文精读之R-CNN(Region-based Convolutional Networks for Accurate Object Detection and Segmentation)_第9张图片

测试时,文章在测试图像上运行选择性搜索,提取约 2000 个区域(在所有实验中都使用了选择性搜索)。文章对每个区域进行”扭曲“ ,并通过CNN进行前向传播,以计算特征。然后,对于每个类别,使用针对该类别训练的SVM对提取的每个特征向量进行评分。根据图像中的所有得分区域 ,应用NMS(针对每个类别)筛选区域(如果 该区域与得分较高的选定区域的IoU大于阈值,则剔除该区域)

2.3. Training

论文精读之R-CNN(Region-based Convolutional Networks for Accurate Object Detection and Segmentation)_第10张图片

文章在训练阶段首先对大型辅助数据集( ILSVRC2012 分类)上对 CNN 进行了判别预训练, 只使用了图像级注释(该数据没有边框标签)

论文精读之R-CNN(Region-based Convolutional Networks for Accurate Object Detection and Segmentation)_第11张图片

论文精读之R-CNN(Region-based Convolutional Networks for Accurate Object Detection and Segmentation)_第12张图片

为使CNN适应新任务(检测)和候选区域,文章继续仅使用“扭曲”区域对CNN参数进行随机梯度下降(SGD)训练。 除了将CNN的ImageNet特定1000路分类层替换为随机初始化的 (N + 1) 路分类层(其中N为对象类别数 ,1 为背景)外,CNN 架构保持不变。文章将与真实框重叠度≥ 0.5 IoU 的方框为该方框类别的阳性方框,其余方框为阴性方框。

论文精读之R-CNN(Region-based Convolutional Networks for Accurate Object Detection and Segmentation)_第13张图片

文章训练一个二元分类器SVM作为类别判别器,其中正样本为真实的目标框,而IoU阈值<0.3的全为负样本。文章发现选择0.3的效果是最好的,但正负样本的选择与微调设置的阈值0.5不一样,文章在附录B进行了解释。

论文精读之R-CNN(Region-based Convolutional Networks for Accurate Object Detection and Segmentation)_第14张图片

作者解释到,由于在CNN训练过程中正样本的选择是IoU阈值大于0.5的,这样会导致正样本的数量扩大了30倍,这也是必要的,因为这样能增大样本数量,避免过拟合;而在SVM训练过程中,着重在于类别判定,因此选择真实框作为正样本也是必要的,而因为每张图像的正样本就只有一个,为了保持正负样本比例正常,IoU<0.3为负样本也是必要的。

3. Visualization, ablation, and modes of error

论文精读之R-CNN(Region-based Convolutional Networks for Accurate Object Detection and Segmentation)_第15张图片

模型训练了一个SVM解决候选框位置精确问题,文章将候选框位置准确性问题转化成了一个回归问题,具体算法如下:

论文精读之R-CNN(Region-based Convolutional Networks for Accurate Object Detection and Segmentation)_第16张图片

P^{i}代表CNN模型预测的每一个候选框,其中P_{x}^{i},P_{y}^{i},P_{w}^{i},P_{h}^{i}分别代表候选框的中心点的x坐标,y坐标,以及在候选框的宽(w)和高(h),而G^{i}代表真实框。回归模型需要预测候选框与真实框的中心点坐标的偏移量 \Delta_{x}\Delta_{y}以及候选框与真实框的宽高之间的比例\Delta_{w}\Delta_{h}。但论文中不是直接计算偏移量和宽高比例,而是进行了进一步的转化。

论文精读之R-CNN(Region-based Convolutional Networks for Accurate Object Detection and Segmentation)_第17张图片

实际上, d_{x},d_{y},d_{w},d_{h} 只是的一个转化

论文精读之R-CNN(Region-based Convolutional Networks for Accurate Object Detection and Segmentation)_第18张图片

偏移量转化的目的是为了归一化,由于不同的候选框的大小不一样,以至于偏移量也是有很大差别的,论文中使用d_{x},d_{y}是为了将坐标的偏移量归一化成0-1之间的值,好处在于对于不同候选框的大小存在较大差异的情况下,SVM进行损失函数计算时能使损失值保持在“比较好”的范围内。

同理,SVM预测得到\Delta_{w},\Delta_{h}的不一定是正数,但宽高比例必须是一个正数,所以倒不如将预测值再使用一个对数函数进行转化,得到大于0的宽高比例

这是SVM模型的损失函数,用的是平方误差。

6. Conclusion

论文精读之R-CNN(Region-based Convolutional Networks for Accurate Object Detection and Segmentation)_第19张图片

文章表明,针对数据丰富的辅助任务(图像分类)进行有监督的网络预训练,然后针对数据稀缺的目标任务(检测)对网络进行微调是非常有效的。此外,使用”带边缘像素填充的最长边或最短边缩放“和卷积神经网络进行目标检测是取得这些成果的关键因素

 

你可能感兴趣的:(计算机视觉论文精读,cnn,目标检测,人工智能,深度学习,计算机视觉)