0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

iPhone X最热门功能之一就是新的解锁方法:FaceID

机器学习算法与人工智能 来源:未知 作者:李倩 2018-03-20 16:08 次阅读

新款iPhone X最热门功能之一就是新的解锁方法:FaceID。由于创建了无边框手机,苹果不得不开发一种能简单快捷的解锁手机的新方法。不同于一些竞争对手继续使用放在不同位置的指纹传感器,苹果决定革新我们解锁手机的方式,让我们看一下手机就能解锁。

借助一款先进的前置深度相机(facing depth-camera),iPhone X能够创建用户脸部的3维映射。此外,使用红外相机拍摄用户脸部的图片,该图片对于环境的光线和颜色的变化更具鲁棒性。运用深度学习智能手机能够非常详细地学习用户的脸,因此每当手机被其拥有者拿起时,它都会立刻认出他。更令人惊讶的是据苹果表示,这种方法比TouchID更安全,错误率仅为百万分之一。

我对苹果实现FaceID的技术很感兴趣,希望了解如何使用深度学习来实现这个过程,以及如何优化每个步骤。在这篇文章中,我将展示如何使用Keras实现一个类似FaceID的算法。我将解释我采取的各种架构决策,并使用Kinect展示一些最终实验结果,它一种非常流行的RGB深度相机,它与iPhone X前置摄像头的输出非常相似(但设备更大)。那么,让我们开始对苹果的革新进行逆向工程。

了解FaceID

“…… 支持FaceID的神经网络不是简单地执行分类。”

FaceID设置过程

第一步是仔细分析FaceID在iPhone X上的工作原理。他们的白皮书可以帮助我们理解FaceID的基本机制。过去,在使用TouchID时,用户必须通过按几次传感器,初始登记其指纹。在大约15-20次不同的触摸之后,注册完成,TouchID可以开始使用了。同样地,FaceID的用户也要注册他的脸。过程非常简单:只是像往常一样看手机,然后慢慢地转动头部,这样就可以从不同的姿势来记录面部。就这样,这个过程完成,手机就可以解锁了。这种快速的注册过程可以告诉我们很多关于这种学习算法的潜在信息。比如,支持FaceID 的神经网络不仅仅是执行分类。

苹果推出iPhone X和FaceID

针对神经网络进行分类,意味着学习如何预测它看到的脸是否是用户的。所以,它应该主要使用一些训练数据来预测“真”或“假”,但与许多其他深度学习用例情况不同,这种方法实际上是行不通的。首先,网络要使用从用户脸上获得的新数据进行再训练。这需要大量时间,能量消耗和不实用的训练数据为不同的脸去做否定实例(在迁移学习和已经训练好的网络上微调的情况下会有所改变)。

此外,这种方法无法使用的一个原因是:苹果要训练更复杂的离线网络。也就是说,要在他们的实验室中训练,然后发送预训练好的网络给用户的手机。所以,我相信FaceID是由类似孪生卷积神经网络(siamese convolutional neural network)驱动的,该网络由苹果公司“离线”训练,将脸部映射到低维隐空间中,利用对比损失(contrastive loss)最大化不同人脸之间的距离。会发生什么是你得到一个能够“one shot learning”(少样本精准分类的一种)的架构。

从数字识别到人脸识别的神经网络

孪生神经网络一般由两个相同的神经网络组成,共享所有的权重。该架构可以学习计算特定类型的数据之间的距离。原理是,你通过孪生网络传递数据(或者简单地通过同一网络在两个不同的步中传递数据),网络将它映射到一个低维特征空间,就像一个n维数组,然后你训练网络进行映射,使不同类别的数据点尽可能地远,同一类别的数据点尽可能接近。网络将学习从数据中提取最有意义的特征,并将其压缩成一个数组,从而创建一个有意义的映射。为了对此有一个直观的理解,我们想象一下使用较少维度的矢量来描述狗的品种,使类似的狗具有更接近的矢量。你可能会用一个数字来编码狗的毛色,另一个用来表示狗的大小,再一个用于毛的长度,等等。这样,相似的狗将具有相似的向量。孪生神经网络可以学习为你做这件事,类似于一个自动编码器。

