通过提取神经元知识实现人脸模型压缩:MobileID可在移动设备上快速运行

简介:

MobileID 是一种非常快速的人脸识别系统,其可以从 DeepID2 中提取知识。给定一张被检测和已对齐的人脸图像,该软件可以输出一个低维的人脸表征(face representation),该表征可以可靠地保留其身份信息。更多细节可参考我们的论文《Face Model Compression by Distilling Knowledge from Neurons》。

更多信息也可以联系Ziwei Liu.


需求


开始

  • 安装并编译 Caffe 和 t-SNE 库。
  • 下载预训练的模型 mobile_id.caffemodel:
Place "mobile_id.caffemodel" into "./models/"


Place "lfw.zip" into "./data/gallery/" and unzip

运行特征提取脚本:

sh ./extract_features_gallery.sh

运行可视化脚本:

matlab ./gen_tsne_gallery.m


表现

MobileID 系统是在 CelebA 数据集上训练的,在 LFW 数据集上测试的。当配备联合贝叶斯(Joint Bayesian:http://www.jiansun.org/papers/ECCV12_BayesianFace.pdf)时,它能在保证高速的同时还实现出色的表现,如下所示:


数据集

大规模名人面部属性数据集(CelebA):http://mmlab.ie.cuhk.edu.hk/projects/CelebA.html

注:CelebA 数据集和 LFW 数据集之间没有身份重叠。


论文:通过从神经元中提取知识实现的人脸模型压缩(Face Model Compression by Distilling Knowledge from Neurons)


近来的先进人脸识别系统都构建于大型深度神经网络(DNN)或它们的组合之上,其中会包含数以百万计的参数。但是,DNN 高昂的计算成本使得我们难以将其部署到移动设备和嵌入式设备中。这项工作解决了用于人脸识别的模型压缩问题,其中一个大型教师网络(large teacher network)或其组合所学习到的知识会被用作训练一个紧凑的学生网络(compact student network)的监督。和之前通过软化标签概率(soften label probabilities)(这种方法难以拟合)来表征知识的方法不同,我们通过使用更高隐藏层的神经元来表征知识,其可以保留和标签概率一样多的信息,但是能做到更加紧凑。通过利用学习到的人脸表征的基本特征(阈知识),我们提出了一种神经元选择方法来选择与人脸识别最相关的神经元。使用被选择的神经元作为监督来模拟 DeepID2+ 和 DeepID3(这是当前最佳的人脸识别系统)的单个网络,一个带有简单网络结构的紧凑学生网络可以在 LFW 上分别实现比其教师更好的验证准确度。当使用 DeepID2+ 的组合作为教师时,一个模仿学生可以实现比其更好的表现并实现 51.6 倍的压缩率和 90 倍的推理速度提升,使得可将这种笨重的模型应用于便携式设备。


原文发布时间为: 2017-07-04

本文来自云栖社区合作伙伴极市网,了解相关信息可以关注极市网。

相关文章
|
存储 分布式数据库 C语言
【初阶数据结构】树(tree)的基本概念——C语言
【初阶数据结构】树(tree)的基本概念——C语言
|
数据采集 并行计算 PyTorch
【已解决】RuntimeError: DataLoader worker (pid 263336) is killed by signal: Terminated.
【已解决】RuntimeError: DataLoader worker (pid 263336) is killed by signal: Terminated.
|
机器学习/深度学习 JSON 文字识别
OCR文字识别技术总结(一)
OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,经过检测暗、亮的模式肯定其形状,而后用字符识别方法将形状翻译成计算机文字的过程;即,针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并经过识别软件将图像中的文字转换成文本格式,供文字处理软件进一步编辑加工的技术。如何除错或利用辅助信息提升识别正确率,是OCR最重要的课题,ICR(Intelligent Character Recognition)的名词也随之产生。
5826 0
OCR文字识别技术总结(一)
|
机器学习/深度学习 算法 数据挖掘
Python 机器学习算法交易实用指南(一)(1)
Python 机器学习算法交易实用指南(一)
558 4
|
机器学习/深度学习 并行计算 PyTorch
【已解决】RuntimeError: CUDA error: device-side assert triggeredCUDA kernel errors might be asynchronous
【已解决】RuntimeError: CUDA error: device-side assert triggeredCUDA kernel errors might be asynchronous
10629 2
|
机器学习/深度学习 人工智能 自然语言处理
AI超级个体:ChatGPT与AIGC实战指南
AI超级个体:ChatGPT与AIGC实战指南
667 3
|
开发框架 前端开发 Java
Spring和Spring Boot:两者的区别与应用场景
Spring和Spring Boot:两者的区别与应用场景
499 1
阿里云怎么注册商标?(附详细商标注册申请操作流程)
阿里云商标注册分为商标智能注册申请、商标顾问注册申请和商标安心注册申请,本文阿小云以商标智能注册申请为例来详细说下阿里云商标申请图文操作流程:
6548 0
阿里云怎么注册商标?(附详细商标注册申请操作流程)
|
数据可视化 BI
甲骨文ERP收款自动录入:提高财务效率,实现智能化管理
通过八爪鱼rpa自动化的方式,我们可以实现财务工作的智能化管理,提高工作效率和准确性。同时,八爪鱼rpa的使用也非常简单,用户可以通过可视化的界面进行操作,无需编写复杂的代码。因此,八爪鱼rpa不仅适用于大型企业,也适合中小型企业使用。
|
计算机视觉 机器学习/深度学习 编解码
【轻量化网络系列(4)】ShuffleNetV1论文超详细解读(翻译 +学习笔记+代码实现)
【轻量化网络系列(4)】ShuffleNetV1论文超详细解读(翻译 +学习笔记+代码实现)
1052 0
【轻量化网络系列(4)】ShuffleNetV1论文超详细解读(翻译 +学习笔记+代码实现)