论文阅读 Memory Enhanced Global-Local Aggregation for Video Object Detection

Memory Enhanced Global-Local Aggregation for Video Object Detection

Abstract

人类如何识别视频中的物体?由于单一帧的质量低下,仅仅利用一帧图像内的信息可能很难让人们在这一帧中识别被遮挡的物体。我们认为人们识别视频中的物体有两个重要线索:全局语义信息和本地定位信息。最近,许多方法采用自注意机制,以增强关键帧中的特征,使用全局语义信息或本地定位信息之一。在本文中,我们介绍了一种记忆增强的全局-本地聚合(MEGA)网络,这是首批全面考虑全局和本地信息的尝试之一。此外,借助一种新颖且精心设计的长程记忆(LRM)模块,我们提出的MEGA可以使关键帧访问比以往任何方法都多得多的内容。通过这两个信息源的增强,我们的方法在ImageNet VID数据集上实现了最先进的性能。

1. Introduction

在视频中检测对象与在静态图像中检测它们的区别在于信息存在于时间维度。当孤立的帧可能受到问题,如运动模糊、遮挡或失焦时,人们自然会从整个视频中寻找线索来识别对象。

当人们不确定一个物体的身份时,他们会寻找与当前物体具有高语义相似性的其他帧中的显著物体,并将它们一起分配。我们将这种线索称为全局语义信息,因为视频中的每一帧都可以作为参考。但如果我们不确定对象是否存在,例如在黑暗中行走的黑猫,仅仅依靠语义信息无法告诉我们它的位置,因为该实例的存在在关键帧中尚未得到确认。如果提供了附近帧的信息,这个问题可以得到缓解。通过计算附近帧之间的差异来获得的运动等信息,我们可以在关键帧中定位对象。我们将这个信息源称为本地定位信息。总之,人们主要使用这两种信息源来识别对象。

因此,借鉴人类的这一思想,增强视频对象检测方法以利用整个视频内的信息是直接的,如图1(a)所示。然而,由于整个视频中存在大量的边界框,要借助整个视频中的信息来增强是不可行的。这激发了我们在效率和准确性之间取得平衡的同时执行近似的动机。近期解决视频对象检测问题的方法可以看作是不同近似方法,可以分为两个主要类别:本地聚合方法和全局聚合方法。

在这里插入图片描述

像[36, 9, 27, 1, 7]等方法考虑在短的局部范围内利用语义和定位信息,如图1(b)所示。另一方面,[30, 6, 23]只考虑了边界框之间的语义影响,如图1©所示。不幸的是,这些方法中没有一个综合考虑了本地和全局信息,这被称为无效问题。
在这里插入图片描述

近期工作中存在的另一个问题是聚合的帧数,也就是关键帧可以从中收集信息的数量。在以往的最先进方法中,仅选择20-30个参考帧,仅持续1-2秒,用于特征聚合。这也在图1(b)和1©中有所说明。我们认为在这种规模上的聚合大小是对本地影响或全局影响的不足够近似,更不用说图1(a)了。
在本文中,我们提出了记忆增强的全局-本地聚合(MEGA)来克服上述无效和不足够问题。具体而言,MEGA通过有效地聚合全局和本地信息来增强关键帧的候选框特征。

MEGA被实例化为一个多阶段结构。在第一阶段,MEGA旨在通过将全局和本地信息聚合到关键帧来解决无效问题。然而,正如图1(d)的上半部分所示,可用内容仍然相当有限。因此,在第二阶段,我们引入了一个新颖的长程记忆(LRM)模块,使关键帧能够访问比以往任何方法都多得多的内容。特别是,我们不是为当前的关键帧从头开始计算特征,而是重复使用在以前帧的检测过程中获得的预先计算的特征。这些预先计算的特征被缓存在LRM中,并在当前帧和以前帧之间建立了一个递归连接。请注意,与传统记忆不同,这些缓存的特征首先通过全局信息进行增强,这意味着当前关键帧不仅能够在本地获取更多信息,还能够在全局范围内获取更多信息。聚合大小如图1(d)的下半部分所示。引入LRM后,解决不足问题迈出了重要的一步,同时保持了简单和快速。
在这里插入图片描述

