【Technews科技新报】苹果公司的第一支智能手机 iPhone 上市满十年的今天,特别推出有史以来功能最强大的旗舰机 iPhone X,其中最大的特色是取消了 Home 键也无需手动解锁,而是采用 Face ID 脸部辨识解锁技术,将 3D 影像技术发挥到极致,这里我们经由 Face ID 脸部辨识技术来解析 3D 立体影像感测原理。
影像感测器(Image sensor)
数码相机所使用的影像感测器主要是取得平面彩色影像,这个已经是我们使用了超过 20 年的旧东西,大部分的人都知道影像感测器有 CCD 与 CMOS 两种,却很少有人知道这两种零组件到底是什么?让我们先从这两种最基本的元件谈起。
影像(Image)其实指的就是我们看到的一个“画面”(Frame),是由许许多多的格子组成,这些格子称为“像素”(Pixel)。影像感测器是由许许多多的格子(像素)组成的阵列,每一个像素含有一个电荷耦合元件(CCD)与光感测器(PD),由于光感测器(PD)只能侦测亮度,无法分辨颜色,为了取出颜色,必须在光感测器上方加装“彩色滤光片”(Color filter),如图 1(a)所示,它的 RGB 排列方式有许多种,目前最常使用的是图中这种称为“贝尔图”(Bayer pattern),有没有发现贝尔图的设计里,绿色的像素是红色与蓝色的两倍?因为肉眼对绿色比较敏感,因此多收集绿色的资讯是合理的。
▲ 图 1:CCD 感测器的构造与原理示意图。
CCD 影像感测器
电荷耦合元件(CCD:Charge Coupled Device)是一种推电荷(电子)前进的元件,利用 3 个金属电极不同电压依序推电荷前进,如图 2(b)所示,左下角像素 A 的光感测器内的电子经由旁边的 CCD 元件由 4 向上推到 3,此时像素 B 的电子由 3 推到 2,像素 C 的电子由 2 推到 1,像素 A 的电子由 1 推到水平线,依此类推,第一行的电子推完,再推第二行,再推第三行,依此类推,必须把影像感测器内每一个像素的电子依序推到水平线,经由“模拟前端”(AFE:Analog Front End)将模拟讯号转换成数字讯号,也就是影像的“模拟数字转换器”(ADC:Analog to Digital Converter),再输入处理器(Processor)进行数字讯号处理。
CCD 影像感测器的优点是影像画质较佳,杂讯较小;缺点有成本高、耗电量高、类比前端是使用 CMOS 制程与 CCD 制程不同因此无法整合在同一个芯片。
CMOS 影像感测器
互补型金属氧化物半导体(CMOS)是一种开关元件,利用闸极施加正电压在下方形成电子通道,可以便电子由源极流入,由汲极流出,如图 2(b)所示,每一个像素的左上角都有一个 CMOS 开关,一个一个像素可以依序打开(ON)导通,使光感测器内的电子依序流入水平线,第一行的电子流完,再流第二行,再流第三行,依此类推,必须把影像感测器内每一个像素的电子依序流到水平线,经由“模拟前端”将模拟讯号转换成数字讯号,也就是影像的“模拟数字转换器”,再输入处理器进行数位讯号处理。
▲ 图 2:CMOS 感测器的构造与原理示意图。
CCD 影像感测器的优点是成本低(大约只有 CCD 的三分之一)、耗电量低(大约只有 CCD 的十分之一),更重要的是类比前端是使用 CMOS 制程与 CMOS 影像感测器的制程相同,可以整合在同一个芯片上缩小体积,这对于智能手机这种对元件尺寸很在意的应用非常适合;缺点有影像画质较差,杂讯较大,特别是 CMOS 开关本身产生的热杂讯,这种杂讯是元件在高于绝对零度(0K)时就会产生的,而且温度愈高杂讯愈严重,早期的 CMOS 影像感测器画面上会看到一个个亮点跳来跳去就是由于热杂讯产生,近年来由于半导体制程的进步,CMOS 影像感测器的杂讯问题有很大的改善。
3D 立体影像感测技术
数码相机只能取得平面彩色影像,完全没有深度的资讯,这代表当我们看到一张照片,只知道这个人的脸部有多宽多高,却不知道他脸部的立体结构,例如:鼻子有多挺(有多深),为了取得影像的深度资讯,近年来许多厂商投入研发,目前比较成熟的技术有下列两种:
- 飞时测距(ToF:Time of Flight):利用发光二极体(Light Emitting Diode,LED)或激光二极体(Laser Diode,LD)发射出红外光,照射到物体表面反射回来,由于光速(v)已知,可以利用一个红外光影像感测器量测物体不同深度的位置反射回来的时间(t),利用简单的数学公式就可以计算出物体不同位置的距离(深度),如图 3(a)所示。
- 结构光(Structured light):利用激光二极体或数位光源处理器(Digital Light Processor,DLP)打出不同的光线图形,经由物体不同深度的位置反射回来会造成光线图形扭曲,例如:打出直线条纹的光线到手指上,由于手指是立体圆弧形造成反射回来变成圆弧形条纹,进入红外光影像感测器后就可以利用圆弧形条纹反推手指的立体结构,如图 3(b)所示。
【延伸阅读】对发光二极体(LED)的原理,以及它与激光二极体(LD)的差异有兴趣的人可以参考〈知识力专家社交:发光二极体(LED)〉。
▲ 图 3:3D 立体影像感测技术原理示意图。(Source:LAGOA)
TrueDepth 相机
苹果将 iPhone X 所使用的 3D 立体影像感测技术称为“TrueDepth 相机”,结合了前面介绍的两种技术,如图 4 所示,TrueDepth 相机为 700 万像素的 CMOS 影像感测器,配合红外光相机、泛光照明器、接近感测器、环境光感测器、点阵投射器等元件,以下简单介绍每个元件的功能:
- 泛光照明器(Flood illuminator):使用低功率的垂直共振腔面射型激光(Vertical Cavity Surface Emitting Laser,VCSEL),发射出“非结构”(Non-structured)的红外光投射在物体表面。
- 接近感测器(Proximity sensor):使用低功率的垂直共振腔面射型激光发射红外光激光,当有物体靠近时会反射激光光,因此手机可以知道有物体接近,这个元件很早之前智能手机就有了,一般都是安装在扩音器(Speaker)旁边,当使用者拨电话并且将手机靠近耳朵时,接近感测器侦测到耳朵接近就知道使用者正要讲电话,会自动关闭屏幕节省电力消耗。
- 环境光感测器(Ambient light sensor):使用光二极体(Photo diode)可以侦测环境光亮度,在明亮的太阳下使用者眼睛瞳孔缩小,因此自动将屏幕调亮让使用者容易观看;在阴暗的室内使用者眼睛瞳孔放大,因此自动将屏幕调暗避免使用者感觉太刺眼。
- 点阵投射器(Dot projector):使用高功率的垂直共振腔面射型激光发射红外光激光,经由晶圆级光学(Wafer Level Optics,WLO)、绕射光学元件(Diffractive Optical Elements,DOE)等结构,产生大约 3 万个“结构”(Structured)光点投射到使用者的脸部,利用这些光点所形成的阵列反射回红外光相机(Infrared camera),计算出脸部不同位置的距离(深度)。
【延伸阅读】激光是工业上非常重要的元件,有兴趣的人可以参考〈知识力专家社交:激光的原理〉。
【延伸阅读】垂直共振腔面射型激光原本是设计给光通讯使用的光源,目前的趋势却是被大量使用在消费性电子产品上,对这种特别的激光有兴趣的人可以参考〈知识力专家社交:半导体激光〉。
▲ 图 4:iPhone X 使用的 3D 立体影像感测技术。(Source:苹果)
Face ID 解锁原理与步骤
Face ID 解锁主要分为两个步骤,首先必须辨识接近手机的是否为刻意靠近的脸部,或者只是使用者不小心由手机前面晃过去而已;确认是刻意靠近的脸部之后,才开始进行人脸辨识,从前面的介绍可以发现,启动 Face ID 解锁必须同时开启好几个元件,是有些耗电的,因此必须确认是刻意靠近的脸部之后,才开始进行人脸辨识。
当有脸部或物体靠近时,会先启动接近感测器(Proximity sensor),再由接近感测器发出讯号启动泛光照明器(Flood illuminator),发射出非结构(Non-structured)的红外光投射在物体表面,再由红外光相机(Infrared camera)接收这些反射的影像资讯,传送到手机内的处理器,iPhone X 使用苹果自行开发的 A11 处理器,内建双核心的“神经网络引擎”(Neural Engine,NE),经由人工智能的运算后判断为脸部后,再启动点阵投射器(Dot projector)产生大约 3 万个光点投射到使用者的脸部,利用这些光点所形成的阵列反射回红外光相机(Infrared camera),计算出脸部不同位置的距离(深度),再将这些使用者脸部的深度资讯传送到手机内的处理器内,经由计算比对脸部特征辨识是否为使用者本人。
所有的 3D 立体影像感测技术都面临相同的问题,那就是深度资讯的精确度实际值大约只有 1%,意思是距离 1 米远的物体量测出来的精确度与误差大约是 1 公分的等级;Face ID 解锁时脸部与手机的距离大约 10 公分,因此精确度与误差大约是 1 毫米(mm)的等级,这大概足够进行脸部特征辨识了!此外,点阵投射器使用高功率的垂直共振腔面射型激光发射红外光激光,虽然它的功率并不是真的很高,但是入射到眼睛,个人以为长期使用是否会造成眼球的伤害,是另外一个值得医学界研究探讨的问题。
人工智能的云端与终端
人工智能(Artificial Intelligence,AI)大量的学习与运算目前都借助于云端服务器强大的处理器来进行,早期使用 Intel 的“中央处理器”(Central Processing Unit,CPU),后来科学家发现 Nvidia 的“图形处理器”(Graphics Processing Unit,GPU)效能比 CPU 高 100 倍以上,Intel 经由并购 Altera 取得“可程序化逻辑阵列”(Field Programmable Gate Array,FPGA)技术来与 GPU 抗衡,另外有更多的厂商开发始发展“特定应用积体电路”(Application Specific Integrated Circuit,ASIC),例如:Google 自行设计的“张量处理器”(Tensor Processing Unit,TPU)或 Intel 自行设计的“视觉处理器”(Vision Processing Unit,VPU),就是一种针对人工智能这种“特定应用”所开发的集成电路,以上这些处理器都是设备在“云端”(Cloud side)。然而并不是所有的应用都适合把大数据传送到云端处理,例如:自动驾驶车必须在车上“终端”(Edge side)进行处理才能即时反应道路情况。
【延伸阅读】处理器的种类会影响人工智能运算的效能,到底 CPU、GPU、FPGA、ASIC 有什么差别?有兴趣的人可以参考〈知识力专家社交:处理器的种类〉。
苹果公司这次推出的 iPhone X 使用自行开发的 A11 处理器,内建双核心的“神经网络引擎”,专门处理图像辨识相关的机器学习、推论模型、算法,也是一种针对人工智能这种“特定应用”所开发的积体电路,不同的是它设备在“终端”,也就是使用者的手机上,让手机可以“自动学习”认识使用者的脸部特征,苹果公司也一再强调,使用者所有的脸部特征都在手机终端完成,不会上传到云端处理,因此绝对不会有资料外泄的疑虑。
苹果公司这次发布的 iPhone X 让使用者能真实感受终端设备的人工智能(On-device AI),在可以预见的未来,终端处理器如何与人工智能结合形成“终端智慧”(Edge Intelligence), 将是越来越热门的议题。