ECCV 2020 Representation Learning on Visual-Symbolic Graphs for Video Understanding

本文主要是介绍ECCV 2020 Representation Learning on Visual-Symbolic Graphs for Video Understanding,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

动机
  1. 自然视频中的事件通常产生于演员和目标之间的时空交互,并且涉及多个共同发生的活动和目标类。因此,需要开发能够对时空视觉和语义上下文进行有效建模的算法。

  2. 捕捉这种上下文的一种方法是使用基于图的建模,它在计算机视觉中有着丰富的历史。

  3. 传统的基于图的方法,例如使用概率图模型,主要侧重于在符号而不是信号/视觉表示的层次上对上下文进行建模。然而,最近的进步使得图结构化数据的表示学习能够使用称为图神经网络(GNNs)的深层架构,这些架构学习如何通过聚合来自其邻居的消息来迭代更新节点表示。

  4. 视频可以表示为视觉空间-时间属性图(视觉st图),其节点对应于由目标检测器获得的区域,并且其边捕获这些区域之间的交互。GNNs最近被设计用于细化局部节点/边特征,该特征通常由卷积神经网络提取,基于由图捕获的时空上下文。

  5. 虽然GNNs对视觉ST图的表示学习已经导致了视频理解方面的重大进展,但是现有的方法有四个关键的限制,阻碍了它们充分利用这些图的丰富结构。

    1)首先,大多数GNN假设相同类型的节点/边。在实践中,可视st图是异构图,其具有不同的节点类型(演员、目标)和边类型(例如目标到演员的空间和演员到演员的时间),每种类型与潜在不同维度和语义的特征相关联,如图1的示例所示。由于这一限制,最近在明确地为演员和目标建模方面的尝试都诉诸于为每个节点/边类型应用单独的GNN。

    2)其次,大多数方法都是对一个固定结构的图进行操作,检测区域之间具有密集连通性。实际上,只有少数边捕获有意义的交互。

    3)第三,现有的方法没有结合边特征来更新节点表示。

    4)最后,尽管对局部视觉环境进行建模,但现有的方法没有在全局视频级别或利用常识性语义标签关系进行推理,这在图像识别领域已被证明是有益的。
    在这里插入图片描述

方法
简介

为了解决这些限制,作者提出了一种新的图神经网络(GNN)模型,称为视觉符号-时空-消息传递神经网络(VS-ST-MPNN)来在视觉st图上执行表示学习以获得检测到的演员和目标的上下文感知表示(图1)。作者的模型采用了可学习的邻域聚合机制(learnable neighborhood aggregation mechanisms),针对每个节点和边类型进行了专门的聚合,以迭代地细化参与者和目标的表示。作者还通过一个专门针对每种类型的交互的注意力机制来调整图的连通性。例如,一个演员节点将分别处理上一帧的演员节点和当前帧的目标节点。此外,作者利用区域间的几何关系初始化边特征,并对其进行细化,用于自适应图的连通性。直观地看,彼此接近或正在交互的节点应该是强连接的。最后,作者的一个关键贡献是引入了一个属性符号图,其节点对应于语义标签,如动作,由词嵌入描述,其边捕获标签关系,如共现。作者将两个图的信息与它们节点之间的可学习关联权重进行融合,并对符号图进行全局语义推理。重要的是,作者不需要目标、轨迹或每个可视节点的语义标签的GT(ground truth)标注。

架构

在这里插入图片描述
作者提出的VS-ST-MPNN模型的总体架构如图2所示。作者的目标是细化检测到的行为体的特征,目标和它们的基于两个图中捕获的上下文信息的交互:一个可视的st图和一个符号图。通过一种新的GNN来实现精化,该GNN a)通过利用边特征和学习针对不同节点和边类型的专门的基于注意力的邻域聚合函数来利用视觉st图的丰富结构&#x

