ICCV2023 | 基于动作敏感性学习的时序动作定位

b7b8d4d0b5b3741ce34faaba95b7862d.gif

淘天集团-内容理解算法团队与浙江大学杨易教授团队合作的关于视频时序定位的论文被ICCV2023录取。

0dd958933037b25232284200fac82008.png

本文在业界首次将视频帧级别的细粒度信息引入至时序动作定位领域(Temporal Action Localization,TAL),对于时序动作定位任务,在单一标注(single-labeled)、密集标注(dense-labeled)和第一人称视角(egocentric)等类型数据集上,性能普遍超过SOTA。

24b963bfada61db555e81ea1b49ff856.png

动机

视频时序动作定位(Temporal Action Localization,TAL)是视频理解领域一个重要的任务。这个任务需要对于给定的视频,识别出其中所有发生的动作,同时定位出每个动作发生的起始时间。视频时序动作定位的方法可以广泛应用于高光检测、行为监控以及短视频分析等领域。

在过去对这个任务的处理中,大多数方法或是建立整体的时序提议,再对其做分类和定位;或是直接对不同帧同等地进行预测。但事实上,我们发现视频中动作内部的帧是有不同重要性的。以图1为例,对于晾衣服动作,描绘“把衣服晾到衣架上”的帧对于识别出这个动作最重要,描绘“拿出衣服”的帧对于定位出这个动作的开始最重要。而一些例如转场或模糊的帧则不具有很高的重要度。

因此我们提出用动作敏感度来表征帧的重要度,提出动作敏感性学习(action sensitivity learning),对于每一帧的动作敏感度进行建模,并将学习到的敏感度应用于损失函数中,以促进模型更关注重要的帧,从而更好的训练。

bacdc0c8953ca7fb4fbdeac8a043fbe5.png

图1: 晾衣服为案例的动机说明

21a6a75479cc61654629d1db862bf4d1.png

观察和动机

263dd4b2baa18ce4d4095ea1885d2773.png

图2:动作敏感性学习框架图

考虑到每种动作都有其本质的行为模式,但这种模式又在不同的场景或行为主体下有不同的偏移,因此我们提出从类别级别和实例级别对动作敏感性进行建模。同时,对于动作定位子任务,由于边界的不确定性和边界附近帧的不同语义信息,最敏感的帧也不一定在边界处,因此我们分别对动作分类和动作定位两个子任务都进行动作敏感性学习。整体的框架图如图2所示。

在类别级别的建模中,由于视频本身信息具有连续性,且存在一些关键帧,因此我们提出为每种动作使用一个可学习的高斯分布来建模其类别级别的动作敏感性。具体而言,针对分类子任务的类别级别动作敏感性pcls建模为:

437f044b1c4a1fe181c2a3812aa89ccd.png

针对定位子任务的类别级别动作敏感性ploc建模为:

6e0c15c57b115947e4ac5a5580ee83a9.png

其中μc,σc为可学习的参数。

在实例级别的建模中,考虑到重要的帧往往做出的预测质量比较高,模糊帧则相反,因此我们提出建立每一帧的预测质量,用质量来指导实例级别的学习。具体而言,以针对分类子任务的实例级别动作敏感性为例,我们首先通过实例建模网络预测实例级别的动作敏感性结果qcls,之后通过分类分数和时序维度上与真值的重叠度得到质量分数Q:

4e71575864772e35462fe33da2357466.png

然后基于MSE损失,学习实例建模网络:

7b72f51e414607350de9a4f8edea762f.png

最后我们将类别级别和实例级别的动作敏感度做和,并嵌入到损失函数中:

62b3055e567e0277fb26e4b9465ecc18.png

具体而言,我们对每一帧都通过Focal损失进行分类的学习,对每一个在动作内部的帧都基于DIoU损失进行回归的学习,在此基础上每一帧的损失函数前再乘以学习到的动作敏感度:

121e799f63e71d71c21a033602475c17.png

bae211a7f9cd5568541b2615b651ea34.png

