- 1.AI领域关于人脸的主流任务有多少种?
- 2.什么是人脸识别?
- 3.什么是1:1 人脸验证?
- 4.什么是1:N人脸辨识?
- 5.什么是N:N人脸辨识?
- 6.静态识别和动态识别区别是啥?
- 7.开发一个人脸识别系统流程有哪些?
- 8.影响人脸图像质量的因素有哪些?
- 9.计算人脸相似度的常用方法有哪些?
- 10.什么是人脸解析(Face Parsing)任务?
- 11.什么是人脸面部属性识别任务?
- 12.什么是人脸关键点识别任务?
- 13.Insightface能实现哪些人脸算法功能?
在AI领域中,关于人脸的任务在AIGC、传统深度学习、自动驾驶方向都有非常深入的研究与落地应用。这些任务通常涉及到人脸的检测、识别、分析和生成等多个方面。下面是一些主流的人脸相关任务:
- 任务描述:在图像或视频中定位人脸的位置。这是许多人脸相关任务的第一步,常用的方法包括基于深度学习的卷积神经网络(CNN)。
- 应用:安全监控系统、人群统计、交互系统等。
- 任务描述:确认图像或视频中的人脸是否与已知个体的人脸相匹配。这包括人脸验证(一对一匹配)和人脸识别(一对多匹配)。
- 应用:门禁系统、手机解锁、身份验证等。
- 任务描述:确定两张人脸图像是否属于同一人,通常用于身份验证任务。
- 应用:在线银行服务、电子商务安全等。
- 任务描述:检测人脸上的关键点,如眼睛、鼻子、嘴巴的位置。
- 应用:美颜应用、面部表情分析、动画角色驱动等。
- 任务描述:分析人脸图像中的属性,如性别、年龄、表情、种族等。
- 应用:定制化广告、人群分析、社交平台等。
- 任务描述:使用Stable Diffusion、生成对抗网络(GANs)等技术生成新的人脸图像,或对现有的人脸图像进行编辑和修改。
- 应用:娱乐行业、虚拟现实、艺术创作等。
- 任务描述:从一张或多张二维图像中重建出人脸的三维模型。
- 应用:增强现实(AR)、医疗影像、视频游戏等。
- 任务描述:在视频中连续跟踪人脸的位置,通常用于视频监控或交互式应用。
- 应用:视频监控、实时视频通信、动画制作等。
- 任务描述:识别和分析人脸表情来判断个体的情绪状态。
- 应用:客户服务分析、心理健康监测、教育应用等。
- 任务描述:识别相同人物在不同年龄阶段的面部图像。
- 应用:对于寻找失踪儿童或长时间未见的亲人等场景很有帮助。
这些任务展示了人脸相关的AI应用是多样化且具有广泛应用前景的。随着AI技术的持续发展,这些任务的准确度和效率都在不断提高,同时新的应用领域也在持续开拓中。
人脸识别是一种基于人的面部特征信息进行身份识别的生物特征识别技术。
在1:1人脸验证中,每次会对一对人脸进行比对来判断这两张人脸是否属于同一个人。人脸识别模型会分别输出这两张人脸的特征向量,然后计算这两个人脸的相似度。如果相似度大于某个阈值,那么就认为这两个人属于同一个人,反之,则属于不同的人。 比如火车站进站系统、手机人脸解锁、手机APP验证登录等等都属于1:1人脸验证。
1:N人脸辨识是将图像采集设备采集到的人脸照片与底库里面已经注册后的人脸照片进行一一比对,找到其中最相似的图片进行人脸辨识。 人脸识别的底库注册一般都是存储的所有人脸的特征向量,并非人脸图像。 人脸识别模型会将需要识别的人脸进行特征向量提取然后分别与底库所有人脸的特征向量进行一一比对,计算这两个人脸的相似度,系统会认定得分最高的人脸属于同一个人。 比如上班打卡签到系统,学校门禁闸机系统。
N:N人脸辨识是同时将一张图片里面的多个人脸与底库进行匹配,同时进行多人身份辨识,可以看做是1:N检索的多任务版本。 N:N人脸辨识对平台计算能力要求比较高,同时也对系统的计算效率和实时性要求较高。
由于大多数人脸1:1验证的场景都对人有了一定的限制(比如正对摄像头,把头放到指定区域内等)这种属于静态识别,这些限制能保证采集到的图像都是正脸图像,因此人脸1:1人脸验证无论是对算法要求以及软硬件要求实现起来难度较低。 动态识别是图像采集设备在人运动过程中进行抓拍采图,此时采集到的图像会存在模糊、人脸角度大、光线条件异常等等问题,导致识别难度较大,容易出现误判和漏判的情况。 动态人脸识别一般应用在无感人脸打卡,驾驶员抓拍等场景。
一般来说广义的人脸识别包含了以下步骤:图像获取、人脸检测、关键点定位、人脸校正、人脸特征提取、人脸相似度匹配。
不同的人脸图像通过图像采集设备得到,根据项目需求不同,对采集到的图像要求也不同,一般我们在做人脸识别之前会有图像质量判断,舍弃掉一些人脸图像质量较差的图像,以助于提高人脸识别的精度。以下是图像采集阶段需要关注的几个点: (1)图像大小
人脸图像过小会影响识别效果,人脸图像过大会影响识别速度。非专业人脸识别摄像头常见规定的最小识别人脸像素为6060或100100以上。在规定的图像大小内,算法更容易提升准确率和召回率。一般得图像太大算法内部都会做resize处理。
(2)图像分辨率
一般来说越低的图像分辨率人脸识别越难实现。综合考虑图像大小和图像分辨率,会直接影响摄像头识别距离。经验发现4K摄像头看清人脸的最远距离是10米,7K摄像头是20米。
(3)图像曝光度
图像采集设备采集到的过曝或过暗的人脸图像都会影响人脸识别效果。这种场景可以从摄像头自带的功能补光或滤光平衡光照影响,也可以利用算法模型优化图像光线来提高人脸识别率。
(4)图像清晰度
在实际应用场景中,特别是动态识别主要着力解决运动模糊,人脸相对于摄像头的移动经常会产生运动模糊。虽然部分摄像头有抗模糊的功能,而在成本有限的情况下,可以考虑通过算法模型优化此问题。夜间图像采集设备为了提高画面亮度增益较高,快门也比较大,导致人脸拖影更加严重。
(5)图像人脸遮挡检测
通常在人脸识别场景中,五官无遮挡、脸部边缘清晰的图像为最佳。而在实际场景中,由于采集角度得关系,很多人脸都会被帽子、眼镜、口罩等遮挡物遮挡,这部分数据需要根据算法要求决定是否留用训练。
(6)人脸角度异常
理想状态下,在人脸识别过程中人脸相对于摄像头角度为正脸最佳。这种情况在静态识别中容易实现,但实际动态识别场景中往往很难抓拍正脸。因此算法模型需训练包含左右侧人脸、上下侧人脸的数据。工业施工上摄像头安置的角度,需满足人脸与摄像头构成的角度在算法识别范围内的要求。 在保证硬件安装正确,训练数据包含左右侧人脸、上下侧人脸的数据的前提下。检测算法如果检测到人脸角度偏大很多,无法通过算法校正回来以后,可以选择剔除当前数据。
(1)欧几里得距离 (2)余弦相似度(比较常用) (3)汉明距离
人脸解析是一种精细化的计算机视觉任务,旨在将人脸区域划分为多个语义部分,如皮肤、眼睛、嘴唇、鼻子、眉毛、头发等。与人脸检测和人脸识别不同,人脸解析的目标是为人脸提供像素级的语义分割。这种任务广泛应用于AIGC时代,在美颜、虚拟化妆、换脸、AR/VR 和表情分析等领域都有重要价值。
- 输入:
- 一张包含人脸的 RGB 图像。
- 输出:
- 一张语义分割的图(mask),每个像素值代表对应区域的类别(例如 0 表示背景,1 表示皮肤,2 表示左眼,3 表示右眼等等)。
人脸解析的原理主要基于语义分割技术。具体步骤如下:
1. 数据收集和标注
- 人脸解析需要有大量已标注的人脸语义分割数据集。
- 数据集中每张图像都有对应的语义分割标签,标签以 mask 的形式存储,每个像素的值对应该像素所属的类别。
- 例如,
0=背景,1=皮肤,2=眼睛,3=嘴巴, 等。
- 例如,
2. 数据增强
- 数据增强可以提高模型的泛化能力,特别是当数据量不足时。
- 常用方法包括:旋转、缩放、剪切、亮度调整、色调变化、镜像翻转等。
3. 人脸检测和对齐
- 为了专注于人脸区域,通常会在训练和推理过程中使用人脸检测器(如 MTCNN 或 RetinaFace)检测并裁剪出人脸区域。
- 人脸对齐确保人脸的关键部分(如眼睛和嘴巴)出现在一致的位置,从而简化模型学习。
人脸解析模型一般基于语义分割网络构建,以下是常用的网络架构:
- Fully Convolutional Network (FCN): 最早的语义分割架构,用全卷积层代替全连接层,实现像素级预测。
- U-Net: 通过编码器-解码器架构,结合特征提取与逐步上采样,适合小型数据集。
- DeepLab系列 (DeepLabv3/DeepLabv3+):
- 基于 Atrous Convolution(空洞卷积),能够捕捉多尺度上下文信息。
- 使用 ASPP(空洞空间金字塔池化)模块增强上下文感知能力。
- HRNet(High-Resolution Network):
- 通过多分辨率特征融合保持高分辨率的预测,适合精细分割任务。
- BiSeNet(Bilateral Segmentation Network):
- 专为实时语义分割设计,通过空间路径和上下文路径结合,实现高效分割。
- 最终输出是一个大小与输入图像相同的张量,每个像素点的值是一个分类概率分布(通过 Softmax 得到)。
- 最高概率的类别即为该像素的预测类别。
为了优化模型性能,需要选择合适的损失函数:
- 交叉熵损失(Cross-Entropy Loss):
- 计算每个像素预测类别与真实类别之间的交叉熵。
- 加权交叉熵(Weighted Cross-Entropy Loss):
- 用于处理类别不平衡(例如,背景像素远多于其他类别)。
- Dice Loss:
- 用于提高小区域的分割性能(例如眼睛、嘴唇等小部分)。
- 混合损失(Hybrid Loss):
- 结合交叉熵和 Dice 损失,兼顾全局准确性与局部细节。
1. 平滑与细化
- 使用条件随机场(CRF)或边缘增强滤波器对分割结果进行平滑,消除噪点。
2. 多尺度融合
- 在不同分辨率下处理图像并融合结果,提高分割的鲁棒性。
3. 类别映射
- 将模型输出的类别值映射为可视化的颜色图,便于人类理解和观察。
-
复杂背景干扰:
- 如果背景和人脸部分的颜色或纹理相似,可能导致误分类。
- 解决方法:添加更多包含复杂背景的数据并增强背景信息。
-
类别不平衡:
- 一些区域(如眼睛和嘴唇)占图像面积的比例较小,可能被忽视。
- 解决方法:使用加权损失或通过数据增强平衡样本。
-
细节区域的分割:
- 对于眉毛、嘴唇等精细区域的分割难度较大。
- 解决方法:使用更高分辨率的模型(如 HRNet)。
-
实时性与性能权衡:
- 部分模型(如 DeepLab)虽然精度高,但推理速度较慢。
- 解决方法:选择轻量级模型(如 BiSeNet)。
-
美颜与虚拟化妆:
- 分割出皮肤、眼睛、嘴唇等区域,用于平滑皮肤、调整颜色等。
-
人脸替换(换脸):
- 精确地分割面部区域,方便合成其他脸部特征。
-
表情分析:
- 分析嘴唇、眼睛等区域的形状变化,用于表情识别或情感分析。
-
增强现实(AR):
- 在人脸上叠加虚拟元素(如面具、装饰)。
人脸面部属性识别是计算机视觉领域的一项技术,旨在通过分析人脸图像自动检测和分类与面部相关的多种属性特征,例如:
- 生理属性:年龄、性别、种族;
- 表情与情绪:微笑、愤怒、悲伤;
- 装饰与状态:是否戴眼镜、口罩、帽子,是否有胡子;
- 几何特征:面部朝向、眼睛开合程度、嘴巴张合程度。
核心原理:
通过深度学习模型(如卷积神经网络)学习人脸图像中的局部与全局特征,将像素数据映射到高维语义空间,最终输出属性标签或数值预测。
通过面部属性识别,AI系统得以更“人性化”地理解用户需求,推动AIGC时代AI行业的持续创新。
场景:
当用户使用美颜相机拍照时,相机自动分析面部属性:
- 性别:调整美颜参数(如女性可能增强柔肤,男性保留轮廓感);
- 年龄:年轻皮肤增强光泽,年长皮肤减少皱纹;
- 表情:检测微笑程度,自动触发拍照;
- 装饰:识别是否戴眼镜,避免美颜算法误处理镜片区域。
实现流程:
摄像头捕获图像 → 人脸检测 → 属性识别 → 根据属性调整滤镜 → 输出美化后的照片。
案例:虚拟人像生成
- 应用:生成具有特定属性的虚拟人物,如设定“20岁亚洲女性,微笑,戴眼镜”。
- 技术细节:
- 使用扩散模型或者生成对抗网络(GAN),结合属性标签控制生成结果。
- 属性识别模型提供反馈,确保生成图像符合目标属性(如调整嘴部弧度以实现微笑)。
案例:多任务属性分类模型
- 应用:训练单一模型同时预测年龄、性别、表情等属性。
- 技术细节:
- 使用共享主干网络(如ResNet)提取特征,分支网络输出不同属性。
- 损失函数组合:分类损失(性别) + 回归损失(年龄) + 注意力机制(聚焦关键区域)。
- 代表研究:DeepFace(Facebook)。
案例:驾驶员状态监测系统(DMS)
- 应用:实时监测驾驶员疲劳、分心等危险状态。
- 技术细节:
- 面部属性识别:眼睛开合度(判断闭眼时长)、嘴巴张合(打哈欠)、头部姿态(是否低头看手机)。
- 决策逻辑:若检测到持续闭眼2秒以上,触发警报声;频繁哈欠则建议休息。
- 代表方案:特斯拉Autopilot的驾驶员监控、Mobileye的DMS技术。
人脸关键点识别(Facial Landmark Detection)旨在定位人脸上的显著特征点(如眼睛、鼻子、嘴巴、眉毛轮廓等)。通常使用68点或106点模型(如下图所示),核心挑战在于应对光照变化、遮挡、姿态变化等复杂场景。
人脸关键点识别是AI领域的基石任务,从美颜相机到自动驾驶安全系统,其价值在于将“人脸数字化”,为高层语义理解提供结构化数据支撑。未来随着AIGC与具身智能的发展,其作用将更加关键。
- 传统方法:依赖统计模型(如ASM、AAM),通过形状模板迭代拟合人脸。
- 深度学习方法:
- 回归法:CNN直接预测关键点坐标(如MobileNetV2 + 全连接层)。
- Heatmap法:生成每个关键点的概率热图(如Hourglass网络),精度更高但计算量大。
- 多任务学习:结合人脸检测、关键点对齐(如MTCNN),提升效率。
- 原理:通过检测眼睛、下巴等关键点,利用图像变形算法(如TPS变换)调整关键点位置,实现放大眼睛或缩小脸型。
- 技术细节:
- 检测到双眼关键点后,计算瞳孔中心坐标;
- 以瞳孔为中心进行径向缩放,实现“大眼”;
- 移动下巴关键点后,通过插值算法平滑皮肤纹理。
- 虚拟数字人生成:通过关键点驱动3D人脸模型表情(如MetaHuman)。
- 案例:虚拟主播直播时,通过摄像头捕捉真实人脸关键点,实时映射到虚拟形象上。
- Deepfake换脸:对齐源人脸与目标人脸关键点,实现无缝融合。
- 人脸识别预处理:关键点对齐后消除姿态差异,提升识别准确率(如FaceNet)。
- 微表情分析:通过眉毛、嘴角的细微关键点位移判断情绪(如抑郁检测)。
- 驾驶员状态监控:
- 疲劳检测:计算眼睛闭合时间(PERCLOS指标);
- 分心检测:头部姿态估计(通过鼻尖、下巴关键点);
- 危险行为识别:检测手部是否遮挡面部(如打电话)。
- 案例:特斯拉DMS系统实时分析驾驶员眼部关键点,触发警报。
InsightFace是一个基于深度学习的开源人脸分析工具库,集成了多种先进的人脸处理算法。其核心价值在于提供完整的人脸处理流水线,从基础检测到高级属性分析,支持跨平台部署。下面Rocky从核心功能、实际案例及三大领域应用三个维度进行全面解析。
- 多模型支持:集成RetinaFace、SCRFD、BlazeFace等检测模型,平衡精度与速度。RetinaFace-10GF模型在复杂背景下仍能保持高召回率,而BlazeFace-500MF适合移动端实时检测。
- 关键点定位:提供2D 106点(面部轮廓)和3D 68点(头部姿态估计)标注能力。例如3D关键点可计算头部偏转角度,用于活体检测。
- 跨尺度检测:通过特征金字塔网络(FPN)处理不同尺度人脸,解决群体场景中小人脸漏检问题。
- 仿射变换:基于检测到的关键点将人脸旋转至标准姿态(正面朝前),消除姿态差异。
- 归一化处理:统一裁剪为112×112像素,并进行光照补偿,减少环境干扰。
- 特征提取模型:
- 主干网络:ResNet100、MobileNet等结构
- 损失函数:ArcFace(角度裕度损失)、CosFace(余弦裕度损失)等
- 向量比对:计算512维特征向量的余弦相似度,阈值通常设0.6(相似度>0.6判定为同一人)
- 基础属性:性别(二元分类)、年龄(回归模型)、种族(多分类)
- 情绪识别:通过微表情分类(高兴、愤怒等7种情绪)
- 身份保持:利用InsightFace Swapper分离身份特征与表情/姿态信息
- 光照融合:泊松融合算法调整肤色光照一致性,避免“面具感”
- 模型压缩:提供 buffalo_sc 等轻量化模型(仅16MB),适用于嵌入式设备
- 推理框架支持:ONNX Runtime、RKNN(瑞芯微芯片)、MNN(移动端)
| 模型名称 | 检测模型 | 识别模型 | 适用场景 | 模型大小 |
|---|---|---|---|---|
| antelopev2 | RetinaFace-10GF | ResNet100@Glint360K | 服务器高性能 | 407MB |
| buffalo_l | RetinaFace-10GF | ResNet50@WebFace600K | 边缘计算设备 | 326MB |
| buffalo_sc | RetinaFace-500MF | MBF@WebFace600K | 嵌入式/IoT | 16MB |
以“将真人面部融合至动漫角色”为例,展示InsightFace的端到端应用:
-
人脸注册
在Discord输入/saveid命令上传用户照片,ID命名为user_face。系统自动完成人脸检测和对齐,提取身份特征向量。 -
生成基底图像
通过Midjourney提示词生成目标图像:
Anime samurai warrior, dynamic pose, sunset background --style expressive --v 6 -
换脸执行
- 方式1(交互式):在生成图上右键选择
APP > INSwapper,自动替换为注册人脸 - 方式2(指令式):输入
/swapid id:user_face并上传目标图像
- 方式1(交互式):在生成图上右键选择
-
效果优化
调整贪婪参数--greedy=0.8控制身份特征保留强度,值越高越接近原脸。
技术解析:
InsightFace Swapper通过以下步骤实现高质量换脸:
- 分离基底图像的面部表情和姿态参数
- 将注册人脸的身份特征与基底参数融合
- 使用生成对抗网络(GAN)细化边缘过渡
- 色彩校正匹配基底光照环境
案例效果:输入灌篮高手主角樱木花道的形象,输出赛博朋克风格真人版,面部细节完全保留用户特征,同时保持动漫光影风格。
- 数字人创作:结合文生图模型生成一致性的角色形象。例如输入“30岁亚洲女性,学者气质”生成系列职场形象,保持同一身份特征。
- 影视特效:在《灌篮高手》真人化项目中,将演员面部融合至动漫角色身体,保留夸张表情特征。
- 历史人物复活:对蒙娜丽莎画像进行3D重建,生成动态微笑视频(需配合Stable Diffusion修复背景)。
- 智能考勤系统:部署于高校教室,通过多角度摄像头解决遮挡问题。某大学实施后考勤效率提升3倍,代签到率下降至<2%。
- 金融安全认证:金融APP采用活体检测+人脸比对,错误接受率(FAR)降至10^-7。
- 嵌入式安防:在Luckfox Pico开发板(RV1106芯片)运行人脸门禁,推理延迟<150ms。
- 零售分析:商场客流统计系统结合年龄性别识别,优化柜台布局(如化妆品区增加女性向广告)。
- 驾驶员监控系统(DMS):
- 疲劳检测:通过眼睑闭合频率(PERCLOS)和打哈欠识别
- 分心预警:头部姿态估计判断视线偏离道路>2秒触发警报
- 身份切换:不同驾驶员自动调整座椅、后视镜位置
- 乘客服务优化:
- 儿童检测:自动开启童锁并限制娱乐内容
- 情绪响应:识别乘客焦虑时调亮车内灯光
- 远程人脸解锁:车载摄像头完成车主验证,替代传统钥匙(蔚来ET7已应用类似方案)