图片来自Hadsell,Chopra和LeCun发表的论文“通过学习不变映射降维”。注意这个架构是学习数字之间的相似性,并自动将它们分组为二维。技术上与脸部识别类似。

使用这种技术,人们可以使用大量面孔来训练这种架构,以识别哪些脸最为相似。如果拥有不错的预算和计算能力(像苹果那样),也可以使用更难的例子,使网络对诸如双胞胎,对抗攻击(面具)等更具鲁棒性。使用这种方法的优势是什么?你有了一个随时可用的模型,可在无需进一步训练的情况下识别不同的用户,它只需要在初始设置期间拍摄一些照片后,计算用户的脸部位于脸部映射空间中的哪个位置即可。。另外,FaceID能够适应你的方面的变化:突兀的变化(例如,眼镜,帽子,化妆)和细节变化(面部毛发)。这需要通过在此映射中添加参考脸的向量来完成的,它根据你的新外观计算而来。

当你的外表改变时,FaceID会适应

现在,让我们看看如何使用Keras实现它。

在Keras中实现FaceID

我们首先需要的是数据。我在网上找到了RGB-D人脸数据集。它由一系列面向不同方向,做出不同表情的RGB-D图片组成(与FaceID所需吻合)。

实现:https://github.com/normandipalo/faceID_beta

Colab Notebook:https://colab.research.google.com/drive/1OynWNoWF6POTcRGFG4V7KW_EGIkUmLYI

我创建了一个基于SqueezeNet架构的卷积网络。网络输入耦合人脸的RGBD图像,因此是4通道,并输出两个嵌入之间的距离。该网络训练时会产生对比损失,可以最大限度地减少同一人的照片之间的距离,并使不同人的照片之间的距离最大化。

对比损失

经过一些训练后,网络能够将人脸映射成128维数组,使得同一人的图片被分组在一起,而与其他人的图片相距甚远。这意味着,要解锁你的设备,网络只需计算在解锁过程中拍摄的照片与在注册阶段存储的照片之间的距离。如果距离低于某个阈值,则设备解锁(阈值越小,设备越安全)。

我使用t-SNE算法在2维中可视化128维嵌入空间。每种颜色都对应不同的人:如你所见,网络已经学会了将这些图片正确分组。(当使用t-SNE算法时,簇之间的距离没有意义)使用PCA降维算法时也会出现一个有趣的现象。

使用t-SNE创建的嵌入空间中的人脸簇。每种颜色都是不同的面孔(颜色被重复使用)。

使用PCA创建的嵌入空间中的人脸簇。每种颜色都是不同的面孔(颜色被重复使用)。

实验

现在我们可以试着看看这个模型的运作,它模拟一个FaceID的流程:首先,注册用户的脸。然后,解锁阶段,从用户(应该成功),从其他人那里,不应该解锁设备。前面提到,区别在于网络在解锁手机和已注册的人脸之间进行计算的距离,以及是否处于某个阈值之下。

让我们从注册开始:我从数据集中采集了同一个人的一系列照片,并模拟了注册阶段。该设备开始计算每个姿态的嵌入,并将它们存储在本地。

受FaceID新用户注册过程的启发

深度相机所看到的注册阶段

现在让我们看看如果同一用户试图解锁设备会发生什么。同一用户的不同姿势和面部表情实现了较低的距离,约为0.30多点。

同一用户嵌入空间中的距离。

另一方面,来自不同人的RGBD图片的平均距离为1.1。

不同用户嵌入空间中的距离

因此,使用约0.4的阈值应足以防止陌生人解锁你的设备。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • iphonex
    +关注

    关注

    3

    文章

    614

    浏览量

    30515
  • faceid
    +关注

    关注

    2

    文章

    89

    浏览量

    11909

原文标题:使用深度学习实现iPhone X的FaceID

