【object detection】目标检测之PVANet

【object detection】目标检测之PVANet

之前介绍,RCNN/Fast RCNN/Faster RCNN这些一系列目标检测的经典论文被Ross Girshick,Kaiming He 等高产大神所占领,总算有一股清流,比如intel团队提出的PVANet(Performance Vs Accuracy Net),Lightweight Deep Neural Networks for Real-time object detection。本文就着重讲这篇paper的创新之处。

在目标检测中,降低计算量和提高实际应用的精确度同等重要。本文提出了一种新的网络结构,保持精度的同时降低计算量。创新包括使用C.ReLU,使用Inception structure和Hypernet多尺度思想。在VOC2012和VOC2007数据集分别获得84.9%和84.2%mAP的精度,且计算量低于 resnet-101 10%。

PVANet架构

【object detection】目标检测之PVANet

从PVANet架构图上看到,类似于Faster RCNN的思想,使用RPN训练Region proposals,在ROI基础上进行score和bounding box。输入RPN的feature maps只有128个,作者没有给出愿意,不过有效降低冗余图像信息。

C.ReLU:C.ReLU的设计思路来源于对CNN中的activation patterns的观察。笔者直观理解,现实生活中的很多object的边缘成对出现,比如人的双眼的对角(< >),桌子的直角。笔者之前一篇文章讲述【算法】卷积(convolution)/滤波(filter)和互相关(cross-correlation)以及实现,欢迎参照。在CNN前几层,对3x3卷积核翻转180°,有效降低卷积核,从而提高两倍速。

与原始的C.ReLU相比,论文在concatenation之后增加scaling and Bias(缩放和偏移),这允许每个channel filter的斜率和激活阈值与其相反的channel filter不同。

【object detection】目标检测之PVANet

Inception structure

Inception structure很容易理解,GoogLeNet 的V1~V4大名鼎鼎。作者认为使用Inception structure可以同时捕获大目标和小目标。为了捕获图像中的大目标,需要足够大的感受野,这个可以通过堆叠3x3的滤波器来达到。但是为了捕获小目标,则需要小一点的感受野,1x1的卷积核正好合适。可以避免大卷积核造成的参数冗余问题。

 

【object detection】目标检测之PVANet

Hypernet

论文使用了Hypernet中多尺度表示思想,综合精细信息及高度抽象信息,用于检测不同尺度的物体,使用了中间层直接输出,第一次做max pooling,最后一层做Deconv,使特征输出shape一致。

【object detection】目标检测之PVANet

其他tricks:

1.在Inception模块加入残差连接(residual structures with pre-activation)

2.Batch normalization

3..权重衰减策略采用plateau detection

笔者认为在object detection甚至在CV领域,C.ReLU和Hypernet应该是标配,前者有效降低计算,后者提取不同尺度信息。

性能对比

1、PVAnet使用的anchor与Faster RCNN不同,Faster RCNN使用2k的proposals,(PVAnet)our RPN uses 42 anchors of 6 scales (32, 48, 80, 144, 256, 512) and 7 aspect ratios (0.333, 0.5, 0.667, 1.0,1.5, 2.0, 3.0). 文章中讲述大概用200 proposals,不知道怎么算的。

2、PVAnet的参数是3.2M,远小于AlexNet的60M,其中有一个原因是只PVAnet特征提取阶段只使用了4个卷基层(如果用ResNet,VGG19会是什么效果,应该和Faster RCNN一样慢?)。目标检测速度46.1ms/image(Intel i7-6700K CPU with a single core and NVIDIA Titan X GPU ),Faster RCNN的最快速度是59ms(17fps,K40 GPU,model是ZF)

从模型使用上看,其实PVAnet投巧,使用了最简单的model。但是论文作者却不实在,用最快的速度和Faster RCNN最慢的模型相比,显示自己的Performance Vs Accuracy!人家的精度其实也不差!

【object detection】目标检测之PVANetPVANet论文的对比图【object detection】目标检测之PVANetFaster RCNN中的各种模型效果图

 