这篇关于ECCV 2020 Representation Learning on Visual-Symbolic Graphs for Video Understanding的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/598574

相关文章

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

Apple quietly slips WebRTC audio, video into Safari's WebKit spec

转自:http://www.zdnet.com/article/apple-quietly-slips-webrtc-audio-video-into-safaris-webkit-spec/?from=timeline&isappinstalled=0 http://www.zdnet.com/article/apple-quietly-slips-webrtc-audio-video-

MonoHuman: Animatable Human Neural Field from Monocular Video 翻译

MonoHuman:来自单目视频的可动画人类神经场 摘要。利用自由视图控制来动画化虚拟化身对于诸如虚拟现实和数字娱乐之类的各种应用来说是至关重要的。已有的研究试图利用神经辐射场(NeRF)的表征能力从单目视频中重建人体。最近的工作提出将变形网络移植到NeRF中,以进一步模拟人类神经场的动力学,从而动画化逼真的人类运动。然而,这种流水线要么依赖于姿态相关的表示,要么由于帧无关的优化而缺乏运动一致性

简单的Q-learning|小明的一维世界(3)

简单的Q-learning|小明的一维世界(1) 简单的Q-learning|小明的一维世界(2) 一维的加速度世界 这个世界,小明只能控制自己的加速度,并且只能对加速度进行如下三种操作:增加1、减少1、或者不变。所以行动空间为: { u 1 = − 1 , u 2 = 0 , u 3 = 1 } \{u_1=-1, u_2=0, u_3=1\} {u1​=−1,u2​=0,u3​=1}

简单的Q-learning|小明的一维世界(2)

上篇介绍了小明的一维世界模型 、Q-learning的状态空间、行动空间、奖励函数、Q-table、Q table更新公式、以及从Q值导出策略的公式等。最后给出最简单的一维位置世界的Q-learning例子,从给出其状态空间、行动空间、以及稠密与稀疏两种奖励函数的设置方式。下面将继续深入,GO! 一维的速度世界 这个世界,小明只能控制自己的速度,并且只能对速度进行如下三种操作:增加1、减

论文精读-Supervised Raw Video Denoising with a Benchmark Dataset on Dynamic Scenes

论文精读-Supervised Raw Video Denoising with a Benchmark Dataset on Dynamic Scenes 优势 1、构建了一个用于监督原始视频去噪的基准数据集。为了多次捕捉瞬间,我们手动为对象s创建运动。在高ISO模式下捕获每一时刻的噪声帧,并通过对多个噪声帧进行平均得到相应的干净帧。 2、有效的原始视频去噪网络(RViDeNet),通过探

HumanNeRF:Free-viewpoint Rendering of Moving People from Monocular Video 翻译

HumanNeRF:单目视频中运动人物的自由视点绘制 引言。我们介绍了一种自由视点渲染方法- HumanNeRF -它适用于一个给定的单眼视频ofa人类执行复杂的身体运动,例如,从YouTube的视频。我们的方法可以在任何帧暂停视频,并从任意新的摄像机视点或甚至针对该特定帧和身体姿势的完整360度摄像机路径渲染主体。这项任务特别具有挑战性,因为它需要合成身体的照片级真实感细节,如从输入视频中可能

Understanding the GitHub Flow

这里看下Github的入门介绍    --链接 GitHub Flow is a lightweight, branch-based workflow that supports teams and projects where deployments are made regularly. This guide explains how and why GitHub Flow works

【Visual Studio 报错】未加载 wntdll.pdb(一种可行的解决办法)

调试程序时,会出现下面这个报错 分析原因: 出现未加载 wntdll.pdb 报错大概率是你的指针使用错误 ,比如使用野指针、越界访问、或者堆区空间释放方式错误等。 这里以 堆区空间释放方式错误 为例子 1、堆区开辟的数组空间使用 delete 释放 // 堆区开辟的数组空间使用 delete 释放int* p = new int[10];delete p; 正