Efficient Heterogeneous Video Segmentation at the Edge
Jamie Menjay Lin, Siargey Pisarchyk, Juhyun Lee, David Tian, Tingbo Hou, Karthik Raveendran, Raman Sarokin, George Sung, Trent Tolley, Matthias Grundmann
[Google, Mountain View, CA, USA]
https://arxiv.org/abs/2208.11666
我们为利用异构计算为资源有限的边缘设备引入了一种有效的视频分割系统。具体来说,我们通过在已经很轻的主干上搜索多个维度的神经架构和操作来设计网络模型,目标是商业上可用的边缘推理引擎。我们进一步分析和优化了CPU、GPU和NPU系统中的异构数据流。我们的方法在经验上充分考虑了我们的实时AR系统,以四倍的有效分辨率实现了显著更高的精度,但端到端延迟更短,帧速率更高,边缘平台上的功耗更低。
1 引言
视频分割是一项基础技术,为商业和娱乐用例中的各种计算机视觉任务提供支持,例如增强现实(AR)中的视频编辑以及视频会议中的背景模糊和替换。用于高质量实时视频分割的机器学习(ML)推理一直是一个具有挑战性的问题,特别是在资源有限的边缘设备(例如智能手机)上,模型精度、实时延迟和功耗是需要改进的关键领域。
我们提出了边缘实时高质量视频分割的实用技术(图1)。我们描述了i)我们对常见的轻量级网络架构(如MobileNetV3[18]和EfficientNetLite[9])的改进,以及ii)我们对边缘推理管道(如基于WebGL的[4]浏览器和移动设备上的NPU推理管道)的优化。
图1。Google Pixel 6智能手机上的实时视频分割比较。左列:基线模型89.5%mIoU[2](分割质量度量)和2.03 Watts。右栏:我们的模型,95.1%mIoU和1.84Watts。2 相关工作
在基于神经网络的语义分割模型开发过程中,作为早期进展,引入了全卷积网络[30]。许多后续工作继续提高准确性和效率,提出了各种类型的分割模型架构,如DeepLab[15]、Vortex Pooling[17]、PSPNet[36]和HRNet[31,35]。最近的另一项工作针对前景背景分离的图像抠图问题,这通常需要三分图[13,23,32]或预捕获的背景图像[13,23,29]。动态路由[22]是在各种分割架构的广义视图上引入的。神经架构搜索技术是搜索优化分割模型架构[14,24,27]以及特定类型的模型改进(如基于Transformer的分割模型[16,26])的另一项工作。
3 边缘分割模型设计
在边缘设备上运行的神经网络通常根据可用的计算资源进行调整。作为分割任务的基线,我们考虑了一种基于MobileNetV3主干的常用的全卷积U-net架构。在Intel Celeron N3060上,以256×256的输入分辨率运行CPU模型推断需要50毫秒以上的时间,这与常见的以EDU为目标的Chromebook一样,这表明即使是低质量的分割模型也太昂贵,无法在较旧的硬件上实时运行。
为了允许更大的模型,同时仍然支持实时视频,我们瞄准了GPU和NPU,它们可以提供高分辨率视频分割任务所需的FLOPS[1]或TOPS[3]。我们分析了设计选择的影响,包括编码器和解码器块的结构、卷积类型、输入分辨率以及宽度和深度乘法器。表1总结了本节讨论的完整消融研究。
虽然MobileNetV3中的挤压和激励块[19]对CPU有效,但由于大张量的全局平均池,它们增加了GPU上的延迟。我们将我们的架构重新建立在EfficientNetLite上,其中每个编码器块都有一个反向的残余瓶颈,并产生一个输出张量,该张量为输入的1/32。解码器然后从瓶颈块开始,该瓶颈块预测粗分割掩码,如第4节所示。在这种情况下,全局平均池只需要在一个小得多的张量上操作,并且预测精度得益于这种通道注意机制。
接下来,我们探讨解码器设计的三种变体:
1.双线性上采样:
对较低分辨率张量进行上采样,以匹配下一个较高编码器块的分辨率。这将应用非线性和来自编码器跳连的张量的和。
2.通道注意:
在上采样后应用压缩和激励块,然后是一组1×1卷积和3×3深度卷积。
3.多层感知器(MLP):
应用上采样,然后是1×1卷积(MLP)序列。
我们发现,当涉及到更精细的细节时,1×1卷积对模型的准确性有显著的影响,并且与更昂贵的注意块相比,MLP块是一种合理的性能折衷。我们还考虑了各种卷积类型对网络的影响,从标准卷积到其他类型的卷积。我们发现,虽然可分离卷积自然适合现代GPU,但由于芯片利用率的提高,某些硬件(如NPU)可以从组卷积中受益,从而在不增加延迟的情况下增强模型表现力。最后,我们对EfficientNetLite家族进行了超参数搜索,确定了乘数1.0。
在确定了架构之后,我们衡量了输入分辨率、延迟和准确性之间的权衡。在每种情况下,我们都使用按比例缩小到指定输入分辨率的图像来训练网络,并通过按比例缩小真值掩模到输出分辨率来测量IoU。我们发现分辨率对分割质量的影响最大,但观察到将分辨率提高到640×640以上的回报迅速减少。
4.E2E异构管道优化
用于AR应用的视频分割系统的最重要的性能标准之一是E2E帧速率,其可由应用用户直接感知。在本节中,我们讨论了在web浏览器和移动设备上分别利用GPU和NPU进行ML推理管道优化的具体考虑事项。
用于Web的GPU:
在浏览器中,支持WebGL的ML框架[6,10,11]是我们在浏览器中进行硬件辅助ML推理的自然选择,因为NPU目前缺乏web标准。由于这些实现的运行速度明显低于原生OpenGL[21],我们编写了自己的WebGL推理引擎,可以以接近原生OpenGL的性能运行。在我们的WebGL实现中,性能关键操作(例如卷积)利用了一种称为多渲染目标(MRT)的现代GPU功能[34],该功能允许一次渲染多个纹理,大大减少了多次绘制调用的开销。为了实现高效的MRT,我们分离了逻辑张量和物理GPU对象,它们在其他框架中具有1对1的对应关系,并允许张量采用灵活的布局,而不是一个硬编码的布局。
移动设备的NPU:
先进的移动优化视频处理框架,如MediaPipe[25],提供了主要针对图像和视频处理以及下游协处理器交互和GPU执行的流水线,通常用于图像采集、预处理/后处理和渲染任务。对于NPU加速的ML推理用例,系统可以从与NPU紧密耦合的处理链中受益。GPU推理与NPU推理的幼稚替代可能会导致严重的低效,如间接的处理器间数据流和处理器间同步的延迟。我们通过支持GPU和NPU共享访问的原生硬件缓冲区[5]简化了前者,并通过Android同步API中的同步围栏减少了后者[12]。
5.结果
我们的分割模型使用标准Jaccard[20,33]损失对注释数据集进行训练,总计250k张图像,涵盖了从视频会议到人类活动的广泛视频场景。我们在专有数据集上评估了我们的模型,例如“视频会议”(800个样本)和“全身姿势”(947个样本),并报告了它们的平均联合交叉点(mIoU)[2]、J平均值[28](区域相似性)和F平均值[27](轮廓精度)。
用于Web的GPU:
对于为桌面和笔记本电脑web浏览器设计的web应用程序中的视频分割,我们使用基准CPU(XNNPACK[7]和WebAssembly SIMD[8])和GPU(我们的WebGL实现)运行基于EfficientNetLite和MobileNetV3的分割模型。表3给出了web浏览器中ML推断的方向:(a)尽可能使用GPU进行web ML,以及(b)对于GPU加速的web视频分割,更倾向于使用EfficientNetLite而不是MobileNetV3。事实上,后一个观察结果让我们自信地为下面的NPU追求基于EfficientNetLite的模型。
移动设备的NPU:
通过第3节和第4节中讨论的模型改进和流水线优化,我们实现了显著更高的精度,并实现了更短的推断延迟,同时与基线相比降低了功耗。对于端到端性能评估,我们在Google Pixel 6智能手机上以512x512输入图像分辨率和7.6B FLOPS的各种架构运行视频分割任务。如表2所示,具有NPU、共享数据缓冲器和异步GPU-NPU执行配置以及第3节消融研究中指出的其他选择的M4号模型系统(最终)在延迟和功耗方面均优于所有其他变体。值得注意的是,我们的最终型号#M4实现了更高的精度,速度提高了81%(42.7 inf/sec),而与表2所示的基线ML型号相比,#M1仅消耗74%的功率。
6.结论
在本文中,我们通过对ML模型、推理加速和E2E异构计算流水线的改进和优化,展示了基于边缘的视频分割的发展。我们访问了涵盖模型架构设计和系统管道分析范围的讨论,特别针对资源有限的边缘ML。我们在ML模型架构和端到端ML管道中介绍了我们的设计和优化方法,并有效利用资源和API,以最大化生产就绪、异构边缘ML解决方案的吞吐量。我们证明,我们的方法能够跨各种数据集实现更高的准确性、更低的端到端推理延迟和更低的功耗。我们希望我们的方法能够对更广泛的边缘CV/ML系统和实时AR/VR应用有益并可扩展。
网友评论