谷歌近日发布了一款专为移动 GPU 推理量身定制的轻量级人脸检测器——亚毫秒级的人脸检测算法 Blaze Face。它能够在旗舰设备上以 200~1000+ FPS 的速度运行,并且可以应用在诸多需要快速准确的识别出人脸区域的任务中,例如:2D/3D 面部关键点识别与几何评估、面部特征和表情分类以及面部区域分割等。谷歌发表了相关论文介绍了该研究成果。
据介绍,这个名为BlazeFace 的新面部检测框架,是在单镜头多盒检测器(SSD)框架上针对移动 GPU 推理进行的优化。主要创新包括:
1. 有关于推理速度
一个专为轻量级目标检测而设计的在结构上与 MobileNetV1/V2 相关的非常紧凑的特征提取器卷积神经网络。
一种基于 SSD 的新型 GPU-friendly anchor 机制,旨在提高 GPU 利用率。Anchors(SSD 术语中的先验)是预定义的静态边界框,作为网络预测调整和确定预测粒度的基础。
2. 有关于推理效果
一种替代非最大抑制的联合分辨率策略,可在多预测之间实现更稳定、更平滑的联系分辨率。
虽然该框架适用于各种目标检测任务,但在本文中,谷歌致力于探讨手机相机取景器中的人脸检测问题。由于不同的焦距和捕获物体尺寸,我们分别为前置和后置摄像头构建了模型。
除了预测轴对齐的面部矩形外,BlazeFace 模型还生成了 6 个面部关键点坐标(用于眼睛中心、耳、嘴中心和鼻尖),以便我们估计面部旋转角度(滚动角度)。这样的设置使其能够将旋转的面部矩形传递到视频处理流程的后期任务特定阶段,从而减轻后续处理步骤对重要平移和旋转不变性的要求。
BlazeFace 模型架构可以在完整图像或视频帧上运行,并且可以作为几乎任何与人脸相关的计算机视觉应用的第一步,例如 2D / 3D 人脸关键点、轮廓或表面几何估计、面部特征或表情分类以及人脸区域分割。因此,计算机视觉流程中的后续任务可以根据适当的面部剪裁来定义。结合 BlazeFace 提供的少量面部关键点估计,此结果也可以旋转,这样图像中的面部是居中的、标准化的并且滚动角接近于零。这消除了 SIG-nifi 不能平移和旋转不变性的要求,从而允许模型实现更好的计算资源分配。