苹果解密:如何在手机上用深度神经网络进行人脸识别

千平 编译整理 量子位 出品 | 公众号 QbitAI

苹果公司的计算机视觉机器学习团队,最近发表了一篇博客,介绍了苹果如何在手机上实现用深度神经网络进行人脸识别。

苹果首次公开发布人脸检测API,是通过Core Image框架的CIDetector识别类。这个API也用在“照片”等苹果的App中。CIDetector最早使用了基于Viola-Jones检测的算法。

随着深度学习的出现以及在计算机视觉问题中的应用,现在最好的人脸检测精度也产生了巨大的飞跃。我们必须彻底重新思考我们的方法,以便利用这一范式的转变。与传统的计算机视觉相比,深度学习的模型需要更多的内存、存储空间和计算资源。

与今天的手机一样,典型的高端手机并不是一个可行的深度学习视觉模型平台。大多数厂商都是通过基于云的API来解决深度学习的解决方案,即把图像发送到云端,然后再使用深度学习推理检测人脸。

基于云的服务通常使用性能强大的桌面级GPU,配备大容量的内存,以支持客户端(例如手机)利用大型深度学习系统的需求。但这种计算放在本地是不切实际的。

另一方面,苹果的iCloud照片库是一个基于云的照片和视频存储解决方案,但是出于隐私保护的目的,苹果无法再云端对这些照片进行处理。因此,为了给用户提供深度学习的计算机视觉解决方案,苹果需要在iPhone上解决问题。

这里有几个挑战。深度学习模型需要作为操作系统的一部分提供给用户,占用宝贵的NAND存储空间,还得加载到RAM内存之中,并且使用大量GPU或者CPU的计算时间。而且在设备端的计算需要共享资源,而且足够高效。

那么,

  • 如何充分利用GPU和CPU?
  • 如何为网络推断、图片加载和缓存等优化内存?
  • 如何不妨碍iPhone性能同时运行网络?

从Viola-Jones到深度学习

2014年,当苹果开始研究用深度学习方法检测人脸时,深度卷积网络(DCN)刚刚开始崭露头角。其中最好的方法名叫“OverFeat”。

OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks

论文在此:http://arxiv.org/abs/1312.6229

苹果基于OverFeat论文中的一些见解,构建了一个全卷积网络(如下图所示),其中包含多个任务目标:

  • 一个二元分类器,检测图片中是否存在人脸
  • 一个回归,用于定位图片中的人脸识别框

苹果尝试了几种方法来训练这个网络,训练完毕后,这个网络就能预测图片中是否存在人脸,并且提供相应的坐标和比例。

对于这样一个全卷积网络,可以建立一个标准的处理流程来执行人脸检测,包括一个多尺度的影像金字塔、人脸检测网络和一个后处理模块。如下图所示。

这一策略让苹果离在手机上运行深度卷积网络更进一步,但网络的复杂性和规模仍然是性能的关键瓶颈。克服这一挑战,不仅意味着将网络限制在一个简单的拓扑结构中,而且还要限制网络的层数、每层新到数量、卷积核的大小等。

但是一个能产生可接受精度的网络,通常都超过20层,还有一些网中网的模块。在手机上应用这种神经网络完全不可行,会严重影响性能和电池续航。实际上,这种网络根本无法加载大手机的内存之中。

怎么办?苹果决定采用一种“师生”训练方法。这个方法能训练出一个小而深的网络(学生),性能接近大型复杂网络(老师)。学生网络由一个简单的3×3卷积和池化层重叠构成,结构经过精心设计,可以最大限度的利用苹果的神经网络推理引擎。

最后,苹果得到一个能在手机上运行的人脸检测深度神经网络算法。接下来仍有大量工作要做,以便在数百万用户设备上部署。

其他优化

当然到这一步还不算完。

苹果在这篇博客中还介绍了如何优化图像pipeline、如何在手机上优化性能等问题。总而言之,最后苹果得到一个本地运行、低延迟、私密的深度学习推断,而且用户不会察觉到他们的手机每秒执行了近千亿次的神经网络计算。

关于这篇博客的全文,可以访问这个网址查看:

https://machinelearning.apple.com/2017/11/16/face-detection.html

原文发布于微信公众号 - 量子位(QbitAI)

原文发表时间:2017-11-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技大本营的专栏

AI 技术讲座精选:ChainerMN 分布式深度学习的性能

2017深度学习峰会于今年1月在旧金山落下帷幕。会上,PFN 发布了其在多节点环境下使用 Chainer 的分布式深度学习所取得的进展。在今天的这篇文章中,我会...

38712
来自专栏机器之心

学界 | 价值传播网络,在更复杂的动态环境中进行规划的方法

规划是许多领域人工智能体的关键组成部分。然而,经典规划算法的局限性在于,对于每种可能的规划实例,人们都需要知道如何为其搜索最优(或至少合理的)方案。环境动态和状...

761
来自专栏携程技术中心

深度学习系列 | 深度学习在搜狗无线搜索广告中的应用

编者:本文来自搜狗资深研究员舒鹏在携程技术中心主办的深度学习Meetup中的主题演讲,介绍了深度学习在搜狗无线搜索广告中的应用及成果。戳上面的“携程技术中心”(...

37411
来自专栏IT大咖说

深度学习:基于K8S的分布式Tensorflow系统

摘要 虽然TensorFlow已经成为了实现深度学习算法最受欢迎的工具之一,但要将其应用于海量数据上仍然存在效率问题。为了提高TensorFlow的运行速度,我...

4608
来自专栏AI科技大本营的专栏

实战 | 深度学习轻松学:如何用可视化界面来部署深度学习模型

翻译 | AI科技大本营 参与 | 王赫 上个月,我有幸结识了 DeepCognition.ai 的创始人。 Deep Cognition (深度认知) 建立的...

37310
来自专栏机器之心

OpenAI详解进化策略方法:可替代强化学习

选自OpenAI 作者:Andrej Karpathy等 机器之心编译 参与:吴攀、李亚洲 让机器具备生物一样的进化能力一直是计算机科学的一个热门研究领域,Op...

4088
来自专栏CDA数据分析师

机器学习的5种“兵法"

在研究机器学习中,理论在其整个自上而下方法中试用于哪里呢? 在传统的机器学习教学中,丰富的数学理论知识对于理解机器学习是至关重要的,我的机器学习教学方法通常是教...

1897
来自专栏人工智能快报

富士通新技术大幅减少深度学习对内存的需求

《IEEE科技纵览》发表文章称,富士通开发的新技术可以大幅减少深度学习算法对内存的需求。 日本富士通开公司发了一种基于深度学习神经网络算法的并行计算加速方法,该...

3328
来自专栏大数据文摘

机器学习的5种“兵法”;

2485
来自专栏大数据文摘

Kaggle大神带你上榜单Top2%:点击预测大赛纪实(上)

2543

扫码关注云+社区

领取腾讯云代金券