论文精读:Fast R-CNN

Abstract

本文提出了一种基于快速区域的卷积网络方法(Fast R-CNN)进行目标检测。Fast R-CNN建立在之前的工作基础上,使用深度卷积网络有效地对目标建议进行分类。与之前的工作相比,Fast R-CNN采用了一些创新来提高训练和测试速度,同时也提高了检测精度。FastR-CNN训练非常深的VGG16网络比R-CNN快9×,在测试时快213×,并且在pascalVOC2012上实现了更高的mAP。与SPPnet相比,FastR-CNN训练VGG16 3×的速度更快,测试速度更快10×,而且更准确。

1. Introduction

        近年来,深度卷积网络[14,16]显著提高了图像分类[14]和目标检测[9,19]的精度。与图像分类相比,目标检测是一个更具挑战性的任务,需要更复杂的方法来解决。由于这种复杂性,目前的方法(如[9,11,19,25])在多阶段管道中训练模型是缓慢和不优雅。

        复杂性的出现是因为检测需要对物体的精确定位,这就产生了两个主要的挑战。首先,必须处理许多候选对象位置(通常称为“建议”)。其次,这些候选对象只提供粗略的定位,必须进行细化才能实现精确的定位。这些问题的解决方案往往会影响速度、准确性或简单性。在本文中,我们简化了最先进的基于卷积神经网络的对象检测器[9,11]的训练过程。我们提出了一个单阶段的训练算法,联合学习分类目标建议和优化他们的空间位置。

        所得到的方法可以比R-CNN[9]的检测网络快9×,比SPPnet[11]快3×。在运行时,检测网络在0.3秒(不包括目标建议时间)内处理图像,同时在pascal VOC2012[7]上达到最高的精度,mAP为66%(而R-CNN为62%)。

1.1.基于区域的卷积网络方法

        (RCNN)[9]通过使用深度卷积网络对目标建议进行分类,获得了良好的目标检测精度。然而,R-CNN也有明显的缺点:

        1.培训是一个多阶段的管道。R-CNN首先利用日志损失对对象建议进行精细计算。然后,它将支持向量机适合ConvNet特性。这些支持向量机充当对象检测器,取代通过微调学习的软最大类器。在第三个训练阶段,学习边界盒回归变量。

        2.训练在空间和时间上都是昂贵的。对于SVM和边界框回归器训练,从每幅图像中的每个对象提议中提取特征并写入磁盘。对于非常深的网络,如VGG16,这个过程对于VOC07训练集的5k图像需要2.5gpu天。这些特性需要数百gb的存储空间。

         3.对象检测的速度很慢。在测试时,从每个测试图像中的每个对象建议中提取特征。用VGG16检测需要47秒/图像(在GPU上)。

        SPPnet也有明显的缺点。与R-CNN一样,训练是一个多阶段的管道,包括提取特征,微调具有日志损失的网络,训练支持向量机,最后拟合边界盒回归器。特性也被写入磁盘。但与R-CNN不同的是,[11]中提出的微调算法不能更新空间金字塔池化之前的卷积层。不出所料,这种限制(固定的卷积层)限制了非常深的网络的准确性。

 1.2. Contributions

        我们提出了一种新的训练算法,解决了R-CNN和SPPnet的缺点,同时提高了它们的速度和精度。我们称这种方法为Fast R-CNN,因为它的训练和测试相对较快。FastRCNN方法有几个优点:

1.比R-CNN,SPP更高的检测质量(mAP)。

2.训练是单阶段的,使用多任务损失

3.培训可以更新所有的网络层

4.快速R-CNN不需要磁盘存储,它是用Python和C++(Caffe[13])编写的,并且可以在https://github.com/rbgirshick/快速rcnn的开源MIT许可下获得。

