ActivityNet Challenge 2017 冠军方案分享

简介:

任务介绍

此前我写过 Temporal Action Detection(时序行为检测)介绍一文介绍过 temporal action localization 方向(也可以叫做temporal action detection)。简单来说,temporal action localization是要在视频序列中确定动作发生的时间区间(包括开始时间与结束时间)以及动作的类别。这个问题与二维图像中的目标检测问题有很多相似之处。相关算法的算法内容一般可以分为两个部分:(1) temporal action proposal: 即进行时序动作提名,产生候选的视频时序片段,即相当于Faster-RCNN中的RPN网络的作用;(2) action classification: 即判断候选视频时序片段的动作类别。两个部分结合在一起,即实现了视频中的时序动作检测。

在今年的ActivityNet Challenge中,proposal 被单独作为了一项竞赛内容,因此我今年参与了proposal和localization两项任务。


ActivityNet Challenge 介绍


数据集

ActivityNet 听名字与ImageNet十分相似,是目前视频动作分析方向最大的数据集。 目前的ActivityNet dataset版本为1.3,包括20000个Youtube 视频(训练集包含约10000个视频,验证集和测试集各包含约5000个视频),共计约700小时的视频,平均每个视频上有1.5个动作标注(action instance)。

在ActivityNet Challenge 2016中,有 untrimmed video classification 以及 temporal action localization 两项任务,今年则扩充到了五项任务,其中Kinetics 和ActivityNet Captioning为今年新增的两个数据集。

  • untrimmed video classification (ActivityNet dataset ),
  • trimmed video classification (Kinetics dataset),
  • temporal action proposal (ActivityNet dataset),
  • temporal action localization (ActivityNet dataset),
  • dense video captioning (ActivityNet Captioning dataset).

下面对ActivityNet Challenge 17中的localization 以及 proposal两项任务的测评方式进行介绍。


测评方式-Temporal Action Localization

在 时序动作检测问题中,mean Average Precision (mAP) 是最常用的评估指标。此次竞赛计算0.5到0.95, 以0.05为步长的多个IoU阈值下的mAP,称为 Average mAP,作为最终的测评以及排名指标。相较于使用mAP@0.5 作为测评指标,Average mAP 更看重在较严格IoU阈值下的检测精度。


测评方式- Temporal Action Proposal

Proposal任务由于无需对时序片段进行分类,所以通常使用average recall (AR) 来进行评估。在此次竞赛中,Average Recall vs. Average Number of Proposals per Video (AR-AN) 曲线下的面积被作为最终的评测指标。举个例子,AN=50 时的AR分数 可以理解为对于每个视频,使用proposal set中分数最高的前50个proposal时,所能达到的召回率。下图为官方提供的baseline方法的AR-AN曲线。

在图中,虚线为不同阈值下的AR-AN曲线,实线为平均的AR-AN曲线,area=44.88即为实线下的面积,也是此任务的最终测评指标。


任务分析

如上所述,temporal action localization任务主要可以分为(1) temporal action proposal和 (2) action classification 两个部分。后者也就是action recognition方向,最近一两年时间,该方向的准确率已经被做到非常高了,我认为已经接近image classification的水平了。在ActivityNet 的untrimmed video classification 任务中,去年最高的Top-1 Accu 大概在88%,今年的第一名则提高到了95%左右。 然而,时序动作检测方向的检测效果较之 目标检测方向 依旧很低,各个数据集中,0.5 IoU阈值下的mAP都还没有超过 50%。基于上述的情况,我们认为问题的关键在于提高temporal action proposal 环节的效果,因此,此次竞赛我们主要专注于temporal action proposal 任务。


方案介绍

此次竞赛我们主要对我们此前投稿在ACM Multimedia的 SSAD [1] 模型 ( Single Shot Temporal Action Detection 论文介绍 )进行了改进。具体的方法介绍可以见竞赛算法报告(链接见开头)。算法的整体框架如下图所示。下面分别对各个部分进行简要的介绍。


特征提取