由于MEGA借助LRM的巨大聚合规模,我们在ImageNet VID数据集上实现了85.4%的mAP,这是迄今为止报道的最佳结果。

2. Related Work

略过

3. Method

在本节中,我们将详细介绍如何设计MEGA,使整个架构能够充分利用全局和本地信息。具体来说,MEGA首先将选定的全局特征聚合到本地特征中,然后,这些全局增强的本地特征与一个新颖的长程记忆(LRM)模块一起将更长的全局和本地信息内容聚合到关键帧中以实现更好的检测。概述如图2(b)所示。

在这里插入图片描述

3.1. Preliminary

视频对象检测的目标是为视频的每一帧 {It}Tt=1 提供检测结果。假设要检测的当前帧是Ik,Bt = {bit}表示由RPN在每一帧 It 生成的候选边界框。相邻帧 {It}k+τt=k−τ中的所有候选框被分组在一起形成局部池,即L = {Bt}k+τt=k−τ。对于全局特征,我们随机洗牌有序索引序列{1, . . . , T}以获得一个洗牌后的索引序列S,然后我们依次选择Tg帧并将它们中的所有边界框分组以形成全局池。可以表示为G = {BSi }k+Tg−1i=k。最后,引入了一种新颖的长程记忆模块M,用于存储在先前帧的检测过程中产生的中间特征,以使关键帧能够利用缓存信息,从而具有建模长期全局和本地依赖性的能力。我们的最终目标是在借助L、G和M的帮助下为关键帧中的所有候选框Bk提供分类和回归结果。
此外,我们用其语义特征fi和定位特征gi来表示每个框bi。gi表示空间信息(即高度、宽度、中心位置)和时间信息(即帧编号)。

Relation Module 我们选择用于挖掘边界框之间关系的操作是[15]中引入的关系模块。给定一组边界框B = {bi},对象关系模块被设计为通过计算M个头的语义特征的加权和来增强每个框bi,其中M表示头的数量。从技术上讲,bi的第m个关系特征计算如下:

在这里插入图片描述
其中WmV是一个线性变换矩阵。关系权重ωm,∗ij表示通过语义特征 f 和可能的定位特征 g 来测量bi和bj之间的影响。这里∗ ∈ {L, N}表示定位特征g是否纳入ω中,其中L表示纳入,N表示不纳入。由于在时间维度上两个远距离的边界框之间的定位特征是多余的,可能会损害整体性能,因此我们设计了无定位信息版本,督促关系模块只关注语义特征。需要注意的是,我们的定位特征中还包含了时间信息,以区分来自不同帧的边界框的影响。这个时间信息以与[5]中一样的相对方式纳入到ω中。

最后,通过连接所有M个关系特征及其原始特征,我们获得了输出的增强特征:
在这里插入图片描述
其中∗ ∈ {L, N},意思与之前相同。生成增强特征之后,我们另外附加一个非线性变换函数h(·),实现为一个全连接层和其后的ReLU激活函数。
此外,我们可以扩展关系模块,以建模两组边界框之间的关系。为了方便起见,我们使用符号frm(B, P)来表示所有增强提案特征的集合,即{frm(bi, P)},这意味着B中的所有边界框都通过P中的边界框的特征进行增强。

3.2. Memory Enhanced Global-Local Aggregation

Global-Local Aggregation for ineffective problem
首先,我们将详细介绍如何设计网络,将全局和本地特征聚合在一起以解决无效问题,即分别考虑全局或本地信息。我们将这个架构称为基本模型,并在图2(a)中表示出来。