参考文献

1、PVANet:Lightweight Deep Neural Networks for Real-time object detection

2、HyperNet:Towards Accurate Region Proposal Generation and Joint Object Detection

编辑于 2017-11-03
 
 

 

PVANet 算法解读

 

创新点

PVANET是RCNN系列目标方向,基于Faster-RCNN进行改进,Faster-RCNN基础网络可以使用ZF、VGG、Resnet等,但精度与速度难以同时提高。PVANet的含义应该为:Performance Vs Accuracy,意为加速模型性能,同时不丢失精度的含义。本文主要的工作在于使用了自己设计的高效的基础网络,该网络使用了C.ReLU、Inception、HyperNet多尺度思想以及 residual 模块等技巧。整体网络结构如图1所示。

【object detection】目标检测之PVANet

从PVANet架构图上看到,类似于Faster RCNN的思想,使用RPN训练Region proposals,在ROI基础上进行score和bounding box。输入RPN的feature maps只有128个,作者没有给出原因,不过有效降低冗余图像信息。

C.ReLU

C.ReLU的作者观察基础网络卷积层参数,发现低层卷积核成对出现(参数互为相反数),关于C.ReLU参考博客论文。因此,作者减小输出特征图个数为原始一半,另一半直接取相反数得到,再将两部分特征图连接,从而减少了卷积核数目。C.ReLU的模块结构如图2所示。与原始的C.ReLU相比,论文在concatenation之后增加scaling and Bias(缩放和偏移),这允许每个channel filter的斜率和激活阈值与其相反的channel filter不同

【object detection】目标检测之PVANet

Inception structure

Inception structure很容易理解,GoogLeNet 的V1~V4大名鼎鼎。作者认为使用Inception structure可以同时捕获大目标和小目标。为了捕获图像中的大目标,需要足够大的感受野,这个可以通过堆叠3x3的滤波器来达到。但是为了捕获小目标,则需要小一点的感受野,1x1的卷积核正好合适。可以避免大卷积核造成的参数冗余问题。作者发现googlenet中Inception模块由于具有多种感受野的卷积核组合,因此能够适应多尺度目标的检测,作者使用基于Inception模块组合并且组合跳级路特征进行基础网络后部分特征的提取。

【object detection】目标检测之PVANet

HyperNet

论文使用了Hypernet中多尺度表示思想,综合精细信息及高度抽象信息,用于检测不同尺度的物体,将conv3中原图1/8特征图、conv3中原图1/16特征图、conv3中原图1/32特征图连接来增加最终特征图中多尺度信息。其中,conv3中特征图max pooling下采样,conv5中特征图Deconv线性插值上采样,使特征输出shape一致。如图1所示。

其他tricks:

1.在Inception模块加入残差连接(residual structures with pre-activation)

2.Batch normalization

3..权重衰减策略采用plateau detection

性能对比

  1. PVAnet使用的anchor与Faster RCNN不同,Faster RCNN使用2k的proposals,(PVAnet)our RPN uses 42 anchors of 6 scales (32, 48, 80, 144, 256, 512) and 7 aspect ratios (0.333, 0.5, 0.667, 1.0,1.5, 2.0, 3.0). 文章中讲述大概用200 proposals。

2. PVAnet的参数是3.2M,远小于AlexNet的60M,其中有一个原因是只PVAnet特征提取阶段只使用了4个卷基层(如果用ResNet,VGG19会是什么效果,应该和Faster RCNN一样慢?)。目标检测速度46.1ms/image(Intel i7-6700K CPU with a single core and NVIDIA Titan X GPU ),Faster RCNN的最快速度是59ms(17fps,K40 GPU,model是ZF)

从模型使用上看,其实PVAnet投巧,使用了最简单的model。

编辑于 2018-12-28
 
 
 
 

【object detection】目标检测之PVANet

上一篇:ASP.NET Core Program.cs


下一篇:apache commons beanutils