2. Fast R-CNN architecture and training

        图1显示了FastR-CNN架构。一个快速的R-CNN网络以整个图像和一组目标建议作为输入。该网络首先用多个卷积(conv)和最大池化层对整个图像进行处理,生成一个conv特征图。然后,对于每个对象提议,一个感兴趣区域(RoI)池化层从特征图中提取一个固定长度的特征向量。每个特征向量输入一个序列的完全连接(fc)层最后分支到两个兄弟输出层:一个产生softmax概率估计K对象类加上一个覆盖“背景”类和另一层输出四个实值数字为每个K对象类。每组4个值为K类中的一个编码细化的边界框位置。

 

2.1. The RoI pooling layer

        RoI池化层使用max池化将任何有效感兴趣区域内的特征转换为一个具有固定空间范围的H×W(例如,7×7),其中H和W是独立于任何特定RoI的层超参数。在本文中,RoI是一个进入转换特征映射的矩形窗口。每个RoI由一个四元组(r、c、h、w)定义,它指定其左上角(r、c)及其高度和宽度(h、w)。

        RoI最大池化的工作原理是将h×w窗口划分为近似大小为h/H×w/W的子窗口的H×W网格,然后将每个子窗口中的值最大池化到相应的输出网格单元中。池化独立应用于每个特征映射通道,就像标准最大池化一样。RoI层只是在SPPnets[11]中使用的空间金字塔池化层的特殊情况,其中只有一个金字塔层。我们使用在[11]中给出的池化子窗口计算。

2.2. Initializing from pre-trained networks

        我们用三个预先训练过的ImageNet[4]网络进行实验,每个网络都有5个最大池化层,之间有5到13个conv层(网络细节见4.1节)。当一个预先训练过的网络初始化一个Fast R-CNN网络时,它会经历三次转换。首先,最后一个最大池化层被RoI池化层取代,该RoI池化层被设置为与网络的第一个全连接层兼容(例如,VGG16的H=W=7)。其次,网络的最后一个完全连接层和softmax(经过1000路image网络分类训练)被前面描述的两个兄弟层(完全连接层和K+1类别的softmax和类别特定的边界盒回归变量)取代。第三,对网络进行修改,以获取两个数据输入:一个图像列表和一个这些图像中的roi列表。

2.3. Fine-tuning for detection

         用反向传播来训练所有网络权值是Fast R-CNN的一项重要能力。首先,让我们来阐明为什么SPPnet不能更新空间金字塔池化层以下的权重。其根本原因是,当每个训练样本(即RoI)来自不同的图像时,通过SPP层的反向传播是非常低效的,而这正是R-CNN和SPPnet网络的训练方式。 

        这种低效的原因是,每个RoI可能有一个非常大的接受域,通常跨越整个输入图像。由于正向传递必须处理整个接受野,所以训练输入很大(通常是整个图像)。我们提出了一种更有效的训练方法,利用训练过程中的特征共享。在FastRCNN训练中,对随机梯度下降(SGD)小批量进行分层采样,首先采样N幅图像,然后从每幅图像中采样R/N 个 roi。重要的是,来自同一图像的roi在向前和向后传递中共享计算和内存。使N减少小批量计算。例如,当使用N=2和R=128时,所提出的训练方案比从128张不同图像中采样一个RoI(即R-CNN和SPPnet策略)快64×。

        这种策略的一个问题是,它可能会导致训练收敛缓慢,因为来自同一图像的roi是相关的。这种关注似乎不是一个实际问题,我们使用N=2和R=128,使用了比R-CNN更少的SGD迭代,从而获得了良好的结果。除了分层抽样,Fast R-CNN使用了一个简化的训练过程,其中有一个微调阶段,联合优化一个softmax分类器和边界盒回归器,而不是在三个单独的阶段[9,11]中训练一个softmax分类器、支持向量机和回归器。该过程的组成部分(损失、小批量采样策略、通过RoI池化层的反向传播和SGD超参数)如下所述。 

        多任务损失:一个FastR-CNN网络有两个兄弟姐妹的输出层。第一个输出一个离散的概率分布(每个RoI),p=(p0,……,pK),超过K+1类别。像往常一样,p是由一个完全连接层的k+1输出上的softmax计算的。第二个兄弟层输出边界盒回归偏移量,

        对于每个K个对象类,由k索引。我们使用[9]中给出的t^{k}的参数化,其中t^{k}指定了相对于对象建议的比例不变平移和对数空间高度/宽度位移。每个训练RoI都标记有一个地面真实类u和一个地面真实边界盒回归目标v。我们在每个标记的RoI上使用多任务损失L来联合训练进行分类和边界盒回归:

         