具体来说,首先将来自G的全局特征聚合到 L中。更新函数可以表示为:
在这里插入图片描述
其中Ng(·)是由堆叠的 locationfree relation modules 组成的函数,Lg表示经过该函数后的最终全局增强版本的L。由于我们的目标是充分利用全局特征来增强本地特征的潜力,我们迭代地进行关系推理,使用Ng关系模块来更好地描述G和L之间的关系。具体而言,第k个关系模块中的计算过程如下:
在这里插入图片描述
其中fNrm(·)表示location-free关系模块,定义如Eq (2),Lg,0 = L表示第一个关系模块的输入。后续的关系模块以前一个关系模块的输出作为输入。最后,第Ng个关系模块的输出被作为Lg

在全局特征被聚合到本地特征之后,我们寻求利用底层的语义和定位信息来进一步增强它们。为了实现这一点,采用了一系列Nl基于位置的关系模块。技术上,总体的函数可以总结如下:
在这里插入图片描述
其中Ll 表示 local pool的最终增强版本。我们将Nl(·)的整个过程分解如下。第k个关系模块中的计算流程与Ng(·)中的对应部分类似:

在这里插入图片描述
其中fLrm(·)表示基于位置的关系模块,我们采用Lg,即L的全局增强版本,作为第一个基于位置的关系模块的输入。Ll,Nl 被视为最终enhanced pool Ll 的输出。完成最终更新后,属于关键帧的Ll 中的所有边界框特征将被提取,并通过传统的RCNN头部进行传播,以产生分类和回归结果。这些提取的特征被表示为C。

Long Range Memory for insufficient problem
在基本模型中,一个单帧能够聚合总共Tg个全局特征帧和Tl个本地特征帧,如图2(a)所示,这是解决无效问题的一大步。然而,不足问题,即关键帧聚合的帧的数量太小的问题,直到现在仍然没有解决。如果有无限的内存和计算资源,可以通过增加Tg和Tl的值来解决这个问题,使它接近视频的长度。然而,在实际应用中,这是不可行的,因为资源是有限的。

那么,如何在保持计算成本可承受的情况下解决不足问题呢?受[5]中引入的循环机制的启发,我们设计了一个名为“长程记忆”(LRM)的新模块来实现这个目标。总之,LRM使基本模型能够充分利用预先计算的特征,从更长的全局和本地内容中获取信息。我们将这个经过增强的内存版本命名为MEGA。有关MEGA的工作原理的概述,请参阅图2(b)。

为了了解基本模型的缺陷,假设Ik−1和 Ik 是两个连续的帧。当我们将检测过程从Ik−1切换到 Ik时,我们丢弃了Ik−1上的所有中间特征。因此,Ik上的检测过程无法利用 Ik−1 的检测过程的任何优势,尽管它们在时间维度上是连续的。每当我们移动到新的帧时,都需要从头开始重新计算。这激发了我们的灵感,即要记住预先计算的特征,以便当前帧可以利用历史中的更多信息。在实践中,除了利用相邻帧{It}k+τt=k−τ,大小为Tm的长期记忆M还会额外提供Tm帧信息的特征,即在相邻帧之前的{It}k−τ−1t=k−τ−Tm,以帮助在Ik上进行检测。

具体而言,在完成Ik−1的检测过程后,与在基本模型中丢弃在检测过程中计算的所有特征不同,这时会将Ik−τ−1的中间特征缓存在长期记忆M中。这意味着,由于我们在Eq(5)中定义的本地聚合函数Nl(·)由一组Nl关系模块的堆叠组成,而 Ll,i, i ∈{0, Nl} 是经过第i个关系模块增强后的特征(i=0表示输入),我们将提取并存储 Ik−τ−1 的所有级别特征,即Ll,ik−τ−1,i ∈{0, Nl}在M中。具体来说,M有Nl+1个级别,其中Mi缓存Ll,ik−τ−1。每当为新帧完成检测过程时,与这个新帧相邻帧的第一帧对应的特征将被添加到M中。

通过引入M并重复使用其中缓存的这些预先计算的特征,我们可以增强本地聚合阶段,以便在Ik和后续帧上检测时融合M中的信息。本地聚合的增强版本可以总结为:
在这里插入图片描述
与Nl(·)类似,NEl(·)也是建立在一组Nl基于位置的关系模块之上,同时考虑了M的影响:
在这里插入图片描述

