人脸识别产品早已被应用到生活的各个场景之中。但是你了解它的应用原理吗?本篇文章里,作者便将人脸识别原理进行了拆解。感兴趣的话就一起看下去吧。
现在 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 视觉四小龙等独角兽。
今天梳理了人脸识别的基本原理,整个实现过程虽然看起来很简单,但技术却在基本原理的基础上持续完善和进步,最终达到比较好的效果。
下次我们将讨论在复杂场景下人脸识别遇到的挑战及解决方案。
作者:AIoT 产品,10 年 B 端产品设计经验;微信公众号:AIoT 产品
本文由@AIoT 产品 原创发布于人人都是产品经理。未经许可,禁止转载
题图来自 Unsplash,基于 CC0 协议