其中L_{cls}(p,u) = -logp_{u}分类损失。

        第二个任务损失Lloc被定义在类u、v=(u_{x},u_{y},u_{w},u_{h})和预测元组的元组上,同样定义为类u。当u≥1时,艾弗森括号指示器函数[u≥1]的计算结果为1,否则为0。按照惯例,捕获背景类标记为u=0。 

        对于背景ROI,没有地面真值边界框的概念,因此Lloc被忽略。对于边界盒回归,我们使用损失

 

 其中:

        是一个比R-CNN和SPPnet中使用的L2损失对异常值不那么敏感。当回归目标是无界的时,l2损失训练可能需要仔细调整学习速率,以防止梯度爆炸。平衡3消除了这种敏感性。等式中的超参数λ1控制两个任务损失之间的平衡。我们将地面真实回归目标v_{i}归一化,使其均值和单位方差为零。所有实验均使用λ=1。我们注意到,[6]使用一个相关的损失来训练一个类不可知的对象建议网络。与我们的方法不同,[6]提倡一个双网络系统来分离本地化和分类。OverFeat[19]、R-CNN[9]和SPPnet[11]也训练分类器和边界框定位器,然而这些方法使用了阶段性训练,我们表明这对于Fast R-CNN是次最优的(第5.1节)。 

        小批量抽样.在微调过程中,每个SGD小批处理都是由N=2个图像构建的,它们是均匀随机选择的(在常见的做法下,我们实际上迭代数据集的排列)。我们使用R=128大小的小批次,从每个图像中采样64个roi。在[9]中,我们从具有联合(IoU)交集的对象建议中选取25%的roi,与至少0.5的基真边界框重叠。这些roi包含了标记有前景对象类的示例,即u≥1。其余的RoIs是从对象提案中采样的,它们的时间间隔为[0.1,0.5),遵循[11]。这些是背景例子,用u=0标记。0.1的较低阈值似乎可以作为硬示例挖掘[8]的启发式方法。在训练过程中,图像被水平翻转的概率为0.5。没有使用其他的数据增强功能。

        通过RoI池化层进行反向传播.反向传播通过RoI池化层来传递衍生品。为了清晰起见,我们假设每个小批只有一张图像(N=1),尽管对N>1的扩展很简单,因为前向传递可以独立地处理所有图像。设x_{i}∈R是RoI池化层的第i个激活输入,设y_{ri}是第r个RoI层的第j个输出。RoI池化层计算,其中是子窗口中输入的索引集,其输出单元y_{rj}最大池化。一个单个x_{i}可以被分配给几个不同的输出y_{rj}。RoI池化层的向后函数通过遵循argmax开关来计算损失函数相对于每个输入变量x_{i}的偏导数:

        换句话说,对于每个小批RoI r和每个池化输出单元y_{ri},如果i是通过最大池化为y_{ri}选择的argmax,则累积偏导数∂L/∂yrj。在反向传播过程中,偏导数∂L/∂yrj已经通过RoI池化层顶部的该层的反向函数计算出来。 

        SGD超参数.用于softmax分类和边界盒回归的全连接层分别由零均值高斯分布初始化,标准差分别为0.01和0.001。偏差被初始化为0。所有层的每层学习率为1表示权重,2表示偏差,全局学习率为0.001。当在VOC07或VOC12训练上进行训练时,我们运行SGD进行30k小批迭代,然后将学习率降低到0.0001,再进行10k迭代。当我们在更大的数据集上进行训练时,我们会运行SGD进行更多的迭代,如后面所述。使用的动量为0.9,参数衰减为0.0005(关于权重和偏差)。