[·, ·]表示两个信息池的连接。与标准的更新函数相比,关键区别在于参考池的形成。与基本模型一样,在最终更新完成后,将提取C,并通过传统的RCNN头部进行传播,以给出当前关键帧的分类和回归结果。MEGA的详细推断过程如算法1所示。
在这里插入图片描述
To what extent does LRM address the ineffective and insufficient approximation problem?
通过附加尺寸为Tm的长期记忆M,特征数量的直接增加是显而易见的。但视野的增加远远超出了这个数字。请注意,由于我们增强的本地stage有Nl堆栈,由于M引入的递归连接,关键帧可以在我们每次迭代关系推理时从额外的Tm帧中收集信息,如图2(b)所示。最后,最重要的是,由于每一帧的缓存特征首先由不同的全局特征集增强,长期记忆不仅在本地增加了聚合大小,还在globally 增加了聚合大小。总之,具有Nl级增强的本地聚合阶段的模型可以从完全Nl×Tm+Tl的本地参考帧和Nl×Tm+Tg的全局参考帧中收集信息,其中Tl,Tg,Tm分别表示本地池,全局池和内存的大小。这对于基本模型中的Tl和Tg是一个巨大的飞跃。通过这种巨大的增大的聚合规模,我们认为我们的模型更好地解决了无效和不足的问题,同时不会显着增加运行时间。这在第4节的表1中的卓越实验结果进一步得到了证实。

4. Experiments

4.1. Dataset and Evaluation Setup

我们在ImageNet VID数据集上评估了我们提出的方法。ImageNet VID数据集是一个用于视频目标检测任务的大规模基准数据集,包括3,862个训练集视频和555个验证集视频。该数据集包含30个目标类别。我们在验证集上评估我们的方法,并使用均值平均精度(mAP)作为评估指标。

4.2. Network Architecture

Feature Extractor 我们主要使用ResNet-101和ResNeXt-101作为特征提取器。我们通过将最后一个卷积阶段(conv5)的第一个卷积块的步幅从2改为1来增大特征图的分辨率。为了保持感受野的大小,这些卷积层的膨胀率被设置为2。

Detection Network 我们使用Faster R-CNN 作为我们的检测模块。RPN头部添加在conv4阶段的顶部。在RPN中,锚点具有3个长宽比{1:2, 1:1, 2:1}和4个尺度{642, 1282, 2562, 5122},每个空间位置共产生12个锚点。在训练和推理过程中,为每个帧生成N = 300个候选框,NMS阈值为0.7 IoU。生成框后,我们应用RoI-Align 和在conv5阶段之后的一个1024-D全连接层,为每个框提取RoI特征。

MEGA 在训练和推理阶段,本地时间窗口大小设置为Tl = 25(τ = 12)。需要注意的是,实际上关键帧两侧的时间跨度可能不同。为了提高效率,我们不保留RPN为每个本地参考帧生成的所有候选框,而是选择具有最高物体性分数的80个候选框。在本地聚合阶段的后续堆栈中,候选框的数量进一步减少到20个。至于全局参考帧,我们总共选择了Tg = 10帧和每帧最高物体性分数的80个proposals。Long Range Memory的大小Tm设置为25。

至于全局和本地聚合阶段,关系模块的数量分别设置为Ng = 1和Nl = 3。对于每个关系模块,超参数设置与[15]相同。

4.3. Implementation Details && 4.4. Main Results && 4.5. Ablation Study

略过

5. Conclusion

In this work, we present Memory Enhance Global-Local Aggregation Network (MEGA), which takes a joint view of both global and local information aggregation to solve video object detection. Particularly, we first thoroughly analyze the ineffecitve and insufficient problems existed in recent methods. Then we propose to solve these problems in a two-stage manner, in the first stage we aggregate global features into local features towards solving the ineffective problem. Afterwards, a novel Long Range Memory is introduced to solve the insufficient problem. Experiments conducted on ImageNet VID dataset validate the effectiveness of our method.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/109616.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# 取消一个不带CancellationToken的任务?

