目前的候选框提取方法一般须要提取几千个候选框,影响检测效率。
RPN只提取了几百张,可是对于小物体的检测和定位仍存在问题。网络
深层次的卷积层:high recall, but poor localization
低层次的卷积层:better localization, but reduced recall
一个好的目标检测系统应该 combine the best of both框架
HyperNet的框架如上图。图片通过卷积层获得activition maps。以后汇集各层的feature maps,将它们压缩到一个统一的空间,Hyper Feature。而后用一个轻量的RPN来提取大约100个proposal。最后用检测模型对这些proposals分类。学习
给一张照片,咱们用一个预训练模型的卷积层来计算整张图片的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,更适于检测。spa
计算高效。全部特征在RPN和检测模型以前预计算。设计
在特征提取器的基础上设计一个深层的分类网络对特征提取自身也很是重要。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个候选区域来训练检测网络,可是在测试的时候会调整数量。orm
实现目标检测最简单的方法就是用FC-Dropout-FC-Dropout这样的层次设计。在此基础上,咱们作了两个改动。blog
在FC前添加了一个3x3x63的卷积层加强分类。这样作也能够下降特征的维度,有利于下面的计算。图片
dropout ratio由0.5改成0.25。发现这样更高效。
对于提取候选区域模型,检测网络也有两个输出。不一样之处是对每一个候选框产生了N+1个分数和4xN个框的调整值。(这里的N是物体类别的个数,+1是背景)以后又用NMS来减小重叠。这个操做只会过滤少许框,由于大部分框都在提取候选区域步骤中被过滤掉了。
每一个框被分配了一个二进制类别标签(是一个物体或者不是)。若是这个框的IoU阈值比任何ground truth box大于0.45,那么这个框就被分配一个正标签。若是IoU阈值低于0.3,被分配负标签。
上图是loss function。Lcls是softmax loss, Lreg是bounding box regression。在候选框提取步骤,Lreg的系数设置为3。t和t*的值用RCNN中给定的值。以下图:
P^i =(Px,Py,Pw,Ph)肯定了候选框P的中心像素点的坐标值,以及P的长宽。每一个ground truth box G也是这样定义的。
训练过程以下:
预训练一个深度CNN模型。
训练HyperNet,目的是提取候选区域。
用2获得的候选区域为目标检测训练HyperNet。
微调HyperNet,共享3获得的Hyper特征层,用于产生候选区域。
用4获得的候选区域微调HyperNet,with 固定的共享Hyper特征层,用于目标检测。
输出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。
在生成候选区域的模型中,须要处理的ROI数目很是大,大约总时间的70%要花费在这上面。
本文对这一过程作了一个微小的修改。咱们将3x3x4的卷积层移到ROI pooling层前面。这样作有两个优点。一是Hyper Feature maps的数量由126降为4。二是滑动窗口分类器更简单。实验代表,这样作 is almost cost-free(40X speed up)
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.