MediaPipe - BlazeFace原理


简介:
在移动GPU上进行亚毫秒级神经人脸检测

BlazeFace算法,这是一款专为移动GPU推理量身定制的轻量级且性能卓越的人脸检测器。

BlazeFace 在旗舰移动设备上以200-1000 + FPS的速度运行。 这种超实时性能使其能够应用于任何对性能要求极高的增强现实应用中。

算法主要创新点:

1)极轻量级特征提取网络,受MobileNet V1/V2启发,但又与其不同;

2)修改的SSD目标检测anchor机制,使其更适于GPU计算;

3)使用tie resolution 策略替换非极大抑制(NMS)。

简单总结,作者在MobileNet-SSD目标检测框架下,改进了网络结构、anchor机制、替换NMS后处理,使算法在人脸检测任务中保持高精度的同时,在移动GPU上速度还很快。

论文地址:https://arxiv.org/pdf/1907.05047v1.pdf

论文翻译

摘要

我们展示了BlazeFace,这是一种轻量级且性能良好的面部检测器,专为移动GPU推理量身定制。在旗舰设备上,它以200–1000 + FPS的速度运行。这种超实时性能使其可以应用于需要准确的感兴趣面部区域作为特定任务模型(例如2D / 3D面部关键点或几何估计,面部特征或表情分类)的输入的任何增强现实管线。以及脸部区域分割。我们的贡献包括受MobileNetV1 / V2启发但与MobileNetV1 / V2有所不同的轻量级功能提取网络,从Single Shot MultiBox Detector(SSD)修改而来的GPU友好锚定方案,以及替代非最大抑制的改进的平局分辨率策略。

介绍

近年来,深度网络([4,6,8])的各种体系结构改进已实现了实时对象检测。在移动应用中,这通常是视频处理流程中的第一步,然后是特定于任务的组件,例如分段,跟踪或几何推断。因此,至关重要的是,对象检测模型推断必须尽可能快地运行,其性能要比标准实时基准要高得多。

我们提出了一种新的面部检测框架,称为BlazeFace,该框架针对单GPU多框检测器(SSD)框架[4]进行了优化,可在移动GPU上进行推理。我们的主要贡献是:

1.与推理速度有关:

1.1。一个非常紧凑的特征提取器卷积神经网络,其结构与MobileNetV1 / V2 [3,9]有关,专为轻型物体检测而设计。

1.2。一种从SSD [4]修改而来的新颖的GPU友好锚方案,旨在有效地利用GPU。锚[8]或SSD术语的先验,是预定义的静态边界框,可作为基础

1个

通过网络预测进行调整并确定预测粒度。

2.与预测质量有关:非最大抑制[4、6、8]的平局决胜策略替代方案,可在重叠的预测之间实现更稳定,更平滑的平局决胜率。

Face detection for AR pipelines

虽然所提出的框架适用于各种对象检测任务,但在本文中,我们着重于在手机相机取景器中检测面部。由于不同的焦距和典型的拍摄对象尺寸,我们为前置摄像头和后置摄像头建立了单独的模型。

除了预测与轴对齐的脸部矩形外,我们的BlazeFace模型还生成6个脸部关键点坐标(用于眼睛中心,耳部扭伤,嘴中心和鼻尖),使我们可以估计脸部旋转(滚动角度)。这样就可以将旋转的面部矩形传递到视频处理管道的后续特定任务阶段,从而减轻了后续处理步骤中显着平移和旋转不变性的需求(请参见第5节)。

Model architecture and design

BlazeFace模型体系结构围绕以下讨论的四个重要设计考虑而构建。

Enlarging the receptive field sizes(增大感受野)

尽管大多数现代卷积神经网络体系结构(包括两个MobileNet [3,9]版本)都倾向于在模型图中的任何地方使用3 3个卷积核,但我们注意到,深度可分离卷积计算由它们的点向支配。部分。在s s c输入张量上,k k深度方向卷积涉及s2ck2乘法加法运算,而随后的1 1卷积到d个输出通道中的s2cd这样的运算包括在深度部分的d / k2内。

例如,实际上,在具有Metal Performance Shaders实现的Apple iPhone X上,对于56 56 128张量,在16位浮点算术中进行3×3深度卷积需要0.07 ms,而随后的1从128通道到128通道的1卷积在0.3 ms时要慢4.3(由于固定成本和内存访问因素,这不像纯算术运算计数差那么大)。该观察表明,增加深度部分的核尺寸相对便宜。我们在模型架构瓶颈中采用了5 5个内核,将内核大小的增加与达到特定接收域大小所需的此类瓶颈的总量的减少进行了交易(图1)。

MobileNetV2 [9]瓶颈包含随后的深度增加的扩展和深度减少的投影逐点卷积,这些卷积被非线性分隔。为了适应中间张量中较少数量的通道,我们交换了这些阶段,以便瓶颈中的剩余连接以“扩展的”(提高的)通道分辨率运行。

最后,深度卷积的低开销使我们能够在这两个点式卷积之间引入另一个这样的层,从而进一步加速了接收场大小的发展。这形成了双重BlazeBlock的本质,该BlazeBlock用作BlazeFace的较高抽象级别层的选择瓶颈(请参见右图1)。

Feature extractor(特征提取)