2.4. Scale invariance

        我们探索了两种实现尺度不变目标检测的方法:通过“蛮力”学习的(1)和通过使用图像金字塔的(2)。这些策略遵循了[11]中的两种方法。在蛮力方法中,每幅图像在训练和测试期间都以预定义的像素大小进行处理。网络必须直接从训练数据中学习尺度不变的目标检测。相比之下,多尺度方法通过一个图像金字塔为网络提供了近似的尺度不变性。在测试时,图像金字塔被用来近似的比例归一化每个对象的建议。在多尺度训练中,我们在每次采样图像时随机抽取一个金字塔尺度,并遵循[11],作为数据增强的一种形式。由于GPU内存的限制,我们实验只对较小的网络进行多规模训练。

3. Fast R-CNN detection

        一旦对一个FastR-CNN网络进行了微调,检测就只等于运行一个正向传递(假设对象建议是预先计算的)。该网络将一个图像(或一个图像金字塔,编码为一个图像列表)和一个R对象建议列表作为输入。在测试时间上,R通常在2000左右,尽管我们将考虑它更大的情况(≈45k)。当使用图像金字塔时,每个RoI被分配到比例上,这样比例的RoI最接近区域[11]中的224**2像素。对于每个测试RoI r,正向传递输出一个类后验概率分布p和一组相对于r的预测边界盒偏移量(每个K类得到自己的细化边界盒预测)。我们使用估计的概率为每个对象类k分配一个检测置信度给r。然后,我们使用来自R-CNN[9]的算法和设置,对每个类独立地执行非最大抑制。

3.1. Truncated SVD for faster detection

         对于全图像分类,计算全连接层的时间比conv层要小。相反,对于检测,要处理的roi的数量很大,近一半的正向通过时间被用来计算全连接层(见图2)。用截断的SVD[5,23]压缩大型完全连接层很容易加速。在这种技术中,由u×v权重矩阵W参数化的一个层被近似分解为      

使用SVD。在这个分解,U是一个u×v矩阵由第一个t左奇异向量W,Σt是一个t×t对角矩阵包含W的t奇异值,V是u×t矩阵组成第一个t右奇异向量w.截断SVD减少参数数从uv减少到(u+v),这可以是重要的如果t是小于min(u,v)。为了压缩一个网络,将W对应的单个全连接层替换为两个全连接层,它们之间不存在非线性。第一层使用权重矩阵ΣtVT(没有偏差),第二层使用U(具有与W相关的原始偏差)。当roi的数量很大时,这种简单的压缩方法可以提供很好的加速。 

4. Main results

                

有三个主要的结果支持了本文的贡献:

1.VOC07、2010和2012数据集上最先进的mAP

2.与R-CNN,SPPnet3相比,快速训练和测试。

3.微调VGG16中的conv层改进了mAP 

4.1. Experimental setup

        我们的实验使用了三个预先训练过的ImageNet模型。第一个是来自R-CNN[9]的CaffeNet(本质上是AlexNet[14])。我们也把这个CaffeNet称为“模型S”,表示“小”。第二个网络是来自[3]的VGGCNNM1024,它与S的深度相同,但更宽。我们称这个网络模型为M,表示为“中”。最终的网络是来自[20]的非常深的VGG16模型。由于这个模型是最大的,我们称之为模型l。在本节中,所有的实验都使用单尺度的训练和测试(s=600;详见5.2节)。

