人脸追踪、双目活体对齐!系统梳理人脸识别开发的硬核技巧

随着人脸识别终端设备的广泛应用 , 很多开发者在实践中会产生疑惑:为什么同一款主板 , 运行性能相仿的算法时 , 系统资源占用会相差悬殊?为什么同样配备了活体检测 , 防攻击能力却可以差好几个级别?
事实上 , 人脸识别算法在实际部署中存在一些编程开发策略 , 能对识别效果和识别速度产生显著影响 。 虹软视觉开放平台推出的"从零学习人脸识别"技术公开课第七期——《人脸识别应用方案(PC和设备端)》对此做了详细阐述(完整课程可搜索"从零学习人脸识别") , 将主要从人脸追踪、双目活体对齐、图像质量检测和特征值提取技巧等进行系统性介绍 。
【人脸追踪、双目活体对齐!系统梳理人脸识别开发的硬核技巧】一、有效降低系统资源占用的【人脸追踪】
人脸追踪是相当重要的优化策略之一 , 最大的用处是防止重复识别 , 降低资源占用 , 在需要同时检测多张人脸等算力消耗较高的场景下 , 可以显著提升识别速度 。
从技术原理来说 , 算法在运行过程中 , 会检测视频系列帧前后的人脸移动情况和特征 , 从而进行追踪和检测 。 以虹软视觉开放平台的ArcFace免费人脸识别算法为例 , 当人脸入框时 , 算法会根据检测结果为该张人脸标记一个FaceID 。 该人脸从进入画面到离开画面的整个过程中 , FaceID不变 , 算法也不会重复提取特征值 , 避免重复识别导致资源无效占用 。
人脸追踪、双目活体对齐!系统梳理人脸识别开发的硬核技巧文章插图
二、提升活体检测精确度的【双目活体对齐】
作为甄别纸张照片、屏幕成像、人脸面具等伪造人脸攻击的主要防守手段 , 活体检测几乎是人脸识别不可或缺的刚需功能 。 目前 , 虹软免费人脸识别SDK可以同时支持RGB和IR红外双目活体检测 , 既能通过分析采集摩尔纹、成像畸形、反射率等人像破绽来识别活体 , 也能基于红外图像天然滤除特定波段光线的特征 , 来抵御基于屏幕成像的假脸攻击 , 在成本与性能上达到了较好的平衡 。
人脸追踪、双目活体对齐!系统梳理人脸识别开发的硬核技巧文章插图
但是 , 由于RGB摄像头和红外摄像头是不同的模组 , 不可避免会在成像参数和组装精度上有所不同 。 因此需要进行双目对齐 , 以确保两个镜头在活体检测、人脸比对时 , 使用的是同一张人脸图像 。
一般来说 , 我们的策略是将RGB镜头所检测到人脸框坐标 , 嵌套至红外镜头采集的图像中 。 如发现该人脸框与红外图像中的对应人脸有所偏移 , 就需要对该人脸框坐标进行调整 。
人脸追踪、双目活体对齐!系统梳理人脸识别开发的硬核技巧文章插图
人脸框嵌套只是最简单的双目对齐策略 , 在安卓系统上开发时 , 还需要用到镜像、缩放、旋转等对齐策略 , 这些都可以在虹软视觉开放平台所提供的官方Demo中得到参考 。
三、提升识别效率的【图像质量检测算法】
无感通行是人脸识别闸机、门禁等设备非常重要的卖点 。 要实现这一效果 , 除了与芯片算力、算法性能有关 , 也需要用于识别的人脸图像质量合格 。 图像质量检测能对摄像头拍摄的人脸图像进行评估 , 刨除低质量图片 , 只留下质量较好的人脸图像进行检测 。
在实际使用中 , 模糊、遮挡、大角度、逆光暗光等复杂环境问题 , 都会导致摄像头拍摄的人脸图像难以识别 。 未引入图像质量检测的情况下 , 图片质量再差也会被系统送入人脸识别环节 , 直到识别失败后再进行下一次抓拍 。 人脸图像检测提供的筛选机制能避免系统做无用功 , 从而提升后续流程的效率 。 对比实验中 , 增加图像质量检测的人脸识别系统 , 后续环节耗时平均减少约30% 。
人脸追踪、双目活体对齐!系统梳理人脸识别开发的硬核技巧文章插图