MobileFaceNet模型分析

AI算法半路出家的过程其实是有点痛苦的,告别了曾经熟悉的领域,在陌生又熟悉的道路上摸索着前进,其中的焦虑、彷徨以及面对信息过载的不知所措,常常让人怀疑当初的选择。好在,硬核人生不会被小小的困难劝退,我们有很多路径可以到达彼岸。也特别感谢科技和网络的进步,让知识的获取不再是少数人的专利。前些天找到了一个比较牛的AI学习网站,老师的授课方式风趣幽默,通俗易懂,让学习的过程兴趣盎然,忍不住推荐给大家。
点击跳转到网站
————————————————
1. 背景介绍

随着技术的发展,人脸识别算法在嵌入式终端上的应用越来越广泛,但由于终端设备的算力和存储资源限制,对人脸检测和识别模型的要求倾向于轻量级+高精度。轻量级模型相对于又深又宽的大模型,具有参数量小、乘加数少的特点,但同时在预测精度上不能有太大的损失。

近年来,MobilenetV1,ShuffleNet和MobileNetV2等轻量级网络多用于移动终端的视觉识别任务,但是由于人脸结构的特殊性,这些网络在人脸识别任务上并没有获得满意的效果。针对这一问题,北京交通大学的Sheng Chen等人在论文《MobileFaceNets: Efficient CNNs for Accurate RealTime Face Verification on Mobile Devices》提出了一种专门针对人脸识别的轻量级网络MobileFaceNet。

如下图所示,在使用MobileNetV2等网络进行人脸识别时,平均池化层对FMap-end的Corner Unit和Center Unit给予了同样的权重,但实际上,对于人脸识别来说,中心单元的重要程度显然比角单元重要。因此,需要对网络进行有针对性的优化。论文中,最重要的一个优化就是使用Global Depthwise Convolution (GDConv,全局逐深度卷积层)代替Global Average Pooling (GAP,全局平均池化层),因为GDConv的weights即相当于实现不同位置的重要性权重系数。

2. 模型结构

MobileFaceNet的模型结构大致如下:

(1) 采用类似于MobileNetV2的网络结构;

(2) 使用全局逐深度卷积层(GDConv)替代全局平均池化层,以满足最后一层特征图不同位置具有的不同重要程度(相当于实现加权平均的效果);

全局逐深度卷积层的输出为:

 其中,F为输入特征图,大小为W*H*M,K为GDConv的kernel,大小为W*H*M,G为输出,大小为1*1*M。G的第m个channel只有一个元素Gm,(i, j)表示F和K的空间位置,m为channel index。

GDConv的计算量为:W*H*M。

(3) 使用PReLU激活层代替ReLU;

(4) 比MobileNetV2更小的扩展因子;

(5) Fast down sampling。

作为对比,下面分别贴出MobileNetV2和MobileFaceNet的网络结构图:

为了进一步减少计算开销,112x112的输入大小可进一步减小为112x96或96x96。为了减少参数量,将线性GDConv层之后的1x1卷积层去掉,生成MobileFaceNet-M。在MobileFaceNet-M基础上,进一步将GDConv层之前的1x1卷积层去掉,生成最小网络MobileFaceNet-S。 

3. 模型参数量和乘加数

按照以上描述的模型结构,MobileFaceNet模型参数量有0.99M,乘加数MAdds为221M。进一步优化后的模型MobileFaceNet-M和MobileFaceNet-S则具有更少的参数量和乘加数。

下表给出了MobileFaceNet及其变体与已有模型在数据集LFW和AgeDB-30上的精度、参数量以及推理速度的对比。

论文中,作者为了验证模型的极端性能,将MobileFaceNet、MobileFaceNet(112x96)、MobileFaceNet(96x96)基于干净的MS-Celeb-M训练集,并使用ArcFace loss进行训练,下表给出了MobileFaceNet及其变体与之前已有人脸识别模型在LFW上的表现对比:

  • 4
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值