文章出处:【微信号:machinelearningai,微信公众号:机器学习算法与人工智能】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    12种最热门的开源项目,你都知道哪些?

    GitHub 上最热门的开源项目有哪些,又有哪些新的项目挤进热门榜单了呢,起来看看。
    的头像 发表于 04-03 08:38 1.1w次阅读

    收集论坛上最热门的DIY资源,共800多M!打包下载!

    收集论坛上最热门的DIY资源,共800多M!打包下载!定有你需要的!
    发表于 06-29 06:41

    iphone解锁程序

    `iphone解锁程序详解`
    发表于 12-05 17:57

    指纹解锁极速可达0.25s!

    IPHONE。朵唯L5 Pro官方给出的数据也称从熄屏到解锁过程不超过0.5秒。相隔不久,VIVO也推出了款以“快”为核心的手机——X6,在拥有更加靓丽的外形的同时,VIVO重点宣传
    发表于 03-11 16:29

    史上最贵iPhone X的人脸识别解锁,到底有何玄机?

    ` 北京时间9月13日凌晨,苹果公司正式推出新代产品iPhone X,据悉,此款产品采用采用全面屏技术,解锁手机就靠面部识别。当然,价格也成为史上最贵,64G基本款售价8388元,2
    发表于 09-15 15:33

    5月份Github上最热门的数据科学和机器学习项目榜单概述

    5月份Github上最热门的数据科学和机器学习项目
    发表于 07-29 06:57

    2017年最热门八大锂电新材料

    2017年锂电产业将持续升温,而最热门的锂电材料又有哪些呢?本文专门为大家盘点了2017年最热门锂电新材料。
    发表于 02-06 17:05 2524次阅读

    带你了解最热门的三款FRAM产品

    这儿有最最最最最热门的三款FRAM产品。
    的头像 发表于 08-22 15:19 8859次阅读
    带你了解<b class='flag-5'>最热门</b>的三款FRAM产品

    目前嵌入式视觉领域最热门的话题之一就是机器学习

    目前嵌入式视觉领域最热门的话题之一就是机器学习。机器学习涵盖多个行业大趋势,不仅在嵌入式视觉 (EV) ,而且在工业物联网 (IIoT) 和云计算中均发挥着极为显赫的作用。对不熟悉机器学习的人来说
    发表于 01-06 11:45 1184次阅读

    苹果WWDC秋季发布会之前,爆料FaceID或将支持水平解锁

    日本苹果博客Macotakara和克-古尔曼(Mark Gurman)爆料称,苹果即将发布的iOS 12将新增对设备平放时使用FaceID功能的支持。这是个细微但又非常重要的细节,因为它预示着新款iPad和
    发表于 05-09 09:14 4913次阅读

    2018 年 2 月份 GitHub 上最热门的开源项目

    2 月份 GitHub 上最热门的开源项目又出炉了,又有哪些新的项目挤进热门榜单了呢,起来看看。
    的头像 发表于 03-23 08:53 4660次阅读

    三星生物识别摄像头专利过审,与苹果FaceID极度相似

    苹果在iPhone X上实现了FaceID功能,让用户可以用面部进行解锁,在度过了最初的适应期之后,iP
    的头像 发表于 07-10 11:11 4429次阅读

    GPU领域最热门的技术之一:光线追踪

    光线追踪无疑是当今GPU领域最热门的技术之一,NVIDIA、AMD的新显卡都已经在硬件上支持,微软也带来了标准的DX12 DXR API。 现在,Khronos Group正式发布了Vulkan
    的头像 发表于 11-24 14:15 2066次阅读

    苹果争取让戴口罩的用户解锁iPhone

    苹果今天在最新发布的iOS 14.5测试版中,带来了个新功能,而它就是戴口罩时也可用FaceID解锁i
    的头像 发表于 02-02 09:17 1314次阅读

    最热门的十大绿色能源公司

    电子发烧友网站提供《最热门的十大绿色能源公司.doc》资料免费下载
    发表于 11-02 14:37 1次下载
    <b class='flag-5'>最热门</b>的十大绿色能源公司