每天早上,你拿起手机扫一眼屏幕,就能快速解锁,整个过程不到一秒。我们早已习惯这个操作,但你或许发现过一个有意思的现象:几年前戴上口罩,手机常常无法人脸识别解锁,可哪怕换了发型,它依旧能精准识别。这到底是为什么?
想要弄懂答案,我们先要搞清楚一个基础问题:手机的人脸识别,究竟是如何实现的?
答案源于一个很有意思的事实:在手机眼中,你看到的人脸照片,只是一堆数字。
电脑眼中的照片
想理解人脸识别,首先要明白:电脑“看到”的照片是什么样子。
一张照片由无数个像素组成。把照片不断放大,就能看到一个个小方块,这就是像素。一张1000×1000的照片,足足有100万个像素。
每个像素都有对应的颜色,而颜色在电脑里,全部用数字来表示。
黑白照片规则:纯黑=0,纯白=255,灰色介于1~254之间。数字越小画面越暗,数字越大画面越亮。
5×5像素示意图(电脑识别形态):
0为黑色,200为亮色,整体呈现十字形状。电脑接收图像,本质就是读取这一串串数字。
彩色照片逻辑一致,每个像素由红、绿、蓝三组数字构成,数值范围同样是0-255。
当你用人脸解锁手机时,设备会读取数百万组数字,再通过运算判断:眼前是不是机主。
一堆数字如何识别人脸?我们从第一个核心线索——边缘说起。
第一个线索:边缘
边缘,就是画面中颜色突变的区域。人脸轮廓、眼瞳分界,都属于边缘,也是识别人脸的核心特征。
电脑不懂“人脸”“五官”,仅靠加减乘除就能找到边缘,下面用3×3像素区域演示:
待检测像素区域:
检测工具:Sobel 算子(垂直边缘模板)
计算规则:对应位置数字相乘,结果全部相加
(10×-1) + (10×0) + (10×1)
- (10×-2) + (10×0) + (200×2)
- (10×-1) + (200×0) + (200×1)
= 570
结果为正数,代表此处存在明显垂直边缘。
无边缘区域测试:
套用模板计算结果=0,代表无边缘。
整套模板会在整张图片逐格滑动,最终生成一张边缘地图,完成AI读图第一步。
Sobel算子原理拆解
模板结构:左负、右正、中间为0,计算本质=右侧亮度 - 左侧亮度
- 数值=0:左右亮度一致,无边缘
- 数值>0:右侧更亮,暗→亮边缘
- 数值<0:左侧更亮,亮→暗边缘
中间行系数更大,用来强化中心区域,提升检测稳定性。
该算子1968年诞生于斯坦福实验室,沿用至今。
水平边缘模板(旋转90°)
计算逻辑=下方亮度 - 上方亮度。两套模板搭配,可识别任意方向边缘。
从边缘到形状:AI停滞数十年的难题
单纯的线条边缘,无法让电脑识别“人脸”,这也是过去几十年图像识别的最大瓶颈。
早期方案:人工编写识别规则、定义五官特征。但人脸角度、表情、遮挡场景无穷无尽,人工规则永远无法覆盖全部情况,这条路逐渐走到尽头。
行业迎来转折点:放弃人工定义规则,让电脑自主学习。
核心突破:让电脑自主学习
把算子模板清空,填入随机数字。再给电脑投喂海量标注图片(例:区分猫/狗):
1. 识别正确:保留现有数字
2. 识别错误:通过反向传播算法微调数字
重复数百万次迭代后,随机数字会自主进化成各类特征检测器:边缘、色彩、纹理……电脑没有被灌输任何规则,仅从数据和反馈中,自行总结规律,这就是AI学习的核心。
层层叠加:从线条到完整人脸
深度学习的“深度”,就是多层网络叠加,识别链路如下:
像素 → 边缘线条 → 基础形状 → 五官部件 → 完整人脸
每一层网络,都在上一层结果上识别更复杂的特征。这种多层计算结构,就是神经网络,层数极多的即为深度神经网络,也是当下AI技术的核心基础。
总结:AI不会像人类一样“看见”画面,它读取数字、层层运算、自主学习,最终完成识别。本系列后续继续拆解更多AI底层原理,记得持续关注~
夜雨聆风