对于一个特定的示例,我们专注于前置摄像头模型的特征提取器。它必须考虑较小的对象比例范围,因此对计算的要求较低。提取器接受128 128像素的RGB输入,并由2D卷积和随后的5个单BlazeBlock和6个双BlazeBlock组成(完整布局请参见附录A中的表4)。最高张量深度(通道分辨率)为96,而最低空间分辨率为8×8(与SSD相比,后者将分辨率降低至1×1)。

Anchor scheme(改进的anchor 机制)

类似SSD的对象检测模型依赖于预先定义的固定大小的基本边界框,这些边界框称为Pris或Faster-R-CNN [8]术语中的锚点。一套

图2.锚计算:SSD(左)与Blaze预测每个锚的回归(以及可能的分类)参数,例如中心偏移和尺寸调整。它们用于将预定义的锚位置调整为紧密的边界矩形。通常的做法是根据对象比例范围在多个分辨率级别上定义锚点。进取的下采样也是计算资源优化的一种手段。典型的SSD模型使用来自1、2、2、4、4、8、8和16 16个特征图大小的预测。但是,池金字塔网络(PPN)体系结构的成功[7]意味着在达到一定的特征图分辨率后,其他计算可能是多余的。分配特定层计算的成本,这对于流行的CPU量身定制的体系结构固有的深层低分辨率层来说变得相对重要。例如,在一个实验中,我们观察到在4.9 ms的MobileNetV1推理时间中,实际的GPU着色器计算仅花费3.9 ms。考虑到这一点,我们采用了另一种锚定方案,该方案在8 8个要素地图维处停止,而无需进一步下采样(图2)。我们已将每个8、8、4 4和2 2分辨率中的每个像素2个锚点替换为8个8点处的6个锚点。由于人脸纵横比的变化有限,因此将锚点限制为1:1纵横比足以进行准确的人脸检测。

Post-processing(后处理机制)

由于我们的特征提取器并未将分辨率降低到8 8以下,因此重叠在给定对象上的锚点的数量会随着对象大小的增加而显着增加。在典型的非最大抑制场景中,只有一个锚点“获胜”,并被用作最终算法结果。当将这种模型应用于后续视频帧时,预测趋于在不同锚点之间波动,并表现出时间抖动(人类可感知的噪声)。
为了最大程度地减少这种现象,我们将混合算法替换为抑制算法,该策略将边界框的回归参数估计为重叠预测之间的加权均值。与原始的NMS算法相比,它几乎不会产生任何额外的成本。为了我们的脸

检测任务,此调整导致准确性提高了10%。

我们通过将同一输入图像的几个略有偏移的版本传递到网络中,并观察模型结果(经过调整以考虑平移)的影响,从而对抖动量进行量化。在对上述平局决议策略进行修改之后,抖动度量(定义为原始输入和位移输入的预测之间的均方根差)在我们的前置摄像头数据集上下降了40%,在后置摄像头数据集上下降了30%包含较小的面孔。

Experiments

我们在66K图像的数据集上训练了我们的模型。为了进行评估,我们使用了由2K图像组成的私有地理位置不同的数据集。对于前置摄像头模型,由于预期的用例(后置摄像头模型的阈值为5%),仅考虑占据图像区域超过20%的面部。

回归参数误差通过眼距(IOD)进行尺度不变性标准化,平均绝对误差测得为IOD的7.4%。通过上述过程评估的抖动指标为IOD的3%。

表1显示了拟议的正面人脸检测网络的平均精度(AP)指标[5](具有标准的0.5交叉交界框匹配阈值)和移动GPU推理时间,并将其与基于MobileNetV2的对象进行了比较具有相同锚编码方案(MobileNetV2-SSD)的探测器。我们已使用16位浮点模式下的TensorFlow Lite GPU [2]作为推理时间评估的框架。较小的模型尺寸。如以下部分所述,这不一定会导致整个AR管道质量成比例下降。

Applications

在完整图像或视频帧上运行的拟议模型可以用作几乎任何与面部相关的计算机视觉应用程序的第一步,例如2D / 3D面部关键点,轮廓或表面几何估计,面部特征或表情分类以及脸部区域分割。因此,可以根据适当的面部修剪来定义计算机视觉管道中的后续任务。结合BlazeFace提供的一些面部关键点估计值,还可以旋转该作物,以使内部人脸居中,按比例缩放归一化并具有接近零的侧倾角。这从特定于任务的模型中消除了显着平移和旋转不变性的要求,从而实现了更好的计算资源分配。我们以面部轮廓估计的特定示例说明了这种流水线方法。在图3中,我们显示了BlazeFace的输出(即预测的边界框和该面部的6个关键点(红色))如何通过更复杂的方式进一步完善

表2给出了两个网络模型在更多旗舰设备上的GPU推理速度的透视图。

人脸轮廓估计模型应用于略微扩大的作物。详细的关键点产生了更好的边界。表3显示了回归参数预测质量的降低量,该降低量是由

框估计(绿色),可在不运行面部检测器的情况下重新用于后续帧中的跟踪。为了检测此计算节省策略的失败,轮廓模型还可以检测所提供的矩形作物中是否确实存在该面部并合理地对齐了该面部。每当违反该条件时,BlazeFace面部检测器都会再次在整个视频帧上运行。

本文描述的技术正在驱动手机上的主要AR自表达应用程序和AR开发人员API。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值