TensorFlow实现:https://github.com/Zehaos/MobileNet
caffe实现:https://github.com/pby5/MobileNet_Caffe
MobileNets用于手机或嵌入式视觉应用,提出使用depthwise separable convolutions 构造轻量化的深度神经网络,并使用两个全局超参数Width Multiplier和Resolution Multiplier减少参数数量。
模型结构
1. Depthwise Separable Convolution
标准的卷积滤波和特征组合在一步内完成,Depthwise Separable卷积将标准的卷积分解为一个depthwise卷积和一个1*1的pointwise卷积。depthwise卷积对每个输入通道用一个滤波器计算,pointwise卷积使用1*1的卷积组合depthwise的结果。这个分解可以有效降低计算量和模型大小,分解过程如下图所示:
分解前后计算量对比为,分解后计算量降低了8~9倍:
2. 网络结构
MobileNet第一层是全卷积,其余卷积层使用depthwise separable卷积构建,除最后一层,所有层与Batch Norm和ReLU衔接,最后一层输入到softmax层。MobileNet的网络结构为:
下图显示了分解卷积与常规卷积的区别:
MobileNet花费了95%的计算时间在1*1的卷积上,主要参数也在1*1卷积中,其余的参数在全连接层中,如下表所示:
3. 模型瘦身-width乘子
α
输入通道数乘子
α
,计算量下降
α2
4. 降低分辨率-分辨率乘子
ρ
降低输入图像或特征图的分辨率,计算量下降
ρ2
实验结果
MobileNet与GoogleNet,Vgg16对比,准确度差不多,但参数少很多
物体检测结果,使用Faster-RCNN,SSD框架与VGG,Inception V2对比: