1.之前框架的问题

目前的候选框提取方法通常需要提取几千个候选框,影响检测效率。
RPN只提取了几百张,但是对于小物体的检测和定位仍存在问题。

2.解决问题的要点

深层次的卷积层:high recall, but poor localization
低层次的卷积层:better localization, but reduced recall
一个好的目标检测系统应该 combine the best of both

3.HyperNet Framework

clipboard.png

HyperNet的框架如上图。图片经过卷积层得到activition maps。之后聚集各层的feature maps,将它们压缩到一个统一的空间,Hyper Feature。然后用一个轻量的RPN来提取大约100个proposal。最后用检测模型对这些proposals分类。

3.1 Hyper Feature Production

给一张照片,我们用一个预训练模型的卷积层来计算整张图片的feature maps。在Fast RCNN中,我们保留了图片的比例,并将较小边的长度设置为600。因为在CNN中的局部采样(subsampling)和池操作(pooling),这些feature maps的分辨率发生了改变。为了结合相同分辨率的多层特征,我们为不同层提出了不同的采样策略。我们在层次较低的卷积层添加了最大池化层。对层次较高的卷积层,我们添加了一个反卷积操作(Deconv)来进行上采样。一个卷积层应用与每一个采样结果。卷积操作不仅提取了语义特征,还将它们压缩到一个统一的空间。最后,用LRN(local response normalization)归一化多个feature maps,并整合到一个立方体中,这个立方体就是Hyper Feature。
Hyper Feature的优势:

  • 多层的抽象

  • 合适的分辨率。Feature Maps的分辨率由1000600变成了250150,更适于检测。

  • 计算高效。所有特征在RPN和检测模型之前预计算。

3.2 Region Proposal General

在特征提取器的基础上设计一个深层的分类网络对特征提取自身也非常重要。Ren et al.提出在预计算的feature maps上卷积网络的表现也不错。根据这一发现,我们为提取候选区域设计了一个轻量级的卷积网络。这个卷积网络包括一个ROI pooling layer,一个卷积层,一个FC layer,后面有两个输出层。对于每个图片,这个网络产生大约30k个大小不同,分辨率不同的候选框。
ROI pooling 用动态最大池处理输出的wxh的箱子(bins)。在论文中w和h都设置为13。在ROI pooling的输出上添加了两个层。一个层是将每个ROI的位置编码成一个更抽象的特征立方体(cube;13x13x4),另一个层将每个立方体编码成一个256维的短特征向量。得分层计算物体存在的概率,包围框回归层输出框。
每个候选框计算出得分和调整值之后,一些候选区域可能会高度重叠。为了减少重叠,我们采用了greedy non-maxinum suppression(NMS)。对于每个框,如果IoU overlap高于一个给定的阈值,就拒绝另一个框。论文中将IoU的阈值调为0.7,这样对每张图片都会产生1000个候选区域。在NMS之后,我们用前200个候选区域来训练检测网络,但是在测试的时候会调整数量。

3.3 Object Detection

实现目标检测最简单的方法就是用FC-Dropout-FC-Dropout这样的层次设计。在此基础上,我们做了两个改动。

  • 在FC前添加了一个3x3x63的卷积层增强分类。这样做也可以降低特征的维度,有利于下面的计算。

  • dropout ratio由0.5改为0.25。发现这样更高效。

对于提取候选区域模型,检测网络也有两个输出。不同之处是对每个候选框产生了N+1个分数和4xN个框的调整值。(这里的N是物体类别的个数,+1是背景)之后又用NMS来减少重叠。这个操作只会过滤少量框,因为大部分框都在提取候选区域步骤中被过滤掉了。

3.4 Joint Training

每个框被分配了一个二进制类别标签(是一个物体或者不是)。如果这个框的IoU阈值比任何ground truth box大于0.45,那么这个框就被分配一个正标签。如果IoU阈值低于0.3,被分配负标签。

clipboard.png

上图是loss function。Lcls是softmax loss, Lreg是bounding box regression。在候选框提取步骤,Lreg的系数设置为3。t和t*的值用RCNN中给定的值。如下图:

clipboard.png

P^i =(Px,Py,Pw,Ph)确定了候选框P的中心像素点的坐标值,以及P的长宽。每个ground truth box G也是这样定义的。
训练过程如下:

  1. 预训练一个深度CNN模型。

  2. 训练HyperNet,目的是提取候选区域。

  3. 用2得到的候选区域为目标检测训练HyperNet。

  4. 微调HyperNet,共享3得到的Hyper特征层,用于产生候选区域。

  5. 用4得到的候选区域微调HyperNet,with 固定的共享Hyper特征层,用于目标检测。

  6. 输出4和5联合训练得到的HyperNet作为最终模型。

在第4步前,候选区域提取和检测网络是分开训练的。在4和5的微调之后,两个网络都share network for Hyper特征提取。最后,将这两个网络结合成一个网络。在proposal/detection中,对前100k个mini batches,学习率为0.005,接下来训练和微调的50k mini batches,学习率为0.0005。对每个mini batch,每个图片中会采样出64个ROIs。

3.5 speeding up

在生成候选区域的模型中,需要处理的ROI数目非常大,大约总时间的70%要花费在这上面。
本文对这一过程做了一个微小的修改。我们将3x3x4的卷积层移到ROI pooling层前面。这样做有两个优势。一是Hyper Feature maps的数量由126降为4。二是滑动窗口分类器更简单。实验表明,这样做 is almost cost-free(40X speed up)

4 对比之前网络

  • Fast R-CNN。HyperNet是在一个网络中得到候选物体和检测结果。且候选框的数量是100 VS 2000。 HyperNet取得了更多准确检测结果。

  • Faster R-CNN。 Faster R-CNN仍然依赖Fast R-CNN做目标检测。而HyperNet将候选框生成模型和检测模型整合成一个新的网络。另外,HyperNet在小物体的检测上表现更好。在高IoU阈值的情况下,HyperNet的region proposals still perform well。

实验结果

  • 50 proposals, 95% recall; 100 proposals, 97% recall。

  • PASCAL VOC 2007 mAP 76.3%; PASCAL VOC 2012 mAP 71.4%。比Fast R-CNN分别高了6/3个百分点。

  • (GPU) 1.14s in total, 2X faster than Fast R-CNN。speed up version takes 200ms in total.
    clipboard.png


wenny
11 声望3 粉丝

keep calm and carry on