速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

BC-GNN:用于时序动作提名生成任务的融合边界内容的图神经网络

  • 2020-08-11
  • 本文字数:2967 字

    阅读完需:约 10 分钟

BC-GNN:用于时序动作提名生成任务的融合边界内容的图神经网络

近日,计算机视觉顶会 ECCV 2020 已正式公布论文接收结果。本文介绍的是来自爱奇艺团队的一篇论文,研究者提出了 Boundary Content Graph Neural Network (BC-GNN),通过图神经网络对边界和内容预测之间的关系进行建模,生成更精确的时序边界和可靠的内容置信度分数。

概述

时序动作提名生成(Temporal action proposal generation)任务需要从未处理的长视频中精确定位包含高质量动作内容的片段,该任务在视频理解中起着重要的作用。现有的方法多采用先生成起止边界,再将起止边界组合成候选动作提名,然后再生成候选时序片段的内容置信度,这种处理方式忽略了边界预测与内容预测之间的联系。


为了解决这个问题,爱奇艺提出了 Boundary Content Graph Neural Network (BC-GNN),通过图神经网络对边界和内容预测之间的关系进行建模,通过利用两者之间的内在联系生成更精确的时序边界和可靠的内容置信度分数。


在 BC-GNN 中, 将候选时序片段的内容(content)作为图的边(edge),将候选时序片段的边界(boundary,开始点和结束点)作为图的节点(node),然后设计了一种更新边和节点特征的推理方法,将更新之后的特征用来预测起始点概率和内容的置信度,最终生成高质量的 proposal。 这一 方法最终在 ActivityNet-1.3 和 THUMOS14 这两个公开数据集的时序动作提名生成任务以及时序行为检测任务上均达到了领先水平。

方法介绍


上图是 BC-GNN 的整体框架图,主要包括五个流程,分别为:


1)特征提取(Feature Encoding)


2)基础模块(Base Module)


3)图构建模块(Graph Construction Module,GCM)


4)图推理模块(Graph Reasoning Module,GRM)


5)输出模块 (Output Module)

特征提取模块

我们使用在视频行为识别中取得良好效果的 two-stream 网络将视频编码成特征。Two-stream 由 spatial 和 temporal 两个分支网络构成,spatial 分支网络的输入是单张 rgb 图像,用来提取空间特征,temporal 分支网络的输入是多张光流图像,用来提取运动特征。对于一个未处理的长视频,将对应的视频帧切分为 T 个可处理单元(snippet),每个可处理单元经 two-stream 之后被编码成为 D 维的特征向量,其中 D 维特征向量由 spatial 和 temporal 分支网络的最后一层输出拼接而成,从而视频被编码成一个 TxD 的特征矩阵,T 是特征序列的长度,D 表示特征的维度。


BC-GNN 主要包括四个模块:基础模块、图构建模块、图推理模块和输出模块。

基础模块

基础模块由两层 1D 卷积组成,主要用来扩大感受野并作为整个网络的基础。

图构建模块


图构建模块用来构建一个边界内容图,构建图的过程如上图所示。


我们构建的边界内容图是一个二分图,二分图是一类特殊的 ,它的顶点由两个 独立集UV 组成,并且所有的边都是连结一个 U 中的点和一个 V 中的点。


在构建图的过程中,视频的每个处理单元 snippet 对应的时刻可以看作是 proposal 的起始点和结束点,从而可以得到起始点集合 Ns 和结束点集合 NeNsNe 作为边界内容图的两个互相独立的顶点集。用 ts,ite,j 分别表示 Ns 中的任意起始点 ns,iNe 中的任意结束点 ne,j 对应的时刻,其中 i , j =1,2,…,T,当满足 te,j > ts,ins,ine,j 之间有边连接,用 di,j 表示。


当连接起始点和结束点之间的边没有方向时可以得到(a)所示的无向图。由于起始点代表 proposal 的开始时间,结束点代表 proposal 的结束时间,连接起始点和结束点的边应该带有方向性,并且从起始点到结束点的边代表的信息与从结束点到起始点的边代表的信息是不同的,因此我们将(a)所示的无向图转换为图(b)所示的有向图。具体的转换过程为,将无向图中的无向边分成两个有相同节点和相反方向的有向边。


