人脸识别的基本原理

编辑导语:人脸识别产品早已被应用到生活的各个场景之中。但是你了解它的应用原理吗?本篇文章里,作者便将人脸识别原理进行了拆解。感兴趣的话就一起看下去吧。

现在AI发展的如火如荼,我们已逐步进入智能时代。虽然人工智能偏技术类,学习和理解需要一定的技术背景和数学做支撑。但拆开看,其原理、方法、思路并不复杂,「不懂技术」的产品经理也能理解。

人工智能牵扯很多学科,知识点盘根错节,需要具备多学科的知识储备。从学习路径上看,比较适合做成系列,从浅入深,从基础到应用,逐渐深入。但无形中提高了学习门槛,降低了学习的兴趣,导致很难坚持。

有感于此,我想以一种轻松、探索的视角,跟大家一起摸索,用简单、直白的方式来学习AI。这样,虽然会有错误、遗漏等,但学习难度会降低,那就在过程中完善吧,毕竟「模糊的正确大于精确的错误」。

一、人脸识别产品

我们从人脸识别开始,逐步了解其技术路径的演变和原理等,今天先从最简单的原理讲起。

人脸识别其实很早就有了,多年前就以人脸考勤的方式出现,但由于使用效果不好,用户体验不佳,逐步被市场淘汰。

而这一波人工智能的火热,计算能力、模型等都是其重要推动力,但更重要的是产品能够落地,能够在实际业务场景中使用。

尤其是人脸识别,产品在识别精度、速度、用户友好度等多个方面都有明显提升,用户和市场的接受度明显上升。

二、图像表示

了解人脸识别,先要从图像表示讲起。

大家都知道,计算机能够识别和处理的是二进制,不管我们输入的是文本、图像、声音,计算机都是用一定长度的二进制串进行存储和处理。

我们先以黑白图片为例,看看计算机是怎么表示的。

计算机程序可以将黑白图片可以表示为灰度图像。在灰度图像中,一个像素使用8个比特位,从而可以表示256个灰度阶,表示范围是0-255。其中0代表纯黑色,255代表纯白色。

一个字节可以表示一个像素,那怎么表示一张图片呢,用矩阵进行表示。

简单来说,就是表格,比如可以使用8行8列来表示一张8*8的灰度图片。

这样我们就解决了图像的表示问题,建立了图像和矩阵的等价关系。图片可以转化为矩阵,通过矩阵也可以恢复原始图片。

大家能算出来下面的矩阵表示什么吗?

对的,一眼就看出来了数字1,看来大家都有搞AI的天赋,加油。

三、图像识别

通过矩阵表示图像后,图像的各种处理就转化为数学问题,可以使用数学的理论和方法进行解决,而这正是计算机所擅长的。

我们输入图片,希望计算机能够将内容识别出来,将结果输出。

仍以数字为例,当输入图片并用矩阵表示后,通过将灰度值转化为灰度,可以轻松辨识其所表示的内容。

但在计算机的世界里,只有0和1。想要通过辨识矩阵内容并将结果输出,就必须建立矩阵到结果的映射。这样,输入一张图片,经过处理和计算后,才能输出一个数字。

很朴素的想法就是将各个数字所代表的矩阵提前存放在计算机内,当输入一张图片后,计算机通过计算,从而找到最适合的数字进行输出。

举个例子,更容易理解一些。比如,计算机内部已经存放了包含数字1和7以及它们所对应的灰度矩阵。

数字1

数字7

当新输入一张图像后,程序会自动计算它的矩阵与这些矩阵的相似度。相似度计算可使用的公式很多,比如可以使用百分比,距离等。

简单起见,就使用两个矩阵对应元素之差的绝对值之和或者平方和等,计算机进行快速运算,找到最相似的矩阵,然后将其所代表的数字进行输出。

当输入以下内容时,经过简单计算,可以知道输出结果为 7。

四、人脸表示

既然可以用矩阵来表示图片,人脸也是照片,那么也可以用同样的方法来进行表示,下面的这张人脸可以表示为:

人脸照片

矩阵表示

五、人脸识别

虽然被叫做人脸识别,但更准确的名字应该是「人脸比对」。人脸识别的背后,是一张待比对图片和人脸底库中的所有照片进行比对,从而判别图片中人员的身份。

一般来说,待比对照片就是我们在日常生活中被各种设备所采集的照片,比如通过人脸识别考勤机抓拍的照片。

由于环境、姿势等原因,采集的照片具有很大的差异,导致比对成功率不高。为了提升比对的成功率和速度,很多时候会同时抓拍多张人脸进行识别,但每次比对的时候输入照片只有一张。

所谓的人脸底库就是我们在系统中提前录入的人脸照片,照片和我们的名字一一对应。根据人脸底库中照片数量的不同,可以将人脸比对分为1:1和1:N,由于数量不同这两种方法的计算量和计算方法也不尽相同。

1. 1:1

1:1最常见的场景就是人证比对,比如我们在乘高铁时所遇到的这种设备。

前面的1代表我们从设备中采集的照片,而后面的1代表身份证中的照片,通过将现场采集的照片和身份证中存放的照片进行比对,通过判别持证人是否为本人。

这种情况下只涉及到两张图片的比对,计算量相对较小。

可能用在火车票安检等场景中,所以要求的精度较高。

身份证中的照片像素较小,通过市面上的身份证读卡器读取出来的照片仅为100*100像素左右,给精度带来了一定的挑战。

目前这个领域相对成熟,使用场景正在逐步铺开。

2. 1:N

1:N是1张人脸和底库中的N张人脸进行比对。

比如在考勤机中,我们的人脸底库中包含全公司的所有人脸照片。当上班打卡时,考勤机采集到人脸输入系统,经过比对后输出员工身份。

这种情况下计算量相对较大,时效性和识别精度太低又会影响用户体验,所以厂商一般会综合考虑权衡,在设备的参数中标注所支持的人脸数量。

这一波人工智能的发展,带动了1:N领域人脸识别技术的进步,更多的产品能够在各个场景中落地。比如智慧城市、智慧家居等。

国内厂商也借着这一波东风,加快技术研发和产品落地,诞生了著名的AI视觉四小龙等独角兽。

今天梳理了人脸识别的基本原理,整个实现过程虽然看起来很简单,但技术却在基本原理的基础上持续完善和进步,最终达到比较好的效果。

下次我们将讨论在复杂场景下人脸识别遇到的挑战及解决方案。

(0)

相关推荐