4.2. VOC 2010 and 2012 results

    

        在这些数据集上,我们将快速R-CNN(简称FRCN)与来自公共排行榜的comp4(外部数据)轨道上的顶级方法进行了比较(表2,表3)。3对于e NUS NIN c2000BabyLearning方法,目前没有相关的出版物,我们无法找到所使用的卷流网架构的确切信息;它们是网中设计[17]的变体。所有其他方法都从同一个预先训练过的VGG16网络中初始化。

        FastR-CNN在VOC12上排名最高,mAP为65.7%(额外数据为68.4%)。它也比其他方法快两个数量级,这些方法都是基于“慢”R-CNN管道。 在VOC10上,SegDeepM[25]比FastR-CNN获得了更高的mAP(67.2%vs.66.1%)。SegDeepM在VOC12训练和分割注释上进行训练;它的设计是通过使用马尔可夫随机场对O2P[1]语义分割方法的R-CNN检测和分割进行推理,以提高R-CNN的精度。Fast R-CNN可以用SegDeepM来代替R-CNN,这可能会带来更好的结果。当使用放大的07++12训练集时(见表2标题),FastR-CNN的mAP增加到68.8%,超过了SegDeepM。

4.3. VOC 2007 results

        在VOC07上,我们比较了Fast R-CNN与R-CNN和SPPnet。所有的方法都从同一个预先训练过的VGG16网络开始,并使用边界盒回归。VGG16SPPnet结果由[11]的作者计算。SPPnet在训练和测试中都使用了五种量表。FastR-CNN比SPPnet的改进表明,即使FastR-CNN使用单尺度的训练和测试,微调conv层对mAP有很大的改进(从63.1%提高到66.9%)。R-CNN的mAP值为66.0%。作为一个次要问题,SPPnet的训练没有在PASCAL中标记为“困难”的例子。删除这些示例可以将Fast R-CNN的mAP提高到68.1%。所有其他的实验都使用了“困难的”的例子。

4.4. Training and testing time

     

        快速的训练和测试时间是我们的第二个主要结果。表4比较了FastRCNN、R-CNN和SPPnet之间的训练时间(小时)、测试率(每张图像的秒)和VOC07上的mAP。对于VGG16,FastR-CNN处理图像的速度比R-CNN快146×,处理速度快213×。训练时间减少了9个×,从84小时减少到9.5小时。与SPPnet相比,FastRCNN训练VGG16 2.7×更快(9.5小时比25.5小时),在没有截断SVD的情况下测试更快7×,或者更快10×。FastR-CNN还消除了数百gb的磁盘存储,因为它不缓存特性。 

        

        已截断的SVD.截断的SVD可以减少30%以上的检测时间,而mAP只下降了很小的幅度(0.3个百分点),并且不需要在模型压缩后执行额外的微调。图2说明了如何使用VGG16的fc6层中25088×4096矩阵的前1024个奇异值和4096×4096fc7层的前256个奇异值来减少运行时间,而在mAP中损失很小。如果在压缩后再次进行微调,mAP的下降可能会进一步加速。 

4.5. Which layers to fifine-tune? 

        对于SPPnet论文[11]中考虑的较不太深的网络,只对全连接的层进行微调似乎就足以获得良好的精度。我们假设这个结果不适用于非常深的网络。为了验证微调conv层对VGG16很重要,我们使用Fast R-CNN进行微调,但冻结了13个conv层,以便只有完全连接的层才能学习。这种消融模拟了单尺度的SPPnet训练,并将mAP从66.9%降低到61.4%(表5)。这个实验验证了我们的假设:通过RoI池化层进行训练对于非常深的网是很重要的

        

         这是否意味着所有的conv层都应该进行微调?简而言之,没有。在较小的网络(S和M)中,我们发现conv1是通用的和任务独立的(一个众所周知的事实[14])。允许conv1学习,对mAP没有有意义的影响。对于VGG16,我们发现只需要更新来自conv3_1 和以上的层(13个conv层中的9个)。这一观察结果是实用的:与conv3_1学习相比,conv2_1 的(1)更新使训练减慢了1.3×(12.5小时比9.5小时);来自conv1_1 的(2)更新超过了GPU内存。从conv2_1 up学习时,mAP的差异仅为+0.3分(表5,最后一列)。本文中所有FastR-CNN的结果均使用VGG16微调层conv3 _ 及以上;所有使用模型S和M模型微调层conv2及以上的实验。

