人脸识别的基本原理 人脸识别技术

人脸识别技术(人脸识别的基本原理)
现在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:11:1最常见的场景就是人证比对 , 比如我们在乘高铁时所遇到的这种设备 。
前面的1代表我们从设备中采集的照片 , 而后面的1代表身份证中的照片 , 通过将现场采集的照片和身份证中存放的照片进行比对 , 通过判别持证人是否为本人 。
这种情况下只涉及到两张图片的比对 , 计算量相对较小 。
可能用在火车票安检等场景中 , 所以要求的精度较高 。
身份证中的照片像素较小 , 通过市面上的身份证读卡器读取出来的照片仅为100*100像素左右 , 给精度带来了一定的挑战 。
目前这个领域相对成熟 , 使用场景正在逐步铺开 。
2. 1:N1:N是1张人脸和底库中的N张人脸进行比对 。
比如在考勤机中 , 我们的人脸底库中包含全公司的所有人脸照片 。当上班打卡时 , 考勤机采集到人脸输入系统 , 经过比对后输出员工身份 。
这种情况下计算量相对较大 , 时效性和识别精度太低又会影响用户体验 , 所以厂商一般会综合考虑权衡 , 在设备的参数中标注所支持的人脸数量 。
这一波人工智能的发展 , 带动了1:N领域人脸识别技术的进步 , 更多的产品能够在各个场景中落地 。比如智慧城市、智慧家居等 。
国内厂商也借着这一波东风 , 加快技术研发和产品落地 , 诞生了著名的AI视觉四小龙等独角兽 。
今天梳理了人脸识别的基本原理 , 整个实现过程虽然看起来很简单 , 但技术却在基本原理的基础上持续完善和进步 , 最终达到比较好的效果 。

    推荐阅读