此外,我们还引入了动作敏感度对比学习损失来进一步增强特征,具体而言,我们通过上文的动作敏感性学习,得到针对两个子任务的敏感特征,将这两部分作为正样本,同时将其他不同动作类别以及背景帧作为负样本,基于InfoNCE的形式进行学习:

77ba6c32713f069ea2071328d8828354.png

因而最终的损失函数表示为:

996f96b595b2d388565a660dac4616a3.png

74c936de6d6abd00b4a5907d2050dfa5.png

实验

我们在3大类共6个数据集上验证了我们的方法,包括:密集标注的MultiThumos和Charades,见表1,我们提出的方法在average mAP指标上大幅超越以往方法。

58dd00542935298bdcdd031efd558cde.png

表1: 在MultiThumos和Charades上的结果

密集标注且第一人称视角的Ego4D-Moment Query,见表2,在使用相同特征且公平对比下,我们的方法同样在验证集和测试集上都优于过去方法。

bdca63e59bec82af7fa06965ddfae299.png

表2:在Ego4D Moment Queries上的结果

单一标注的Thumos14和ActivityNet,见表3,由于在单一标注数据集上动作实例较少,我们提出方法中的对比学习部分收益较少,但整体仍然优于之前的SOTA方法。

e8b713b5727fa11327beca7317dbb43c.png

表3:在Thumos和ActivityNet上的结果

表4展示了部分消融实验结果,ASL结构中类别级别建模、实例级别建模都挖掘了帧之间不同的重要性,进而提升了average mAP指标。而融合了动作敏感性对比学习损失后,进一步增强了特征,获得了最佳性能。

3e4cddfad3eed7f5c89b4424aea5f13e.png

表4:在MultiThumos上的消融实验

图3展示了ASL的可视化结果,表明了我们提出的方法能够找到动作内部一些重要的帧(如描绘“把衣服晾到衣架上”,“水流流经手”的这些帧对于分类子任务具有了较高的重要度),而一些转场、模糊的帧则被赋予了较低的重要度。

6961a61b2ac5f496304940206f5517d3.png

图3: 部分可视化结果

c5e1bc65683d919ec3653fa85da63cf3.jpeg

总结

本文从挖掘动作内部不同帧的不同重要性入手,提出了动作敏感性学习(ASL)。通过从类别级别和实例级别建模的方式,学习到每一帧的敏感度,并融入进损失函数中,以促进模型更好的训练。同时还提出敏感度对比学习损失,进一步加强特征。本文提出的方法刷新了多个数据集时序动作定位任务的SOTA指标。相关算法将会有助于进一步提高淘宝短视频内容理解的精准性。

ba6c69a02280c39363ee9555ce2adb52.jpeg

