https://technews.tw/2017/11/27/face-id-apple-description/
苹果在自家机器学习日报自爆功法,发表论文《基于深度神经网路的装置端人脸辨识》,披露脸部辨识技术演变。2017 年 9 月 13 日,苹果在贾伯斯剧院发表智慧手机 iPhone X。这款搭载 64 位元架构 A11 神经处理引擎、採用脸部辨识解锁方式的全萤幕手机,号称 iPhone 10 週年纪念之作,售价新台币 35,900 元起。事实上,苹果 iOS 10 就开始使用深度学习技术用于脸部辨识,目前已向开发者开放视觉框架,支援相关应用程式开发。下文将着重讨论电脑视觉技术在隐私保护遇到的挑战,及基于深度学习的终端机人脸辨识技术实现方案。一、终端机深度学习模型的挑战苹果最早发表的脸部辨识 API 是透过 CIDetector 达成,一种针对静态影响的特徵资讯辨识的影像处理单元。最早版本的 CIDetector 基于维奥拉─琼斯目标侦测框架,苹果将其以传统方式最佳化。后来,随着深度学习出现、电脑视觉领域的应用,人脸辨识的準确性得到大飞跃,启发了苹果。相比传统的电脑视觉方案,深度学习演演算法能有更好的模型,也要求更多记忆、储存/磁碟和可计算资源。矛盾点来了:以目前终端机的硬体条件来看,基于深度学习的视觉模型似乎并不是可行方案,而大多数企业的解决方案是提供云介面,先将图片传给能执行大型深度学习框架的伺服器,然后用深度学习侦测脸部。而云服务往往需要强大的桌机系统级 GPU,需要大量记忆体。介面方案虽然可行,但违背了苹果的隐私保护理念,因此,苹果只提供照片和影片云服务,所有照片、影片上传之前需得到帐户许可;针对电脑视觉指令,上传云端被认为是不太合适的方法。最终,苹果还是找到了在终端机,也就是 iPhone 上的深度学习方案,并完成高度脸部辨识準确性。这中间需要解决的挑战包括:将深度学习模型整合到作业系统,使用宝贵的 NAND 储存空间;还要将其加载到 RAM,利用 GPU 和/或 CPU 达到合适的计算时间;此外,和云端深度学习模型不同的是,终端机深度学习还需要解决执行电脑视觉指令的同时,还有其他的背景程式。总言之,终端机深度学习模型要求的是:针对大型的照片资料库,用极短的时间执行指令,并使用不多的功耗或说不发烫。二、从维奥拉─琼斯到深度学习
2001 年,Paul Viola 和 Michael Jones 基于哈尔特徵和方向可变滤波器,提出了基于简单特徵的对象辨识技术,此即维奥拉─琼斯目标侦测框架,这个方法在 OpenCV 中实现为 cvHaarDetectObjects。基于维奥拉─琼斯框架,iOS 7 引入 CIDetecor,做到了人脸侦测、辨识功能,但此时的人脸辨识,準确性和可靠性都不成熟。2014 年,苹果最开始着手基于深度学习的脸部辨识,深度卷积神经网路才刚能完成物体辨识工作,当时的主流方案是 OverFeat,能有效快速扫描物体影像。OverFeat 实现了神经网路的连线层与卷积层之间的等价性,也就是做到多尺度汇入预测。此外,OverFeat 还提供基于更少网路步幅的更密集汇出对映。基于 OverFeat,苹果搭建了初始架构,以实现: