AAAI 2020 | 时间可以是二维的吗?基于二维时间图的视频内容片段检测
作者 | 彭厚文、傅建龙
来源 | 微软研究院AI头条
编者按:当时间从一维走向二维,时序信息处理问题中一种全新的建模思路由此产生。根据这种新思路及其产生的二维时间图概念,微软亚洲研究院提出一种新的解决时间定位问题的通用方法:二维时域邻近网络 2D-TAN,在基于自然语言描述的视频内容定位和视频内人体动作检测两个任务上验证了其有效性,并在 ICCV 2019 中的 HACS Action Localization Challenge 比赛中获得了第一,相关技术细节将发表于 AAAI 2020 论文“Learning 2D Temporal Adjacent Network for Moment Localization with Natural Language”。本文将对这一研究进行深入解读。
时间可以是二维的吗?这是一个好问题!
我们常常将物理世界定义为三维空间,将时间定义为一维空间。但是,这不是唯一的定义方式。最近,研究院的童鞋们大开脑洞,提出了一种新的时间表示方式,将时间定义成了二维的!
在二维空间里,时间是如何表达的呢?童鞋们给出的答案是这样的:在二维空间中,我们定义其中一个维度表示时间的开始时刻,另外一个维度表示时间的结束时刻;从而,二维空间中的每一个坐标点就可以表达一个时间片段(例如,从 A 时刻开始到 B 时刻结束的时间片),也可以是一个特定的时间点(例如,从 A 时刻开到 A 时刻结束,即为 A 时刻)。
这种二维时间定义的用途和意义在哪里呢?童鞋们认为这种新的时间定义方式,可以为时序信息处理问题提供一种新的建模思路,例如视频、语音、轨迹等时序信息的分析与处理。近期,他们已将这种新的时间表达方式,应用于视频内容理解中,并在视频内人体动作检测、视频内容片段定位任务中取得了优异的性能。值得一提的是,他们应用这种新的时间表达方式,结合最新的深度学习模型,在视频行为识别与检测竞赛(HACS Temporal Action Localization Challenge)中取得了第1名的成绩。
下面,就让我们了解一下这种二维时间表达方式是如何应用在视频内容理解任务中的。
基于二维时间图的视频内容片段定位
视频内容片段定位包含多个子任务,例如,基于自然语言描述的视频片段定位(moment localization with natural language)与视频内人体动作检测(temporal action localization)。前者需要根据用户给定的描述语句,从视频中定位文字所描述的视频片段的开始和结束时间点;后者则需要在给定的长视频中,检测出其存在的动作片段类别,并定位出动作开始和结束的时间点。
在这些任务中,一个通用的做法是预先设定一些候选视频片段(proposals/moments/ segments),再对每个片段的可能性进行相应的预测。然而在预测过程中,前人的工作通常只是对每个片段独立预测,却忽略了片段之间的依赖关系。为此,本文提出了二维时间图的概念,并通过二维时域邻近网络(2D Temporal Adjacent Network, i.e. 2D-TAN)来解决这一问题。该方法是一个解决时间定位问题的通用方法,不仅可以学习出片段之间的时域邻近关系,同时也能学习出更具有区分性的特征表达。
我们的方法在上述的视频内容片段定位任务上进行了验证。在基于自然语言描述的视频片段定位任务中,我们提出的 2D-TAN 方法在三个基准数据集均获得了良好的性能结果,相关论文已经被 AAAI 2020 接收[1]。在视频内人体动作检测中,我们基于 2D-TAN 的改进方案[2]在 HACS Temporal Action Localization Challenge 中获得第一。
下面以自然语言描述的视频内容片段定位为例介绍我们的工作,并简要介绍人体动作检测方面的拓展。
基于自然语言描述的视频片段定位
基于自然语言描述的视频片段定位任务是根据用户给定的描述语句,从视频中定位文字所描述的视频片段,并返回该片段的开始和结束时间,如图1所示。前人的工作都是独立地匹配句子和一个片段,而忽略了其他片段对其影响。当要处理涉及多片段的情况,尤其是片段之间存在依赖关系的时候,这种做法很难得到精确的结果。例如,当我们要定位“这个人又吹起了萨克斯 The guy plays the saxophone again”,如果只看后面的视频而不看前面的,我们不可能在视频中定位到这个片段。另一方面,有很多候选片段都与目标片段有重叠,例如图1中 Query B 下面所对应的多种片段。这些片段有着相似的视频内容,但是语义上会略有所不同。如果不将这些片段综合考虑来区分其中的细微差别,同样很难得到精确的结果。
图1:任务示意图。在二维时间图中,黑色坐标轴上的数字表示开始和结束的序号,灰色坐标轴上的数字表示序号所对应的时间点。二维时间图中方格的红色程度反映该片段与目标片段的重叠程度,取决于视频长度及采样比例。
为解决这一问题,我们提出了二维时域邻近网络(2D-TAN)。其核心思想是在二维时间图中做视频片段定位,如图1所示。具体来说,图中(i,j)表示的是一个从 i 到 (j+1) 的时间片段。该图包含多种长度的片段,并通过图中坐标的远近,我们可以定义这些片段之间的邻近关系。有了这些关系,我们的 2D-TAN 模型便可以对依赖关系进行建模。与此同时,不同片段与目标片段之间的重叠程度会有所不同。2D-TAN 通过整体考虑这些重叠上的差异,而非单独考虑每个片段,可以学习更具有区分性的特征,如图2。
图2:与前人方法的对比。绿色长方体表示候选片段与句子融合后的相似度特征。方框表示得分,方框红色的程度表示该片段与目标片段的重叠程度。左图表示前人的方法,独立预测各个片段的得分。右图表示我们的方法,预测当前片段的得分时,综合考虑了邻近片段的关系。
二维时域邻近网络(2D-TAN)
我们的 2D-TAN 模型如图3所示。该网络由三部分构成:一个用来提取自然语言文本特征的编码器,一个用来提取视频特征图的编码器,及一个用来定位的时域邻近网络。我们在下文具体介绍各部分。
图3:2D-TAN的框架示意图
语句的文本特征
我们将每个文本单词转换成 GloVe 词向量表达[4],再将词向量依次通过 LSTM 网络[5],使用其最后一层输出作为文本语句的特征。
视频的二维特征图
我们首先将视频分割成小的单元片段(clip),之后等距降采样到统一长度,再通过预训练好的网络抽取其特征。抽取好的特征通过卷积、池化操作获得最终的单元片段特征(clip feature),大小是 N×d^v。候选片段由一段连续的单元片段构成,不同候选片段长度可能会不同。为获得统一的特征表示,对于每一个候选片段,我们通过对其相应的单元片段序列最大池化(max-pooling)获得其最终特证。根据每个候选片段的始末时间点,我们将所有的候选片段重新排列成一个二维特征图,大小是 N×N×d^v。因为开始时间永远小于结束时间,特征图的下三角部分是无效的,因此我们将它们填充成0,且不参与后续的计算。
当 N 较大时,特征图的计算量也会随之增大,为解决此问题,我们还提出了一种稀疏图的构造策略,如图4所示。在该图中,我们根据片段的长短进行不同密度的采样。对于短片段,我们枚举出所有可能,进行密集采样。对于中等长度的片段,我们采样的步长设为2。对于长片段,我们采样的步长设为4。通过这种方式,我们可以降低因枚举所带来的计算开销,同时保证精度。所有未被选中的片段被填充为0,不参与后续的计算。
图4:当 N=64 时的候选片段。蓝色的方格表示选中参与候选的片段,灰色的方格表示未选中的片段。白色的方格表示无效的片段。
通过时间邻近网络定位
有了视频的二维特征图(图3中的蓝色立方体)和语句的文本特征(图3中的黄色长方体),我们首先将其特征图中每个位置的视频特征与文本特征融合,获得相似度的特征图(图3右图中左侧的绿色立方体)。然后,将融合后的相似度特征图通过一系列的卷积层,逐层建立其每个片段与周边片段之间的关系。最后,我们将这种考虑了邻近关系的相似度特征输入到全联接层中,获得最终的得分。
损失函数
在训练整个 2D-TAN 网络时,我们采用二元交叉熵(binary cross-entropy)作为损失函数,并使用经过线性变换的 interp-over-union (IoU)值作为损失函数中的标签(label)。
实验结果
我们在 Charades-STA [6]、ActivityNet Captions [7] 和 TACoS [8] 三个数据集中进行了测试。实验结果如表1-3所示。从实验结果中我们可以看出,在不同数据集的多种评价指标下,我们的方法均取得了优异的性能。值得注意的是,我们的方法在更苛刻的评价标准下的提升更为明显(如表1-3中 rank{1,5}@{0.5,0.7} 的表现),尤其是在 TACoS、Rank1@0.5 和 Rank5@0.5 两个上获得了5和14个百分点的提升。这些实验结果说明基于二维时间图邻近关系的建模对性能提升有很大的帮助。
表1:Charades-STA的实验结果。Pool和Conv表示两种不同的片段特征提取方式,下表同。
表2:ActivityNet Captions 的实验结果
表3:TACoS 的实验结果
基于二维时间图的人体动作检测
考虑到 2D-TAN 方法的通用性和其在基于自然语言的时间定位任务上的优异性能,我们在后续的工作中将其拓展到了视频内人体动作检测任务中。该任务需要在给定的长视频中,检测出视频中预定义的动作片段类别及其开始和结束时间点。一种通常的做法是将该任务拆分成两步,首先检测出哪些片段可能存在预定义动作的片段(proposal generation),然后预测这些候选片段可能所属的类别(classification)。考虑到这类做法的第一步和我们提出的 2D-TAN 方法很相关,本质上都是要解决片段之间的相互依赖关系的问题,因此我们用 2D-TAN 方法针对该任务进行了改进,如图5。
图5:S-2D-TAN 框架示意图
相较于基于自然语言描述的视频片段定位,视频内动作定位的目标片段往往比较短。因此需要的采样频率更高,采样的单元片段个数 N 也因此更大。相应地,在特征图中长片段的采样步长也会比较大,底层的卷积层往往感受不到足够的上下文信息。在图5中,红色虚线方框表示的是中等长度片段在第一层涉及到的邻近片段,而黄色虚线方框表示的是短片段要涉及的邻近片段。我们可以看出,黄色框涉及的上下文信息要比红色框的多。因此我们在 2D-TAN 的基础上,针对长片段上下文信息较少,设计了一个稀疏二维时域邻近网络(Sparse 2D Temporal Adjacent Network, i.e. S-2D-TAN)。该网络将稀疏图按照采样的步长,拆分成三个更紧凑的时域特征图。通过将不同特征图分别通过一个共享内核的卷积网络,从而使得长片段可从周围的特征中获得更多的上下文信息。
我们的算法在 ICCV 2019 中的 HACS Action Localization Challenge 比赛中获得了第一名的成绩。值得一提的是,HACS 目前是视频内人体动作检测任务中最大的数据集 [2]。更多细节请参考技术报告[3]。
图6:比赛获奖证书
结语
本文针对视频内容片段定位问题提出了一种二维时间图表示方式与一种新的时域邻近网络(2D-TAN),其有效性已在基于自然语言描述的视频内容定位和人体动作检测两个任务上得到了初步的验证。该方法目前仍处于一个初步探索的阶段:从网络结构的角度来说,当前的结构仅采用简单地堆叠卷积层的方式,相信进一步优化网络结构本身会带来性能上的提升。另一方面,从方法的通用性角度来说,目前我们仅验证了两个任务,仍有许多相关任务值得拓展,例如视频文本描述,视频内容问答,亦或是语音等其他包含时序信息的任务。
更多技术细节,详见论文:
Learning 2D Temporal Adjacent Network for Moment Localization with Natural Language
论文链接: https://arxiv.org/abs/1912.03590
代码链接: https://github.com/microsoft/2D-TAN
本文作者:彭厚文、张宋扬、傅建龙、罗杰波
参考文献
1.Songyang Zhang, Houwen Peng, JianlongFu and Jiebo Luo, “Learning 2D Temporal Adjacent Networks forMoment Localization with Natural Language”, AAAI 2020
2.Hang Zhao, Zhicheng Yan, Lorenzo Torresani and Antonio Torralba, “HACS: Human Action Clips and Segments Dataset for Recognition and Temporal Localization”, ICCV 2019
3.Songyang Zhang, Houwen Peng, Le Yang, Jianlong Fu and Jiebo Luo, “Learning Sparse 2D Temporal Adjacent Networks for Temporal Action Localization”, Technical Report
4.Jeffrey Pennington, Richard Socher and Christopher D. Manning, “GloVe: Global Vectors for Word Representation”, EMNLP 2014
5.Hochreiter, Sepp and Schmidhuber,Jurgen, “Long short-term memory”, Neural computation 1997
6.Jiyang Gao, Chen Sun, Zhenheng Yang and Ram Nevatia, “TALL: Temporal activity localization via language query”, ICCV2017
7.Ranjay Krishna, Kenji Hata, Frederic Ren, Li Fei-Fei, and Juan Carlos Niebles, “Dense-Captioning Events in Videos”, ICCV 2017
8.Michaela Regneri, Marcus Rohrbach, Dominikus Wetzel, Stefan Thater, and Bernt Schiele, and Manfred Pinkal, “Grounding action descriptions in videos”, TACL 2013
技术的道路一个人走着极为艰难?
一身的本领得不施展?
优质的文章得不到曝光?
别担心,
即刻起,CSDN 将为你带来创新创造创变展现的大舞台,
扫描下方二维码,欢迎加入 CSDN 「原力计划」!
(*本文为AI科技大本营转载文章,转载请联系原作者)
◆
精彩推荐
◆
推荐阅读
11年艺术学习“转投”数学,他出版首本TensorFlow中文教材,成为蚂蚁金服技术大军一员
清华官宣:前百度总裁张亚勤正式加盟清华大学
小米回应“米家”商标争议;人人 App 回归社交市场;TiDB 2.1.19 发布| 极客头条
迁移学习前沿研究亟需新鲜血液,深度学习理论不能掉链子
详解GPU技术关键参数和应用场景
链版“微信”,27 岁身价达 2.5 亿美元
“微软让我损失了两亿美金!”
太逆天!程序员当总统、拿下《国家地理》全球总冠军、成著名歌手!
区块链重塑人类社群生态
你点的每个“在看”,我都认真当成了AI
相关文章:

UITextField的代理方法
- (void)textFieldDidBeginEditing:(UITextField *)textField 当textField开始编辑的时候调用,可用完成如下的需求:点击textField可以使页面往上滑动 必须加上这句代码 [UIView animateWithDuration:.25 animations:^{ _scrollView.contentOffset CGPo…

以金山界面库(openkui)为例思考和分析界面库的设计和实现——问题
随着物质生活的丰富,人们的精神生活也越来越丰富。人们闲暇的时间也相对变多,于是很多人就开始寻找打发时间的方法。其中电视便是其中一种非常重要的消遣方式。假如我们打开电视机,看到了一个电视台正在播一部我们之前没看过的,正…
知识图谱,下一代数据中台的核心技术
作者 | 杨威,明略科技技术中心负责人 编辑 | 夕颜 出品 | AI科技大本营(ID:rgznai100) 本文为CSDN即将推出的《新战场:决胜中台》专刊的第 3 篇文章。 【导读】数据中台火的十分突然,似乎年前还在炒概念,年…

StoneAge Dict 技术方案的可行性[1]
上次和项目经理讨论了技术选型的事,现在简单地说一下,等下次开会再系统地讲。1. 平台环境:Java1.52. 用户接口:Web: JSP, JSFSpring2.5xDesktop: JavaFX3. 技术:dictzip(解析StarDict词库), XML因为StarDict是目前很受…

using的几种用途
using 常用来引用命名空间 1 using System; 2 using System.Data; 3 using System.Data.SqlClient; 4 using System.Collections.Generic; 5 using Model; 6 using IDAL; 7 using DBUnititly; using另一个用途是给类和命名空间指定别名 1 using spacename system.io2 3 using…

以金山界面库(openkui)为例思考和分析界面库的设计和实现——资源读取模块分析
按照软件的执行流程,我们首先遇到《以金山界面库(openkui)为例思考和分析界面库的设计和实现——问题》中提出的最后一个问题:界面描述文件的放置位置。我们曾提出一种方案:将界面描述文件打包后放在资源文件中&#x…
开发者如何赶上5G风口?
随着5G正式步入商用,5G 技术引发广泛关注。据信息通信研究院《5G经济社会影响白皮书》预测,2030年,5G将直接带动的总产出、经济增加值、就业机会分别为6.3万亿元、2.9万亿元和800万个。据BOSS直聘 《2019年5G相关人才数据观察》报告指出&…

使用C# 3.0编译器编译 Asp.Net 项目代码
只需要在 web.config 里添加这样的一段设置就OK了:<configuration><system.codedom><compilers><compiler language"c#;cs;csharp"extension".cs"type"Microsoft.CSharp.CSharpCodeProvider,System, Version2.0.0.0, Cultureneu…

java 它 引用(基本类型的包装,构造函数和析构函数c++不同)
一个:java 和c参考控制 他提到引用,我们会想到java它不喜欢c里面的指针。当然java内引用和c里面的引用是不同的。 比如: 比方C中,我对某一个函数的声明。int a(int &b),b即为引用类型,函数内b的改动能够…

使用程序解决一道逻辑推理题
今天看朋友发了一个老问题,一道很有意思的推理题:(转载请指明出于breaksoftware的csdn博客) 小明和小强都是张老师的学生,张老师的生日是M月N日,2人都知道张老师的生日是下列10组中的一天: 3月4…

AjaxControlToolKit之DragPanelExtender用法
1、将控件ToolkitScriptManager拖至页面中...2、定义3个Panel,用于实现窗体拖动效果,代码如下:1<body>2<form id"form1"runat"server">3<div>4<cc1:ToolkitScriptManager ID"ToolkitScriptMan…
自带数据线的迷你数显充电宝,旅途必备
还有20多天就过年了有件极其考验情商的事情也来临了就是我们这群90后过年最怕的事情——相亲但是在尴尬的场合手机可是一个缓解气氛的好东西不管是想要选择看电影,还是找附近的游玩只要有手机,就可以从容不迫的应对但是带手机最尴尬的事情莫过于结账的时…

SpringJDBC的简单应用
此处写上应用JdbcTemplate的dao操作数据库的一些代码(含基本的增删改查,注:重点是查询出多条语句的写法): package org.sakaiproject.zhaorui.dao.impl;import java.sql.ResultSet;import java.sql.SQLException;impor…

WMI技术介绍和应用——查询硬件信息
这个月实在太忙了,一直没有时间去继续写WMI的应用例子。 本来是希望将《WMI技术介绍和应用》系列博文写的像WMI百科全书般,但是貌似对这个技术感兴趣的同学并不多,所以我决定对部分知识点点到为止,有需求的同学可以查询MSDN相关类…
微软开源的自动机器学习工具上新了:NNI概览及新功能详解
作者 | 宋驰来源 | 微软研究院AI头条(ID: MSRAsia)2018年9月,微软亚洲研究院发布了第一版 NNI (Neural Network Intelligence) ,目前已在 GitHub 上获得 3.8K 星,成为最热门的自动机器学习(AutoMLÿ…

10624 - Super Number
题目链接 题意:给出n到m的范围,求出一个数在前i位数组成的数字能被i整除。假设存在输出这个数,假设不存在。输出-1. 思路:回溯,每次放第i位,然后推断是否符合题意。这题踩着时间过去的2.6s(看了…

2008找回企业久违的网速
曾几何时,单位上网访访问页面也是忽忽的,等待10秒简直是不可忍受;曾几何时,公司网络下载是嗖嗖的,转眼已是2M开外;曾几何时,办公室上网看视频是杠杠的,那流畅那画面都快赶上电视直播…

发现一个windows7(32bit或64bit)DirectUI的bug
前段时间发现一个windows7的一个bug,不是什么严重的问题,我在此记录下。(转载请指明出于breaksoftware的csdn博客) 重现步骤如下: 0 在文件夹的“更改您的视图”中选择下图中用红色叉叉标记的项 1 新建一个文件夹名为“Cs" 2…
阿里达摩院2020趋势第一弹:感知智能的“天花板”和认知智能的“野望”
作者 | Just出品 | AI科技大本营(ID:rgznai100)“感知智能与认知智能是相辅相成的关系。认知智能需要感知系统来进行信号处理和概念识别,而感知系统也需要认知系统的反馈来决定如何进行更有效的提取和识别。”1月2日,阿里巴巴达摩…

Java 对synchronized的补充Lock锁
Java并发编程:Lock 从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。 也许有朋友会问,既然都可以通过synchronized来实现同步访问了,那么为什么还需要提供Lock࿱…
有奖评选 | 2020年的AI技术公开课,你想听到哪些干货?
CSDN技术公开课有奖评选开始啦~~听过课的小伙伴们,哪位讲师的分享让你获益匪浅?记得给TA投票哦!投票后获取入群方式,参与抽奖,奖品很丰厚哦~~进入付费时代,如今我们看似只要招招手,一切知识随手…
一个分析“文件夹”选择框实现方法的过程
在软件开发中,我们如果存在“导入导出”的场景时,难免会用到“文件夹”选择框。之前一直没有太关注过这个的实现过程。最近在工作中遇到了一些问题,我做了一些研究。在此记录下研究的过程。(转载请指明出于breaksoftware的csdn博客…

Openssl req命令
一、简介 req指令用来创建和处理PKCS#10格式的证书 二、语法 openssl req [-inform PEM|DER] [-outform PEM|DER] [-in filename] [-out filename] [-text] [-pubkey] [-noout] [-verify] [-modulus] [-nodes] [-subject] [-passin arg] [-passout arg] [-key filename] [-key…
使用windbg抓取崩溃文件和分析的过程
在软件编程中,崩溃的场景比较常见的。且说微软技术再牛X,也是会出现崩溃的场景。网上有一段Win98当着比尔盖茨蓝屏的视频非常有意思。 (转载请指明出于breaksoftware的csdn博客)我们身边的很多软件都引入了dump生成和收集机制。但…
TF 2.1.0-rc2发布,2020年停止支持Python 2
作者 | 神经星星来源 | HyperAI超神经(ID:HyperAI)【导读】2020 年 1 月 1 日,Python 2 停止维护,正式退休。Python 3 全面登场的时刻,TensorFlow 也在悄悄改变。近日 TensorFlow 官方 GitHub 账号中,发布了…

重新认识笔记本锂电池的保养
重新认识笔记本锂电池的保养 对于笔记本电脑来说,电池可以说是一个比较重要的部件,它的效能直接关系到笔记本电脑在缺少电源的环境中的工作能力。而电池在笔记本电脑的众组件中又算是一个不折不扣的消耗品,因此涉及到笔记本电脑电池的保养和合…

nginx转发及后端服务器获取真实client的IP
针对nginx的模块介绍可以查阅wiki:http://wiki.nginx.org/Modules常用模块:HTTP CoreProxyRewriteUpstream 原理:squid,varnish以及nginx等,在做反向代理的时候,因为要代替客户端去访问服务器,所以…

AJAX的组成应用
表示层XHTMLCSS 动态显示和数据 DOM (文档对象模型)数据交互和操作 XML,XSLT 异步数据获取 XMLHttpRequest 绑定和处理数据 JavaScript XMLhttpRequest对象属性:Number readyState 4 表示完成Function onreadystatechange 回调函数string responseText XMLDocument responseXM…
打开,保存文件框的文本溢出排查
工作中遇到的这个问题还是很有意思的。其中嵌套了很多奇葩性的问题。 (转载请指明出于breaksoftware的csdn博客)我们来看下故事的发生过程,QA同学发现我们存在如下的bug 看到如此多的串,可以认为这个是典型的溢出问题。后来我咨询…
2020年,为什么说入坑AI是最好的时机?
2019年可以说是AI全面落地和商用的一年,产业智能化成为各个行业重点关注的发展方向,交通、工业、农业、医疗等主流行业无一例外。随着人工智能技术的进一步发展和落地,深度学习、数据挖掘、自动程序设计等领域也将在更多应用场景中得到实现。…