- 论文
- 代码
Abstract 摘要
在CV领域,不管是检测还是分割大多都是使用很大或很深的网络来提取特征,这导致需要很大的计算成本,目前存在多种的降低计算成本的模型压缩方法,如剪枝、蒸馏、权重量化、设计更小的网络等方法。这篇文章就是在模型设计之初就考虑到计算速度问题,从而设计出更加紧凑的模型。Network Design
C.ReLu
ReLU这个激活函数现在已经成了标配了,但是这里使用的ReLU还是有一些不同的。
feature 经过卷积层后,直接乘 -1 ,和从Conv输出的Concatenntion 合并,然后进行Scale\Shift 缩放和偏移,最后经过ReLU。这里的Shift相当于使ReLU的activation threshold改变了,但是那个乘 -1 着实没看懂什么意思。
Inception
Inception 是GoogleNet 中提出的,使用不同的卷积核,这样感受野的大小也不一样,可以捕捉到不同的大小的物体。
从上图可以看出不同大小的卷积核感受野的不同,1x1的卷积核channel是1/2,3x3和5x5和卷积核channel个数是1/4。
具体实现部分,左图的输入输出特征相同size时,5x5的convolution kernel是由两个3x3的conv kernel实现,这样计算量会小些。
右图是feature map需要减小尺寸是采用的方法,这里1x1的conv kernel使用stride=2 的 poo1和stride=2 的conv。
HyperNet
在特征提取层中将细粒度细节与高度抽象的信息相结合,有助于以下区域提议网络和分类网络检测不同尺度的对象。然而,由于所有抽象层的直接级联可能产生具有更高计算需求的冗余信息,因此需要仔细设计不同抽象层的数量和抽象层数。不过自己使用是都是抽取相同size下最后一层的feature map,这样总是没错的。
Other
将Faster-RCNN的RPN部分的feature map的channel数有512改成了128.
在Inception模块加入残差连接。
模型的具体参数量和计算量
在VOC2012的结果对比
总结
本文提出了一个轻量级的网络,取得了不错的结果。此外,本网络结果的设计完全独立于network compression and quantization. 因此,还可以进一步利用最近的模型压缩技术来提升性能。例如,基于现有网络应用truncated SVD就可以实现显著的运行时间提升!