在特征提取阶段,我们主要将视频切分成16帧不重叠的单元,然后采用 two-stream network 提取特征。对于spatial network, 我们使用每个单元的中心帧提取特征;对于temporal network,我们则使用每个单元的中心6帧图像计算得到的光流图像提取特征。之后将两部分特征拼合即得到了最终的特征。此处之所以如此稀疏地提取特征,主要是因为ActivityNet数据集太大了,即便如此稀疏依旧花 了我十几天来提取特征(单块1080).


proposal 生成与修正

在该阶段,我们对SSAD模型进行了改进,改进的细节可见算法报告,改进后的模型称为Prop-SSAD。使用Prop-SSAD模型,对每个视频我们可以生成一个proposal 集合 , 该方法得到的集合在高IoU阈值下的AR较低,即边界不够准确。因此,我们还实现了CUHK 今年在[2]中提出的 TAG (Temporal Action Grouping) 方法来生成另外一组proposal 集合, 该方法得到的proposal的边界相对准确,但由于TAG方法缺乏对于每个proposal的评价,因此该方法在AN 较小时的AR比较差,导致最终的AR-AN 面积指标不高。因此,我们以为主体,使用 来进行边界的修正。

边界修正的规则也比较简单,对于中的每个proposal p,我们计算它与 中所有proposal的IoU,若最大的IoU高于0.75, 则用 p的边界去替代 中与最大IoU分数对应的的边界,从而实现边界修正。具体实施中加入了规则防止中的proposal被多次修正。

因此,经过proposal 生成 和边界修正两个步骤,我们就可以获得一个video上的 时序动作提名集合。该结果即为此次竞赛Temporal Action Proposal 任务的提交结果


temporal action localization

在获得了proposal后,我们还需要对其进行分类从而得到最终的localization结果。由于ActivityNet上大部分视频中只有一类动作,因此我们直接使用了video-level的分类结果作为对应视频所有proposal的类别。


实验结果

temporal action proposal

对于该任务,由于在测试集上只能看到最终的AR-AN面积指标,所以实验部分我们给出的是验证集上的结果。下表中是proposal 任务的基线方法,Prop-SSAD方法和 修正的Prop-SSAD方法的性能,可以看出边界的修正对于Proposal的召回率有进一步的提高效果。

对于修正的Prop-SSAD方法,使用官方提供的测试代码,我们还可以得到AR-AN曲线,如下图所示。

temporal action localization

如下表所示是我们的temporal action localization方法在 验证集上的效果。其中Ours@n 代表每个视频使用proposal 集合中的前n个proposal。从表中可以看出,proposal 集合中分数最靠前的一小部分proposal 贡献了大部分的localization mAP。

如下表所示是我们的方法在测试集上的效果,对照方法为此前该数据集上论文的效果,不包括此次竞赛的方法。可以看出,我们的方法比起此前的state-of-the-art方法提高了大约5%的mAP。



总结

基于上述的讨论与实验结果,我们主要有以下几点收获:

  • proposal的质量对后续localization的效果有很大的影响, 目前改进temporal action localization的重点在于提高proposal的质量
  • proposal 中最靠前的一小部分proposal 贡献大部分的localization mAP
  • 时序卷积以及 anchor 机制在时序动作提名与检测任务中能起到很好的效果

在后续的工作中我们会对此次的方案进行进一步的改进与优化,希望大家能关注我们的工作~


原文发布时间为:2017-09-13

本文作者:林天威

本文来自云栖社区合作伙伴极市网,了解相关信息可以关注极市网。