在异步函数中&#xff0c;一般使用CancellationToken来控制函数的执行。这个Token需要作为参数传递到异步函数中&#xff1a; public staic Task<T> DoAsync(CancellationToken token) {... } 那么如果一个异步函数没有这个Token参数&#xff0c;如何取消呢? 之前看到一…

TODO Vue typescript forEach的bug,需要再核實

forEach 一個string[]&#xff0c;只有最後一個匹配條件有效&#xff0c;其它條件無效。 所以&#xff0c;只能替換成普通的for循環。 console.log(taskList)// for (const _task of taskList.value) {// if (_task invoiceSendEmail) {// form.value.invoiceSendEmail…

Hadoop3教程(十五):MapReduce中的Combiner

文章目录 &#xff08;103&#xff09;Combiner概述什么是CombinerCombiner有什么用处Combiner有什么特点如何自定义Combiner &#xff08;104&#xff09;Combiner合并案例实操如何从日志里查看Combiner如果不存在Reduce阶段&#xff0c;会发生什么自定义Combiner的两种方式 参…

【非root用户、CentOS系统】中使用源码安装gcc/g++的教程

1.引言 系统&#xff1a;CentOS-7.9 显卡驱动版本&#xff1a;460 CUDA Version: 11.2 &#x1f33c;基于本地环境选择安装gcc-10.1.0 &#x1f449; gcc下载网址 2.安装说明 下载好对应的gcc的安装包并解压&#xff1a; 打开gcc-10.1.0/contrib/download_prerequisites&#…

关于gt_sampling的理解

pcdet/datasets/augmentor/data_augmentor.py def gt_sampling(self, configNone):db_sampler database_sampler.DataBaseSampler(root_pathself.root_path,sampler_cfgconfig,class_namesself.class_names,loggerself.logger)return db_sampler此函数指向DataBaseSampler类&a…

0基础学习VR全景平台篇第109篇:认识拼接软件PTGui Pro

上课&#xff01;全体起立~ 大家好&#xff0c;欢迎观看蛙色官方系列全景摄影课程&#xff01;今天给大家讲解我们全景后期拼接软件PTgui pro&#xff0c;下面我们开始吧&#xff01; &#xff08;PTgui pro软件课程大纲&#xff09; 1.PTGui这个软件是什么 发明人 &#xf…

【网络编程】从网络编程、TCP/IP开始到BIO、NIO入门知识(未完待续...)

目录 前言前置知识一、计算机网络体系结构二、TCP/IP协议族2.1 简介*2.2 TCP/IP网络传输中的数据2.3 地址和端口号2.4 小总结 三、TCP/UDP特性3.1 TCP特性TCP 3次握手TCP 4次挥手TCP头部结构体 3.2 UDP特性 四、总结 课程内容一、网络通信编程基础知识1.1 什么是Socket1.2 长连…

Python之旅----判断语句

布尔类型和比较运算符 布尔类型 布尔类型的定义 布尔类型的字面量&#xff1a; True 表示真&#xff08;是、肯定&#xff09; False 表示假 &#xff08;否、否定&#xff09; 也就是布尔类型进行判断&#xff0c;只会有2个结果&#xff1a;是或否 定义变量存储布尔类型…

天猫店铺商品评论数据采集,天猫商品评论数据接口,天猫API接口

天猫店铺商品评论数据接口可以获取到商品ID&#xff0c;商品标题&#xff0c;商品优惠券&#xff0c;商品到手价&#xff0c;商品价格&#xff0c;商品优惠价&#xff0c;商品sku属性&#xff0c;商品图片&#xff0c;商品视频&#xff0c;商品sku属性图片&#xff0c;商品属性…

ant中的environment属性

在ant的配置文件中&#xff0c;可以设置属性environment的值&#xff0c;设置的这个值就作为访问环境变量的前缀。例如声明了environment“env”&#xff0c;那么就可以通过env.<环境变量名称>来访问环境变量。 例如创建了一个Java工程&#xff0c;在工程目录下有一个bu…

