面部识别算法是一类计算机视觉算法,主要作用是从图像或者视频里面检测人脸,提取人脸独有的特征,再和数据库里面已经保存的人脸特征做比对,完成身份识别验证,整套算法一般分为人脸检测特征提取特征比对判定这几个核心环节,现在主流方案大多基于深度学习卷积神经网络,相比早期人工设计特征的传统算法,识别准确率大幅提升,对光线角度表情变化的适应能力更强,广泛应用在门禁考勤手机解锁车站核验支付核验等场景,同时面部识别算法也存在固有局限,比如强光逆光口罩遮挡年龄变化整容之后识别率下降,还涉及个人生物信息隐私合规问题,使用的时候必须遵守相关法规,不能随意采集存储人脸数据。
为什么面部识别算法可以区分不同人的身份
每个人面部骨骼五官比例眼距鼻翼宽度下颌轮廓都存在稳定差异,面部识别算法本质就是把二维图像里面的人脸信息,转换成一组高维特征向量,相当于给每个人生成专属数字编码,同一个人不同照片提取出来的特征向量距离比较近,不同人的特征向量距离很远,算法通过计算向量之间相似度,设定阈值,超过阈值判定为同一人,低于阈值判定不是同一人,早期算法依靠人工标记关键点,现在深度学习算法自动学习人脸深层特征,不需要人工手动挑选特征点,识别稳定性更好。
面部识别算法完整运行流程
第一步 人脸检测,算法扫描整张图片,定位人脸位置,框出人脸区域,排除背景杂物,检测阶段会过滤掉非人脸物体
第二步 人脸对齐,把检测到的人脸校正,统一角度尺寸,修正侧脸倾斜,降低姿态带来的干扰
第三步 特征提取,把校正后人脸送入神经网络模型,输出固定长度的特征向量,也就是人脸编码
第四步 特征比对,将当前提取的特征向量,和数据库内已注册人脸向量计算相似度,常用余弦距离欧氏距离
第五步 结果判定,把计算得到相似度和预设阈值对比,输出识别通过或者识别失败结果
传统算法和深度学习算法对比表
项目 传统面部识别算法 深度学习面部识别算法
特征方式 人工设计特征点 神经网络自动学习深层特征
抗干扰能力 弱,光线表情影响大 强,复杂环境适应性更好
识别准确率 一般 高
部署成本 模型小,计算压力低 模型大,需要算力支持
影响识别效果的主要因素
光照条件 逆光暗光强光都会改变人脸像素分布,造成特征偏差
头部姿态 大角度侧脸低头仰头,人脸可见区域变少,识别成功率下降
遮挡物 口罩帽子眼镜胡须遮挡关键五官区域
时间变化 年龄增长皮肤松弛体重变化,面部特征缓慢改变
图像质量 模糊低分辨率运动拖影,特征提取精度下降
部署调优操作步骤
第一步 采集注册人脸样本,多光线多角度采集,丰富样本覆盖场景
第二步 选择匹配业务场景的算法模型,门禁场景和远距离场景模型选型不一样
第三步 设置合理识别阈值,阈值太高容易误拒,阈值太低容易误识
第四步 持续测试,统计误识率误拒率,根据现场环境迭代优化
第五步 落实数据安全,人脸特征加密存储,设置访问权限,到期删除冗余数据
面部识别算法核心原理就是人脸特征向量化加相似度匹配,技术优势是无需接触识别便捷,但是它不是百分百完美,实际落地需要结合现场环境调参,同时严格管控人脸生物信息,平衡便利和隐私安全。
【常见问题】
问题 1 面部识别算法为什么戴口罩识别率下降
回答 1 面部识别算法依靠五官关键特征做特征提取,口罩遮挡口鼻区域之后,有效特征变少,特征向量和注册样本差异变大,所以面部识别算法识别成功率会明显下降。
问题 2 面部识别算法能不能识别双胞胎
回答 1 面部识别算法对长相高度相似的双胞胎识别难度很高,两人特征向量距离很近,很容易出现误识,普通面部识别算法很难稳定区分,一般需要额外增加其他核验方式辅助判断。
问题 3 面部识别算法的误识是什么意思
回答 1 面部识别算法误识就是把 A 这个人错误判定成 B,也就是不同身份比对通过,误识风险是面部识别算法重点管控指标,调高识别阈值可以降低误识,但是会提升正常用户识别失败概率。
【免责申明】
本文仅为计算机视觉技术科普,不构成系统开发法律合规专业建议,部署面部识别算法需要严格遵守个人信息保护相关法律法规,未经授权采集使用人脸数据属于违规行为。


