在mobilenet中,作者用mobilenet替换了facenet的inception,进行提取人脸特征。
作者:Fire_Light_
原文:https://blog.csdn.net/Fire_Light_/article/details/80279342
正文
mobilefacenet其实是mobilenetV2的改进版本,主要改进之处有以下几个地方:
1.针对平均池化层,许多研究表明,使用平均池化层会使得网络表现下降,但是一直没有理论说明,因此作者在文中给出了一个理论解释:
在最后一个7*7特征图中,虽然中心点的感知域和边角点的感知域是一样的,但是中心点的感知域包括了完整的图片,边角点的感知域却只有部分的图片,因此每个点的权重应该不一样,但是平均池化层却把他们当作一样的权重去考虑了,因此网络表现会下降,如图:
因此,作者在此处使用了可分离卷积代替平均池化层,即使用一个7*7*512(512表示输入特征图通道数目)的可分离卷积层代替了全局平均池化,这样可以让网络自己不同点的学习权重。
此处的可分离卷积层使用的英文名是global depthwise convolution,global表示全局,depthwise表示逐深度,即逐通道的卷积,其实就是之前描述的那种可分离卷积的方式:使用7*7*512的卷积核代替7*7*512*512的卷积核。
其实这里我们可以发现,后者其实是全卷积[1]。
2.采用Insightface的损失函数进行训练。
3.一些小细节:通道扩张倍数变小;使用Prelu代替relu;使用batch Normalization。
网络整体结构如下:
实验及结果
和MobileNet、ShuffleNet的对比
此处训练集采用CASIA-Webface,损失采用Insightface的损失
![](https://img-blog.csdnimg.cn/20190612152334700.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zOTg3NTE2MQ==,size_16,color_FFFFFF,t_70)
和其他算法的对比
此处训练集采用清理过的MS-Celeb-1M,损失采用Insightface的损失。
![](https://img-blog.csdnimg.cn/2019061215250243.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zOTg3NTE2MQ==,size_16,color_FFFFFF,t_70)
Megaface
文中引用
[1] Evan Shelhamer, Jonathan Long, Trevor Darrell.Fully Convolutional Networks for Semantic Segmentation .arXiv:1605.06211,2016.