在进行图推理操作之前,我们为构建的边界内容图中的每个节点和边赋予其特征。为了得到节点和边的特征,我们在基础模块后面连接三个并行的 1D 卷积,从而得到三个特征矩阵,分别为起始点特征矩阵 Fs 、结束点特征矩阵 Fe 和内容特征矩阵 Fc ,这三个特征矩阵的时间维度和特征维度均相同,大小为 TxD’。对于任意起始节点 ns,i ,对应的时间为 ts,i ,则该节点的特征为 Fs 特征矩阵第 i -1 行对应的特征向量。同理,对于任意的结束节点 ne,j ,其特征为 Fe 特征矩阵第 j -1 行对应的特征向量。若 ns,ine,j 之间有边连接,边 di,j 对应的特征获取过程为:


1)首先对 Fc 特征矩阵第 i -1 行到 j -1 对应的特征矩阵在时序方向上进行线性插值,得到固定大小的特征矩阵 NxD’(N 为人为设置的常数);


2) 然后将 NxD’转化为(NxD’)x1;


3)在(N·D’)x1 特征后连接一个全连接层,得到维度为 D’的特征向量即为边 di,j 对应的特征。在有向图中,节点和边的特征更新之前,连接两个节点方向不同的两条边共享同一个特征向量。

图推理模块

为了实现节点和边缘之间的信息交换,爱奇艺提出了一种新的图推理方法,该推理方法可分为边特征更新和节点特征更新两个步骤。边特征更新步骤旨在汇总有边连接的两个节点的属性,更新过程如下所示:



其中 σ 表示激活函数 ReLU, θ s2e 和 θ e2s 代表不同的可训练的参数,×代表矩阵相乘,∗代表 element-wise 相乘。


节点特征更新步骤旨在聚合边及其相邻节点的属性,更新过程如下所示:




其中 e ( h , t )表示从头结点 h 指向尾节点 t 的边对应的特征,K 表示以 h 为头节点的边的总数。为了避免输出特征数值规模的增加,我们在更新节点特征前先对对应的边的特征进行归一化,之后再把更新后的边的特征作为相应头结点特征的权重。 σ 表示激活函数 ReLU, θnode 代表可训练的参数。

输出模块

如 BC-GNN 的整体框架图所示,候选 proposal 由一对节点与连接它的边产生,并且其起始点、结束点和内容的置信度分别基于更新后的节点特征和边特征生成,具体过程如下所示:


实验

我们在 ActivityNet-1.3 和 THUMOS-14 这两个公开数据集上分别进行时序动作提名生成实验和时序行为检测实验。


1)时序动作提名生成实验:




从上面两个表中可以看出,我们在两个通用的数据集上的效果均达到领先水平。


2)时序行为检测实验:




采用对 proposal 进行分类的方式得到时序行为检测结果,从上面两个图中可以看出,在两个数据上我们提出的方法均取得领先的结果。


3)消融实验:


在 BC-GNN 算法中,相比于直接使用传统的 GCN,将无向图转变成有向图,并且增加了边特征更新步骤,为了验证这两个策略的有效性,在 ActivityNet-1.3 数据集的时序动作提名生成任务上进行了消融实验。从下图的表格和结果曲线上可以看出,这两种策略均有利于结果的提升。



创新点

相比于目前通用的将边界预测与内容预测划分为两个步骤的算法,本文提出的方法使用图神经网络,对边界预测与内容预测的关系进行建模,将边界预测和内容预测的过程联系起来。高质量的动作内容有利于边界的调整,同时精确的边界定位会帮助内容置信度的预测。此外,我们还提出一种新的图推理方法,融合边界信息和内容信息去更新对应的节点和边的信息。本文提出的对有关联的两个步骤进行建模的方法可以应用于其他相似任务中。


包括本文在内,目前学术界在时序行为检测任务上取得不错效果的方法大多采用先提取动作提名再对动作提名进行分类的方法,这种两阶段的方式增加了整个流程的复杂度和运算量,未来将针对这类问题将有更多的设计与探索。