5. Design evaluation

        我们进行了实验,以了解FastRCNN与R-CNN和SPPnet的比较如何,以及评估设计决策。根据最佳实践,我们在PASCAL VOC07数据集上进行了这些实验。   

5.1. Does multi-task training help?

        多任务训练是方便的,因为它避免了管理顺序训练任务的管道。但它也有可能改善结果,因为任务通过共享表示(ConvNet)[2]相互影响。多任务训练是否提高了快速R-CNN的目标检测精度?

        为了测试这个问题,我们在等式中训练了只使用分类损失Lcls的基线网络1(即,设置λ=0)。这些基线被打印在表6中每一组的第一列的模型S、M和L中。请注意,这些模型没有边界框回归变量。接下来(每组第二列),我们取使用多任务损失训练的网络(Eq。1,λ=1),但我们在测试时禁用了边界盒回归。这隔离了网络的分类精度,并允许与基线网络进行全面的比较。  

        在所有三个网络中,我们观察到多任务训练相对于单纯的分类训练提高了纯分类精度。改善范围从+0.8到+1.1mAP点,显示出多任务学习的一致的积极效果。最后,我们取基线模型(只进行分类损失训练),跟踪边界盒回归层,并在保持所有其他网络参数冻结的同时,使用Lloc进行训练。每组的第三列显示了这种阶段训练方案的结果:mAP比第一列有所改进,但阶段训练不如多任务训练(每组第四列)。

 5.2. Scale invariance: to brute force or fifinesse?

        我们比较了两种实现尺度不变目标检测的策略:蛮力学习(单尺度)和图像金字塔(多尺度)。在任何一种情况下,我们将图像的比例s定义为其最短边的长度。所有的单尺度实验都使用s=600像素;对于某些图像可能小于600,因为我们将最长的图像侧限制在1000像素,并保持图像的长宽比。选择这些值是为了使VGG16在微调过程中适合于GPU内存。较小的模型不受内存约束,可以从较大的s值中获益;然而,为每个模型优化s并不是我们主要关注的问题。我们注意到,PASCAL图像平均为384×473像素,因此单尺度设置通常是上样本图像的1.6倍。因此,RoI池化层的平均有效步幅为≈10像素。在多尺度设置中,我们使用了[11]中指定的相同的5个尺度(s∈{480,576,688,864,1200}),以便于与SPPnet进行比较。然而,我们将最长的侧边限制在2000像素,以避免超过GPU内存。

        表7显示了模型S和M在1或5个量表进行训练和测试时。也许在[11]中最令人惊讶的结果是,单尺度检测的性能几乎和多尺度检测一样好。我们的发现证实了他们的结果:深度卷积网擅长于直接学习尺度不变性。多尺度方法只以大量的计算时间成本提供了mAP的微小增加(表7)。在VGG16(模型L)的情况下,我们通过实现细节限制使用单一尺度。然而,它达到了66.9%的mAP,略高于R-CNN[10]报告的66.0%,尽管R-CNN使用了“无限”尺度,因为每个提案都被扭曲到一个规范大小。由于单尺度处理提供了速度和准确性之间的最佳权衡,特别是对于非常深的模型,在这个小节之外的所有实验都使用了使用s=600像素的单尺度训练和测试。

    5.3. Do we need more training data?

        当提供更多的训练数据时,一个好的目标检测器应该会得到改进。Zhu等人[24]发现DPM[8]mAP仅在几百到几千个训练例子后就饱和。在这里,我们用VOC12训练集来增加VOC07训练集,大约将图像数量增加三倍到16.5k,以评估FastR-CNN。扩大训练集可将VOC07测试的mAP从66.9%提高到70.0%(表1)。当在这个数据集上进行训练时,我们使用60k的小批量迭代,而不是40k。我们对VOC10和2012进行了类似的实验,为此我们从VOC07训练、测试和VOC12训练的联合构建了一个21.5k图像的数据集。当在这个数据集上进行训练时,我们使用100k的SGD迭代,每40k次迭代(而不是每30k次迭代)将学习率降低0.1×。对于VOC10和2012年,mAP分别从66.1%提高到68.8%,从65.7%提高到68.4%。 

