从 S8 发布到 iPhone X 面世,「人脸识别」从一个可有可无的尝鲜功能逐渐地成熟并为大众所熟知。很少有人知道,Android 早在 4.0 开始就已经在系统的解锁方法里面添加了人脸识别解锁,在那个手机还没有指纹识别的年代,能用上它的人,大多是抱着玩玩的心态。

几年之后,3.15 晚会上对「人脸支付」安全性的怀疑和 iPhone X 发布会上对人脸识别的重点介绍都让我们可以感觉到「人脸识别」正变得越来越严肃。

这篇文章我将会带大家来玩玩谷歌的人脸识别解锁功能(以下简称谷歌人脸识别或 Facelock),再聊聊目前人脸识别的优缺点。

安装 Google 服务框架和录入面孔

  • 如果你是原生 Android 还带着全套的 Google 服务,那么多半不需要再做其他步骤;
  • 如果你是 AOSP 系的系统(魔趣,氢氧系统等)但是不带 Google 服务框架,那么需要安装带有 FaceDetect 和 Facelock 的谷歌框架,推荐从 OpenGapps 下载卡刷包安装(PS:选择 nano 以上级别的卡刷包才内置 Facelock);
  • 如果你是国产系统,因为安装 Google 服务框架之后没有 Smart Lock 入口,所以可能和谷歌人脸识别无缘,不过如果你的系统自带人脸识别的话,一般不比谷歌人脸识别差,原因下面会提到。

安装了框架之后,我们只需要在「设置 - 安全 - Smart Lock - 可信面孔」里面添加自己的面孔之后就可以使用自己的脸解锁手机啦。操作方法和现在很多系统的人脸识别相似,每次点亮手机都能看到底部正在识别识别标志,当识别到正确的面孔就会变为解锁标志。

不同于其他人脸识别解锁会直接解锁,谷歌人脸识别还要向上滑动锁屏界面才会解锁手机,想要直接开启直接解锁方式的派友可以直接看文章最后附上的解决方式。

https://opengapps.org

Facelock 的优点和缺点

除了解锁方式有科技感可以在朋友面前炫耀一下以外,使用前置指纹识别手机的派友可能感受不到,对于使用后置指纹识别的派友来讲人脸识别可以说是一个半必备的功能。

试想一下当手机放在桌面上或者手指不好够到指纹识别器的时候,只需要把手机对准自己的脸,或者把自己的脸对准手机,刷的一下就解锁的感觉是多么的舒服。这种操作比起指纹识别来要更加地「懒」,毕竟用手机的时候你始终需要看着它,而把手机放到 Home 键或者背后的操作相比之下就不是那么地「必须」了。

值得一说的是,即使在光线非常暗甚至只有月光的情况下 Facelock 也能以差不多的速度识别解锁,这点非常不错。

接下来要说说它的缺点了,首先在添加面孔的时候就暴露了谷歌人脸识别也是大部分人脸识别根本上的缺点,安全性不足。我使用了一张英俊帅气的吴彦祖脸部动图就能轻松地添加面孔,之后的解锁识别上也是毫无问题。

受制于前置摄像头识别的局限性,这种级别的安全性显然不能让人满意,Google 也特意地在 Smart Lock 里面注明了安全性的问题。

另外一个则是解锁速度,谷歌人脸识别的速度在各家的人脸识别中算是慢的了,最慢的时候需要差不多两秒。不过使用实际过程中大部分时间识别速度没有超过一秒,就是上面动图里面的解锁速度。

这个速度和指纹识别动辄 0.2 秒解锁比起来当然一点优势也没有,不过实际使用中只要你不是超级需要「争分夺秒」,人脸识别解锁的带来方便还是值得等待一秒的。

人脸识别的现状

目前许多公司都在研究人脸识别技术,越来越多的国产 ROM 也开始添加人脸解锁功能,不过按照识别原理主要还是分为三大类:平面识别,伪立体识别,真立体识别(非专业分类用词)。

平面识别是包括谷歌在内现在大部分手机人脸识别使用的方式,说白了其实利用最基本的几何特征进行人脸识别,普通智能手机的前置摄像只能获取一个平面上的 RGB 信息,使用平面识别的方式也是受制于这个情况下的无奈选择。

采用这种这种方式的人脸识别优点是运算量和数据量比较小,硬件要求底兼容性好,解锁速度快;缺点是安全性约等于没有,无论是相似的人还是照片都能轻松骗过算法,虽然可以通过眨眼检测等方式增强安全性,不过这样子就牺牲了识别速度(即使这样也有相应的欺骗方法)。

OpenIMAJ 的原理图

伪立体识别指的是在单目或者双目摄像头(某些手机已经有前置双摄像头)的基础上利用深度学习和结构光计算等方法计算出脸部不同部位的大概深度,这样子再结合平面识别去检测人脸,目前国产 ROM 内置的人脸识别都开始采用这种方法。

这种方法的运算量剧增,却提高了安全性,至少普通的照片和屏摄图已经骗不了这种算法了。不过一张带弧度的侧脸高清彩印照片也可以骗过大部分采用这种识别方式的手机。

图片来源:互动百科

至于真立体识别那看过 iPhone X 发布会的大家都已经非常熟悉了,利用红外线或者光传感器扫描生成一个高分辨率的人头模型来作为识别材料,用深度学习来识别是否是真人。

并且 iPhone X 只有在眼睛鼻子嘴巴都被检测到并且眼睛睁开的情况下才能解锁手机,苹果还特别指出,人头模型并不能骗过 iPhone X。

这种识别方法目前来讲需要硬件支持,而且硬件还不便宜,至于安全性当然是最高的。这种方法在一定程度上兼顾了安全和方便,注定会成为以后智能手机的功能主流,高通和华为也即将推出自己的立体人脸识别方案。

Face ID 原理图示

总结

看完文章大家也应该明白,现在的人脸识别还谈不上安全性。

不过人脸识别的优点和给我们带来的便利又是实实在在的,特别是明年 iPhone X 开始铺货之后,人脸识别的普及将成为智能手机上新的趋势。

Google 的 Facelock 降低安全性专注于提升解锁速度以及体验的方式的确是目前来讲性价比最高的方式。如果你没有数据保密的需求,请尽情使用 Facelock 人脸识别解锁,如果你想体验人脸识别带来的便利同时又不放心手机安全的话,只能期待 iPhone X 或者明年一大批将会采用立体人脸识别方案的手机了。

Fairyex 的例行小彩蛋:让 Facelock 解锁更快的小秘密

上面也有提到,Facelock 并不像大部分国产系统里面的人脸识别解锁一样,识别成功会直接解锁,而是多了一个向上滑动锁屏界面的操作。

那么有没有设置可以去掉这一步呢?

官方并没有,不过我们还可以求助于万能的 Xposed,一个心细的开发者就为我们开发了一个可以用 Facelock 直接人脸识别解锁的 Xposed 插件——Instant Face Unlock,直接在 Xposed Installer 的插件库里搜索 Face 下载即可。效果在上文里面的 GIF 图里面有体现。

如果你还不知道什么是 Xposed,可以看下我的文章《关于 Android 7.1 的 Xposed,你想知道的都在这里》