相关文章
|
监控 Ubuntu 安全
Ubuntu开启FTP服务教程
在Ubuntu服务器上配置FTP服务是一个常见的需求,无论是用于文件分享、网站管理还是数据备份。FTP(文件传输协议)是一种用于在网络上传输文件的协议,它可以让用户通过身份验证下载或上传文件。本文将指导您如何在Ubuntu系统上安装和配置FTP服务器,以及如何管理用户权限来保证服务器的安全性。
1943 0
|
机器学习/深度学习 算法 数据挖掘
使用高斯混合模型拆分多模态分布
本文介绍如何使用高斯混合模型将一维多模态分布拆分为多个分布。
294 3
|
9月前
|
人工智能 监控 搜索推荐
MedRAG:医学AI革命!知识图谱+四层诊断,临床准确率飙升11.32%
MedRAG是南洋理工大学推出的医学诊断模型,结合知识图谱与大语言模型,提升诊断准确率11.32%,支持多模态输入与智能提问,适用于急诊、慢性病管理等多种场景。
616 32
MedRAG:医学AI革命!知识图谱+四层诊断,临床准确率飙升11.32%
|
10月前
|
机器学习/深度学习 编解码 计算机视觉
YOLOv11改进策略【Head】| ASFF 自适应空间特征融合模块,改进检测头Detect_ASFF
YOLOv11改进策略【Head】| ASFF 自适应空间特征融合模块,改进检测头Detect_ASFF
1565 13
YOLOv11改进策略【Head】| ASFF 自适应空间特征融合模块,改进检测头Detect_ASFF
|
消息中间件 API 调度
TAG:BladeLLM 的纯异步推理架构
近期,大模型推理社区(vLLM,SGLang 等)普遍开始关注框架运行时开销,提出了多步调度、异步输出处理、独立 API Server 进程等工作,来分摊或掩盖部分开销。 在我们的实际业务场景中,也观察到高额的框架开销严重限制了系统吞吐,特别是在高并发(>1k)场景下,运行时开销已经接近或高于 GPU 运行时间,导致资源严重浪费和性能下降。为此,BladeLLM 设计并实现了基于 Python 的纯异步 LLM 推理架构 -- TAG (Totally Asynchronous Generator) ,以最大程度提高 GPU 利用率,提升引擎性能。
|
自然语言处理 资源调度 前端开发
前端大模型入门(四):不同文本分割器对比和效果展示-教你如何根据场景选择合适的长文本分割方式
本文详细介绍了五种Langchain文本分割器:`CharacterTextSplitter`、`RecursiveCharacterTextSplitter`、`TokenTextSplitter`、`MarkdownTextSplitter` 和 `LatexTextSplitter`,从原理、优缺点及适用场景等方面进行了对比分析,旨在帮助开发者选择最适合当前需求的文本分割工具,提高大模型应用的处理效率和效果。
2448 1
|
机器学习/深度学习 自然语言处理 算法
注意力机制(四)(多头注意力机制)
在上一篇注意力机制(三)(不同注意力机制对比)-CSDN博客,重点讲了针对QKV来源不同制造的注意力机制的一些变体,包括交叉注意力、自注意力等。这里再对注意力机制理解中的核心要点进行归纳整理
|
数据采集 存储 自然语言处理
【大模型】公主大人,别再用jieba做分词了!看看隔壁ChatGLM用了什么高科技!
【大模型】公主大人,别再用jieba做分词了!看看隔壁ChatGLM用了什么高科技!
404 0
|
JavaScript 前端开发 C++
【Vue.js的终极对决】服务端渲染VS客户端渲染:一场关乎速度与SEO的生死较量!
【8月更文挑战第30天】Vue.js 是一个流行的 JavaScript 框架,支持服务端渲染(SSR)和客户端渲染。SSR 在服务器生成完整 HTML,有利于 SEO 并缩短首屏加载时间,但增加服务器负担;客户端渲染则在浏览器生成页面,提升交互性,降低服务器负载。本文通过代码示例对比两者优劣,并提供选择指南,帮助开发者根据 SEO 需求、交互性需求及服务器资源等条件,选择合适的渲染方式,从而优化应用性能和用户体验。
345 0
|
监控 数据安全/隐私保护 Android开发
用最简单的方法下载微信视频号中的视频:微信视频号下载工具!
用最简单的方法下载微信视频号中的视频:微信视频号下载工具!
用最简单的方法下载微信视频号中的视频:微信视频号下载工具!