5.4. Do SVMs outperform softmax?

        Fast R-CNN使用在微调过程中学习的softmax分类器,而不是像R-CNN和SPPnet那样事后训练线性支持向量机。为了理解这种选择的影响,我们在Fast R-CNN中实现了使用硬负挖掘的事后SVM训练。我们使用与R-CNN相同的训练算法和超参数。

        

5.5. Are more proposals always better? 

        有两种(大致上)类型的对象检测器:一种使用稀疏的对象建议集(例如,选择性搜索[21]),另一种使用使用密集集的对象检测器(例如,DPM[8])。稀疏建议分类是一种级联[22],其中建议机制首先拒绝大量的候选对象,让分类器有一个小的集合进行评估。当应用于DPM检测[21]时,该级联提高了检测精度。我们发现有证据表明,提出的分类器级联也提高了快速R-CNN的准确性。使用选择性搜索的质量模式,我们将每幅图像从1k扫描到10k个提案,每次重新训练和重新测试模型m。如果提案纯粹起计算作用,增加每幅图像的提案数量不会损害mAP

        

                我们发现,随着建议数量的增加,mAP上升后略有下降(图3,实蓝线)。这个实验表明,用更多的建议淹没深度分类器并没有帮助,甚至轻微影响准确性。 

        如果不实际进行实验,这个结果就很难预测了。测量对象提案质量的最先进的方法是平均召回率(AR)[12]。当每张图像使用固定数量的提案时,AR与使用R-CNN的几种提案方法的mAP有很好的相关性。图3显示,AR(实红线)与mAP没有很好的相关性,因为每幅图像的建议数量是不同的。AR必须谨慎使用;由于更多的建议而导致的更高的AR并不意味着mAP将会增加。幸运的是,使用模型M进行训练和测试只需要不到2.5个小时。因此,快速的R-CNN能够高效、直接地评估对象建议mAP,这比代理指标更可取。

        我们还研究了Fast R-CNN在使用密集生成的box时(超比例、位置和纵横比),其速度约为45k个box/图像。这个密集的集合足够丰富,当每个选择搜索框被它的最接近(以IoU为单位)的密集框取代时,mAP只下降1个点(到57.7%,图3,蓝色三角形)。密集搜索框的统计数据与选择性搜索框的统计数据不同。从2k个选择性搜索框开始,我们在添加1000个×{2、4、6、8、10、32、45}密集框的随机样本时测试mAP。对于每个实验,我们重新训练并重新测试模型m。当添加这些密集的盒子时,mAP比添加更多的选择性搜索盒子时下降得更大,最终达到53.0%。我们还只使用密集的盒子(45k/张图像)来训练和测试FastR-CNN。这个设置产生的mAP为52.9%(蓝钻石)。最后,我们检查是否需要使用硬负挖掘的支持向量机来处理密集的盒分布。支持向量机的表现甚至更糟:49.3%(蓝色圆圈)。

5.6. Preliminary MS COCO results

         我们将Fast R-CNN(与VGG16)应用于MSCOCO数据集[18],以建立一个初步的基线。我们在80k个图像训练集上进行了240k次迭代的训练,并使用评估服务器在“test-dev”集上进行了评估。PASCAL的mAP为35.9%;mscoco的AP,也是超过IoU阈值的平均值,为19.7%。

     

6. Conclusion

        本文提出了快速R-CNN,R-CNN和SPPnet的干净快速更新。除了报告最先进的检测结果,我们提供了详细的实验,我们希望提供新的见解。特别值得注意的是,稀疏对象的建议似乎提高了探测器的质量。这个问题在过去过于昂贵,无法探究,但通过FastR-CNN变得实用。当然,可能存在一些尚未发现的技术,允许密集的盒子和稀疏的建议。这些方法,如果发展起来,可能有助于进一步加速目标检测。 

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

樱花的浪漫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值