MobileFaceNets,简书作者,进行了该模型的对比实验,验证算法改进提升的原因

MobileFaceNets

    
    


一点心青

关注




2018.11.30 21:53*
字数 734
阅读 201 评论 0



    
    

MobileFaceNets: Efficient CNNs for Accurate RealTime Face Verification on Mobile Devices

背景介绍

偏工程性论文,分析了现有轻量级网络应用于人脸识别的不足,并使用Global Depthwise Convolution改进。

论文要点

  • Global Depthwise Convolution
  • 人脸识别最后需生成特征向量,一般由全连接或平均池化生成。
  • 全连接全产生大量的参数,会导致模型增大,不便于嵌入端的部署。
  • 平均池化没有考虑位置信息,所有位置的特征都一样。
  • 基于人脸的直观感受,最后一层特征图每个像素对应人脸区域其重要性有所差异,因而使用加权平均更合理,使用Global Depthwise Convolution可以实现加权的效果。
    [图片上传失败...(image-b946b-1543585944328)]
  • 网络结构

结果分析

  • 删除GDConv后线性变换层后,准确率有所下降,但部署时间没有减少,因而实际应用可以保留线性变换层。
  • 将PReLU换成ReLU后,其实际的部署时间少1ms,准确率有所下降,在推理框架支持PReLU的情况下,可以考虑优先使用PReLU。
  • expansion factor 变大后,准确率没用提升反而下降,说明在此网络结构下,并不是filter越多,效果越好。
  • MobileNetV2使用GDConv相比于不使用GDConv准确率提升明显,说明GDConv有作用,是不是GDConv对所有具有Global Average Pooling的网络结构都作用呢?


    MobileFaceNets,简书作者,进行了该模型的对比实验,验证算法改进提升的原因_第2张图片
    MobileFaceNet-3

问题思考

  • 训练方法
  • 为什么要将GDConv后卷积层的weight decay设置得比之前的小?
  • 以MobileNetV1/MobileNetV2/ShuffleNet作对比实验时,为什么要从头训练,而不使用imagenet的预训练模型,是为了保证所有模型从头训练的同一条件。
  • 文中提MobileNetV1如果第一层卷积层stride=2时,其准确率较差,但并没有分析原因,个人觉得如果第一层卷积层stride=2,会导致中间主要提取特征的分辨率较小,不利于提取更丰富的特征,设计轻量级网络时,既要使用fast downsampling的策略,也要保证中间层时的分辨率不宜过小。
  • 测试结果
  • 没有对比MobileFaceNet使用GDConv和不使用GDConv的差异,因而无法评估整体准确率的提升是由于前面的网络结构设计,还是最后使用了GDConv带来的准确率提升。
  • Global Depthwise Convolution
  • 其想法与Face R-FCN提到position-sensitive average pooling是一致的
      

你可能感兴趣的:(人脸识别)