人脸识别技术已然成为我们生活中的一部分,那么这种技术到底是如何运作的呢?下面我们就来了解一下。
人脸识别到底是什么?
人脸识别,是视觉模式识别的一个细分问题,也大概是最难解决的一个问题。
其实我们人每时每刻都在进行视觉模式识别,我们通过眼睛获得视觉信息,这些信息经过大脑的处理被识别为有意义的概念。于是我们知道了放在我们面前的是水杯、书本,还是什么别的东西。
然而这项看似简单的任务,对机器来说却并不那么容易实现。
机器需要在这些数据中,找出某一部分数据代表了何种概念:哪一部分数据是水杯,哪一部分是书本,哪一部分是人脸,这是视觉模式识别中的粗分类问题。
而人脸识别,需要在所有机器认为是人脸的那部分数据中,区分这个人脸属于谁,这是个细分类问题。
人脸可以分为多少类呢?
取决与所处理问题的人脸库大小,人脸库中有多少目标人脸,就需要机器进行相应数量的细分类。如果想要机器认出每个他看到的人,则这世界上有多少人,人脸就可以分为多少类,而这些类别之间的区别是非常细微的。
由此可见人脸识别问题的难度。遑论这件本就庞大复杂的工程还要受到光照,角度,人脸部的装饰物等各种因素的影响。这也不难解释为什么人脸识别技术目前还没有大量应用在日常生活中。
人脸检测与人脸识别
完成人脸识别的工作,要经过几个步骤。
首先计算机需要在图像或视频中找到人脸的位置,这部分工作一般叫做人脸检测。如前所述,这是一种粗分类,具体到人脸检测中,实际上是二分类,计算机只需要判断目标图像是或者不是人脸。
但由于并不能事先确定人脸的大小和位置,计算机需要以每个可能的人脸大小对全图进行扫描,逐个判断子窗口所截取的图像是否为人脸。而每次扫描过程,子窗口移动的步长可能是几个像素。
所以我们可以大致想象下,作一张图的人脸检测,计算机需要作多少次二分类判断。