本文主要是介绍Edge Assisted Real-time Object Detection for Mobile Augmented Reality,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Edge Assisted Real-time Object Detection for Mobile Augmented Reality
1 INTRODUCTION
我们提出了一种系统,该系统通过设备上的快速目标跟踪方法显著地减少了卸载检测延迟,并隐藏了剩余的延迟。为了减少卸载延迟,它采用了动态ROI编码技术和并行流和推理技术。
动态ROI编码技术基于在最后卸载的帧中检测到的感兴趣区域(ROI)来调整每个帧上的编码质量以减少传输等待时间。关键的创新之处在于从先前帧的候选区域中识别出具有潜在感兴趣对象的区域。它在可能检测到对象的区域提供更高质量的编码,并在其他区域使用更强的压缩来节省带宽,从而减少延迟。
并行流和推理方法流水线处理流和推理过程,以进一步减少卸载延迟。我们提出了一种新的依赖关系感知推理方法,使基于切片的推理能够在不需要影响检测结果的情况下对CNN对象检测模型进行推理。在AR设备上,系统将渲染流水线与卸载流水线解耦,而不是等待每一帧的边缘云检测结果。为了实现这一点,它使用基于从编码视频帧中提取的运动矢量和从边缘云中处理的先前帧中缓存的对象检测结果的快速且轻量级的对象跟踪方法,以在存在运动的情况下调整当前帧上的边界框或关键点。该方法利用卸载时延低的优点,能够提供准确的目标检测结果,并为增强现实设备提供足够的时间和计算资源来绘制高质量的虚拟覆盖图。
此外,我们还引入了一种自适应的卸载技术,通过与之前的卸载帧相比,根据该帧的变化来决定是否对边缘云进行卸载处理,从而降低了系统的带宽和功耗。
2 CHALLENGES AND ANALYSIS
3 SYSTEM ARCHITECTURE
为了隐藏卸载对象检测任务造成的延迟,我们的系统将渲染过程和CNN卸载过程解耦到两个单独的管道中。
本地渲染管道在等待目标检测结果的同时开始跟踪场景并渲染虚拟叠加,然后在目标检测结果到达时将检测结果合并到下一帧的跟踪中。
动态感兴趣区域编码(DRE)的关键思想是降低帧中非感兴趣区域的编码质量,并基于较早的对象检测结果来保持可能包含感兴趣对象的候选区域的高质量。
自适应卸载技术,通过对比先前卸载帧,看是否有重大改变。为了提高效率,这种技术重用了来自动态RoI编码的编码视频帧中嵌入的宏块类型(帧间预测块或帧内预测块),以识别保证卸载对象检测的显著变化。
4 DYNAMIC ROI ENCODING
我们设计了一种动态ROI编码机制,将目标检测CNNs中产生的内部ROI与图像编码器连接起来。具体来说,它使用最后一帧处理后生成的CNN候选ROI来确定下一帧的编码质量。
它通过一个宏块将每个感兴趣的区域稍微放大来适应一定程度的运动,但很大程度上受益于在短时间间隔内捕获的两个帧之间的相似性。
虽然人们可能希望仅通过在前一帧检测到对象的区域中选择RoI来节省更多的带宽,但是这种方法经常会错过出现在场景中的新对象,因为包含这些对象的图像区域最终会被严重压缩。
但是,在如此严重压缩的区域中进行的更改通常仍被认为是CNN候选RoI集合(区域提案网络的输出)的一部分。因此,我们使用来自区域提议网络的ROI,使用低的预测置信阈值(即0.02)进行过滤。
为了使用这些选定的RoI来调整当前帧的编码质量,我们计算了一个QP表,该表定义了帧上每个宏块的编码质量(QP)。
5 PARALLEL STREAMING AND INFERENCE
由于输入帧的相邻值在计算上的依赖性,简单地运行推理然后根据帧的切片进行合并会导致边界附近出现大量错误的特征值。我们设计了一种依赖感知推理技术,它只在有足够输入特征点的情况下计算每一层特征点的区域。依赖性是由卷积层(有时也包括池化层)引起的,其中每个帧切片边界周围的特征计算也需要相邻切片。
6 MOTION VECTORS BASED OBJECT TRACKING
在这一部分中,我们介绍了基于运动矢量的目标跟踪,它能够使用从编码的视频帧中提取的运动矢量和从最后卸载的帧中缓存的目标检测结果来估计当前帧的目标检测结果。
在我们的实验中,我们发现运动矢量的精度随着当前帧和参考帧之间的时间间隔的增加而降低。
我们在NVIDIA Jetson TX2上实现的系统只需要2.24ms就可以完成这一运动跟踪过程,这为AR设备在16.7ms的延迟要求内渲染高质量的虚拟覆盖留下了足够的时间和计算资源。
7 ADAPTIVE OFFLOADING
自适应卸载机制的设计基于两个原则:(1)只有在前一个卸载的帧已经被边缘云完全接收到的情况下,该帧才有资格被卸载;(2)如果一个帧从最后一个卸载的帧开始明显地返回,则认为该帧是卸载的。
在编码帧内的两种类型的宏块(预测间块和预测内块)之间,我们通过实验发现,预测内块通常指的是新出现的区域,因为这些宏块在编码过程中无法在参考帧中找到参考像素块。
1.帧间是否发生大动作(包括用户的动作和对象的动作)
2.帧内是否有相当数量的变化像素出现。
一帧的运动由所有运动向量的总和来量化,新像素的数量由编码帧内预测的宏块的数量来估计。
8 IMPLEMENTATION
客户端。我们使用NVIDIA Jetson TX2的Jetpack SDK实现了客户端功能。该实现遵循图4中的设计。我们首先使用Jetpack Camera API创建一个以60fps运行的摄像头捕获会话,并使用Multimedia API将视频编码器注册为其帧消费者。为了实现ROI编码模块,我们使用setROIParams()函数来设置ROI及其QP delta值,以便基于在边缘云上生成的ROI来编码下一帧。
我们还支持了外部RPS控制模式,将每一帧的参考帧设置为当前缓存的检测结果的源帧,这样提取的运动向量就可以用来移动缓存的检测结果。
服务器端。服务器端的实现包括两个主要模块:并行解码和并行推理,它们被设计为运行在两个不同的线程中,以避免相互阻塞。
在并行解码线程中,系统一直在等待来自AR设备的编码帧片。一旦接收到切片,它会立即将其传递给视频解码器,以便在异步模式下进行解码,这不会阻止系统继续接收其他切片。我们使用NVIDIA Video Codec SDK来利用NVIDIA Titan XP GPU中的硬件加速视频解码器。解码每个切片后,系统会在附加到解码器的回调函数中将其传递给并行推理线程。
并行推理模块使用NVIDIA TensorRT实现,NVIDIA TensorRT是为NVIDIA GPU设计的高性能深度学习推理优化器。为了突破服务器端PC的推理延迟限制,我们使用TensorRT中的INT8校准工具对目标检测模型进行了优化,在相同的设置下获得了3-4倍的延迟改进。为了实现所提出的依赖A波推理方法,我们在每个卷积层和池化层之前添加一个PluginLayer,根据公式2调整它们的输入和输出区域。在整个帧的推理过程之后,边缘云将检测结果和QP图发送回AR设备以供进一步处理。
9 EVALUATION
在本节中,我们将从检测精度、检测延迟、端到端跟踪和渲染延迟、卸载延迟、带宽消耗和资源消耗等方面评估系统的性能。
[1] Liu Luyang. Edge Assisted Real-time Object Detection for Mobile Augmented Reality
这篇关于Edge Assisted Real-time Object Detection for Mobile Augmented Reality的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!