HCIA --- VLAN实验配置

一、各交换机上配置&#xff1a; 1、各交换机上创建VLAN 2、交换机上的各个接口划分到对应的VLAN中 3、将与交换机、路由器相连的接口创建trunk干道 SW1&#xff1a; [sw1]vlan batch 2 to 3 批量创建VLAN2-3 [sw1]interface Ethernet0/0/1 单独将某个接口划分到对应…

信息保卫战:揭秘迅软DSE护航企业免受泄密之害

随着网络技术的发展&#xff0c;通过网络应用如网盘、网页、邮件、即时通讯工具传输分享文件变得越来越多&#xff0c;这些工具传输速度快&#xff0c;能够将大容量的文档快速传送给他人&#xff0c;在工作中受到许多人的青睐。 然而由这些传输工具引发的泄密事件也不断增多&am…

视频怎么压缩?视频太大这样处理变小

在当今时代&#xff0c;视频已经成为了我们日常生活中不可或缺的一部分&#xff0c;然而&#xff0c;视频文件往往非常大&#xff0c;给我们的存储和传输带来了很大的不便&#xff0c;那么&#xff0c;如何有效地压缩视频呢&#xff1f; 一、使用压缩软件 首先我们给大家分享一…

供应商工厂突发爆炸,日本丰田7座工厂停工 | 百能云芯

根据日本共同社的最新报导&#xff0c;日本著名汽车制造商丰田汽车近期遭遇了一系列生产中断问题。这次生产中断的根本原因在于供应商公司发生了一起爆炸事件&#xff0c;导致零部件供应链受到了严重干扰&#xff0c;迫使丰田暂时停工。截至目前&#xff0c;这一事件已经影响了…

【触想智能】工业级触摸显示器的分类与应用分享

工业级触摸显示器是具有触摸功能的工业显示器&#xff0c;常见的触摸方式有电容触摸和电阻触摸。它是应用在工业上的设备&#xff0c;和普通的显示器有着很大的区别。 工业级触摸显示器由液晶触摸屏、功能主板、外壳三部分组成&#xff0c;结构用料一般都采用铝合金材质&#x…

配电房无人值守方案

随着科技的不断进步&#xff0c;许多传统需要人工操作和维护的领域逐渐被自动化和智能化方案所替代。配电房作为电力供应的核心部分&#xff0c;也面临着同样的变革。 力安科技电易云配电室无人值守监控系统以智能物联数据采集和智能物联管控"为关键&#xff0c;通过加…

自动化测试必会之数据驱动测试

数据驱动测试 在实际的测试过程中&#xff0c;我们会发现好几组用例都是相同的操作步骤&#xff0c;只是测试数据的不同&#xff0c;而我们往往需要编写多次用例来进行测试&#xff0c;此时我们可以利用数据驱动测试来简化该种操作。 参数化&#xff1a; 输入数据的不同从而产…

Linux性能优化--性能工具:特定进程内存

5.0 概述 本章介绍的工具使你能诊断应用程序与内存子系统之间的交互&#xff0c;该子系统由Linux内核和CPU管理。由于内存子系统的不同层次在性能上有数量级的差异&#xff0c;因此&#xff0c;修复应用程序使其有效地使用内存子系统会对程序性能产生巨大的影响。 阅读本章后&…

反转链表(java)

大家好我是苏麟今天说一说链表常见的简单题目 . BM1 反转链表 牛客BM1 反转链表 : 描述 : 给定一个单链表的头结点(该头节点是有值的&#xff0c;比如在下图&#xff0c;它的val是1)&#xff0c;长度为n&#xff0c;反转该链表后&#xff0c;返回新链表的表头。 分析 : …

安装thinkphp6并使用多应用模式,解决提示路由不存在解决办法

1. 安装稳定版tp框架 composer create-project topthink/think tptp是安装完成的目录名称 &#xff0c;可以根据自己需要修改。 如果你之前已经安装过&#xff0c;那么切换到你的应用根目录下面&#xff0c;然后执行下面的命令进行更新&#xff1a; composer update topthin…