深度学习【51】物体检测:PVANET: Deep but Lightweight Neural Networks for Real-time Object Detection

这篇论文在coco数据集中取得了第二名的成绩。其目标是在取得state-of-the-art的正确率情况下,最小化计算量。主要工作是优化前面的特征抽取网络,设计原则是通道数要少,但是网络更深。该论文的网络设计主要点为:1、concatencated ReLU;2、inception模块;3、HyperNet,加入不同尺度特征图融合。

C.ReLU

C.ReLU的结构如下:
这里写图片描述
其前向传播过程为:输入数据经过卷积后,经过Negation(卷积的输出取负),然后Negatin的输出和卷积的输出合并起来,也就是Concatenation步骤。接着合并的输出经过Scale/Shift(可训练的参数,对应于每个通道,跟BN层中的scale/shift一样),最后经过ReLU激活函数。

C.ReLU的设计是受启发于CNN的内部节点的激活模式。在CNN的前面几层,每一层的输出节点趋于”paired”,具体的,某一节点是另一节点的反面(作者的观察。。)。因此才有了卷积层的输出取负,然后拼接起来。另外,由于将原本的卷积层的通道数减半,这使得C.ReLU速度更快。

Inception模块

由于多尺度卷积核的原因,Inception模块能够同时捕捉到小物体和大物体的特征。论文中使用的inception模块:
这里写图片描述

HyperNet

受HyperNet的启发,论文使用了多尺度特征融合。直接看网络图会比较清晰一点:
这里写图片描述
具体的,先将conv3_4用最大池化进行下采样,然后将conv5_4用反卷积网络进行上采样,最后将下采样的conv3_4,conv4_4和上采样的conv5_4按通道拼接起来。

在上面的网络中K*K C.ReLU,由1*1卷积-K*K C.ReLU-1*1卷积构成,除了第一次的7*7 C.ReLU没有1*1卷积,其他的都有。对于Residual连接,每个连接处中,来自上一层的输入都会经过一个1*1卷积进行下采样,然后进行连接。连接处有:pool1_1与conv2_1,conv2_3与conv3_1,conv3_4与conv4_1,conv4_4与conv5_1。总结起来就是,在特征图大小改变的地方,都会进行跳跃连接。

另外,网络在ReLU激活函数前,都添加了Batch Normalization。

实验结果

速度快了很多,并且mAP也还不错。
这里写图片描述

猜你喜欢

转载自blog.csdn.net/linmingan/article/details/81095394