论文收录链接:


https://eccv2020.eu/accepted-papers


论文原文链接:


http://arxiv.org/abs/2008.01432


2020-08-11 17:491605

评论

发布
暂无评论
发现更多内容

性能加速最高可达28倍!这个NLP工具包不容错过

百度开发者中心

预训练模型 NLP 大模型

阿里技术官耗时半年总结出“满分”架构笔记,拿捏分布式到微服务

进击的王小二

Java 架构 分布式 微服务

架构师一定要看!微服务设计的四个原则

Java 程序员 架构 面试 后端

☕【Java技术指南】「编译器专题」深入分析探究“静态编译器”(JAVA\IDEA\ECJ编译器)是否可以实现代码优化?

洛神灬殇

Java 编译器 静态编译器 10月月更

Java核心基础——注解

老农小江

注解 java

极光笔记丨iOS 15推送新特性

极光JIGUANG

ios 消息推送 移动端

涨薪60%,从美团干到阿里p7,这份Github上的面试笔记把所有Java知识都写出来了

Java 程序员 架构 面试 后端

三面阿里,有惊无险成功拿到offer定级P7,只能说是真的难

Java 编程 java架构

容器化 | ClickHouse Operator 原理解析

RadonDB

数据库 Kubernetes Clickhouse

亿级流量架构演进实战 | 从零构建亿级流量API网关 01

松然聊技术

亿级架构

亿级流量架构演进实战 | 从零构建亿级流量API网关 02

松然聊技术

亿级架构

MySQL索引总结:14张图+代码+文字

Java MySQL 数据库 架构 后端

太香了!Github疯传的阿里分布式设计实录让面试进阶齐飞!

Java 程序员 架构 面试 后端

怎么阅读 Linux 内核源码

程序员小呆

Java Linux 程序员 架构师

第 17 章 -《Linux 一学就会》- Linux计划任务与日志的管理

学神来啦

Linux 运维 linux学习 linux云计算 linux基础

211本+985硕+计算机专业投面百度,坐等一周迎来三面,已拿offer

Java 学习 程序员 架构 大厂面试

接连三次霸榜GitHub,这个国产GitHub项目是真的强...

百度开发者中心

最佳实践 方法论 百度飞桨 开源技术

索信达助力国有大行提升监管报送质量

索信达控股

大数据 数据治理 金融监管 金融行业 银行业

Python代码阅读(第37篇):获取两个列表中相同的元素

Felix

Python 编程 Code Programing 阅读代码

百亿级系统架构首公开!阿里这份300多页的设计实录你还没有吗?

Java 程序员 架构 面试 后端

量化模拟线上流量实践

FunTester

性能测试 接口测试 测试框架 FunTester 线上流量

数据上报那些事

神策技术社区

数据 神策数据

优酷鸿蒙开发实践 | 鸿蒙卡片开发

阿里巴巴终端技术

ios android HarmonyOS 优酷 移动端

云栖大会|盛宴之下,共赴一场视频云的进化论

阿里云CloudImagine

阿里云 音视频 WebRTC 视频云 云栖大会

一篇神文让你"一夜封神"Mycat中间件(最详细讲解)

程序员小呆

Java 程序员 架构师 mycat

金九银十吃透这份Spring Boot实战文档,让你超过90%的Java面试者

Java 编程 架构 面试 springboot

明道云APaaS在保险业中的应用场景例举

明道云

Python 的 sum():Pythonic 的求和方法

华为云开发者联盟

Python 列表 元组 Pythonic 求和

遭 GitHub 连夜封杀下架?被泄露的阿里内部 Java 面试手册到底有多强?

收到请回复

Java 面试 阿里 大厂Offer

Apache ShardingSphere 在京东白条场景的落地之旅

SphereEx

开源 数据架构 架构设计 ShardingSphere SphereEx

一篇神文让你深入理解计算机系统——学习笔记

程序员小呆

Java 程序员 架构师 计算机

BC-GNN:用于时序动作提名生成任务的融合边界内容的图神经网络_AI&大模型_爱奇艺技术产品团队_InfoQ精选文章