Reference

  1. Zhang C L, Wu J, Li Y. Actionformer: Localizing moments of actions with transformers[C]//European Conference on Computer Vision. Cham: Springer Nature Switzerland, 2022: 492-510.

  2. Yeung S, Russakovsky O, Jin N, et al. Every moment counts: Dense detailed labeling of actions in complex videos[J]. International Journal of Computer Vision, 2018, 126: 375-389.

  3. Caba Heilbron F, Escorcia V, Ghanem B, et al. Activitynet: A large-scale video benchmark for human activity understanding[C]//Proceedings of the ieee conference on computer vision and pattern recognition. 2015: 961-970.

  4. Grauman K, Westbury A, Byrne E, et al. Ego4d: Around the world in 3,000 hours of egocentric video[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2022: 18995-19012.

  5. Sigurdsson G A, Gupta A, Schmid C, et al. Charades-ego: A large-scale dataset of paired third and first person videos[J]. arXiv preprint arXiv:1804.09626, 2018.

  6. Damen D, Doughty H, Farinella G M, et al. Scaling egocentric vision: The epic-kitchens dataset[C]//Proceedings of the European conference on computer vision (ECCV). 2018: 720-736.

  7. Yu-Gang Jiang, Jingen Liu, A Roshan Zamir, George Toderici, Ivan Laptev, Mubarak Shah, Rahul Sukthankar. Thumos challenge: Action recognition with a large number of classes. 2014

700914df98364c8095a2f581465a9f42.jpeg

团队介绍

淘天集团-算法技术-内容理解团队,依托淘天亿级的视频数据,构建完善的内容理解体系,支撑淘宝信息流、逛逛、淘宝直播、点淘等淘系核心业务。团队成员曾多次获得CVPR、ICCV等顶会竞赛冠军,积累的多项多模态理解能力,发布在如NIPS、CVPR、ICCV、ECCV、TPAMI、TIP、MM等顶级和期刊上。

ee3f3c3927ead08f18639a3f092af862.jpeg

团队介绍

淘天集团-算法技术-内容理解团队,依托淘天亿级的视频数据,构建完善的内容理解体系,支撑淘宝信息流、逛逛、淘宝直播、点淘等淘系核心业务。团队成员曾多次获得CVPR、ICCV等顶会竞赛冠军,积累的多项多模态理解能力,发布在如NIPS、CVPR、ICCV、ECCV、TPAMI、TIP、MM等顶级和期刊上。

¤ 拓展阅读 ¤

3DXR技术 | 终端技术 | 音视频技术

服务端技术 | 技术质量 | 数据算法

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

appium2.0+ 单点触控和多点触控新的解决方案

在 appium2.0 之前,在移动端设备上的触屏操作,单手指触屏和多手指触屏分别是由 TouchAction 类,Multiaction 类实现的。 在 appium2.0 之后,这 2 个方法将会被舍弃。 "[Deprecated] TouchAction action is deprecated. Ple…

Docker基本部署和相关操作

1.安装docker服务,配置镜像加速器 1、yum安装并且添加源信息 yum install yum-utils device-mapper-persistent-data lvm2 -y yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo2、修改一些配置信息 sed…

Ajax+Vue+ElementUI

文章目录 1.Ajax1.1 介绍1.2 Ajax快速入门1.3 案例-用户注册时,检测用户名是否数据库已经存在1.4 Axios1.4.1 Axios快速入门1.4.2 请求别名 1.5 JSON1.5.1 Json的基础语法1.5.2 FastJson的使用5.3.2 Fastjson 使用 2. Vue2.1 介绍2.2 Vue快速入门2.3 Vue常用指令和生…

SpringBoot 调用外部接口

SpringBoot 调用外部接口 一、第一种方式(HttpClient等) 使用插件方式,比如自带的HttpClient,或者OkHttp,甚至是原生的HttpURLConnection 等等,这里以HttpClient为例。 1、封装工具类 简单封装的get请求 /*** 发送get请求:带请求…

软年架构复用-架构师之路(十一)

软件架构复用 软件产品线是 一组产业密集型系统,规定用公用的 核心资产集成 开发而来。 机会复用 和 系统复用。 机会复用:临时发现有可服用资产立马复用。 系统复用:开发之前进行规划好哪些需要复用。 复用的三个阶段: 获取到…

配置禁止生成可执行文件-火绒法

防止黑客利用漏洞上传可执行文件的方法,可以尝试通过文件服务器资源管理器(FSRM)设置文件屏蔽防止黑客利用漏洞上传特定类型的非法文件(.asp .aspx .jsp .php)。要是系统问题不能使用(FSRM),可以用火绒来干这个事儿。方法如下: 配置方法 火…

Vue报错 TypeError: this.getOptions is not a function

一般而言这是因为sass而报出来的错误 我们先删除node_modules,然后重新安装依赖 如果使用的是node-sass,则需要考虑正确的版本 示例 npm install sass-loader7.3.1 node-sass4.14.1 --save-dev 如果使用的是sass,则使用以下命令 npm i -…

springboot2+redis 订阅发布,解决接收消息累计线程到内存溢出,使用自定义线程池接收消息

pom 添加redis <!-- redis 缓存操作 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency> 发布消息 import lombok.extern.slf4j.Slf4j; import o…

HTTP协议(JavaEE初阶系列15)

目录 前言&#xff1a; 1.HTTP协议 1.1HTTP协议是什么 1.2HTTP协议的报文格式 1.2.1抓包工具的使用 1.2.2HTTP请求 1.2.3HTTP响应 2.HTTP请求 2.1首行的组成 2.2.1URL的组成 2.2认识“方法”&#xff08;method&#xff09; 2.2.1GET方法 2.2.2POST方法 2.2.3GET…

内网安全:WMI协议与SMB协议横向移动

目录 网络拓扑图 网络环境说明 WMI协议 SMB协议 域内信息收集 WMI协议 - 横向移动 利用方式一&#xff1a;wmic命令 利用方式一&#xff1a;cscript 利用方式一&#xff1a;impacket SMB协议 - 横向移动 利用方式一&#xff1a;psexec 利用方式二&#xff1a;psexe…

如何深入理解 Node.js 中的流(Streams)

Node.js是一个强大的允许开发人员构建可扩展和高效的应用程序。Node.js的一个关键特性是其内置对流的支持。流是Node.js中的一个基本概念&#xff0c;它能够实现高效的数据处理&#xff0c;特别是在处理大量信息或实时处理数据时。 在本文中&#xff0c;我们将探讨Node.js中的流…

Git+Gitee使用分享

GitGitee快速入门 创建仓库 ​ ​ ​ 初始化本地仓库 验证本地git是否安装好 打开cmd窗口&#xff0c;输入git ​ 这样就OK。 Git 全局设置:(只需要设置一次) 这台电脑如果是第一次使用git&#xff0c;就需要这样初始化一下&#xff0c;这样才知道是谁提交到仓库了。 git confi…

港联证券|油价上涨对股票影响大吗?利好还是利空?

石油是现代国家国民经济的血脉&#xff0c;直接影响国民经济的发展。那么&#xff0c;油价上涨对股票影响大吗&#xff1f;利好仍是利空&#xff1f;为大家准备了相关内容&#xff0c;以供参阅。 香港港联证券有限公司&#xff08;百度一下港联证券&#xff09;成立于2021年1月…

Day16-蜗牛影城后端开发

蜗牛影城后端开发 一 多表关联查询 电影集合movie的type(类别)字段关联到电影类别movieType表的_id(主键) 二 蜗牛影城后端开发 1 数据的导入导出 2 用户模块 UserModel.js //导入mongoose,并解构出Schema(类)和model(对象) const {Schema,model} =

MYSQL 统计停车时长百分比

SELECTCOUNT(*) AS 数量,subquery.total_count AS 总数,COUNT(*) * 100 / subquery.total_count AS 百分比,CASEWHEN park_long < 900 THEN 15分钟以内WHEN park_long > 900 AND park_long < 3600 THEN 15-60分钟WHEN park_long > 3600 AND park_long < 10800 T…

CTFhub-sqli注入-Referer注入

在最后添加 Referer: (注意 R 大写&#xff0c; Referer后面是 &#xff1a;&#xff0c;Content-Length: 与 Referer: 之间没有空行) 1 2 3 1 union select 1,database() -1 union select 1,database() -1 union select 1,group_concat(table_name)from information_sche…

【音视频处理】转编码H264 to H265,FFmpeg,代码分享讲解

大家好&#xff0c;欢迎来到停止重构的频道。 本期我们讨论音视频文件转编码&#xff0c;如将视频H264转H265等。 内容中所提及的代码都会放在GitHub&#xff0c;感兴趣的小伙伴可以到GitHub下载。 我们按这样的顺序展开讨论&#xff1a;​ 1、 编码的作用 2、 转编码的…

C语言基础之——操作符(上)

本篇文章&#xff0c;我们将展开讲解C语言中的各种常用操作符&#xff0c;帮助大家更容易的解决一些运算类问题。 这里提醒一下小伙伴们&#xff0c;本章知识会大量涉及到二进制序列&#xff0c;不清楚二进制序列的小伙伴&#xff0c;可以去阅读我的另一篇文章《数据在内存中的…

Seaborn数据可视化(二)

目录 1.Seaborn风格设置 1.1 主题设置 1.2 轴线设置 1.3 移除轴线 1.4 使用字典传递函数 2.设置绘图元素比例 2.1 设置绘图元素比例paper 2.2 设置绘图元素比例poster 2.3 设置绘图元素比例notebook Seaborn将Matplotlib的参数划分为两个独立的组合&#xff0c;第一组用于…

gRpc的四种通信方式详细介绍

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…