CVPR 2024|多模态场景感知,高保真运动预测框架来了!

在这里插入图片描述设想一下,你在家中准备起身,前往橱柜取东西。一个集成 SIF3D 技术的智能家居系统,已经预测出你 的行动路线(路线通畅,避开桌椅障碍物)。当你接近橱柜时,系统已经理解了你的意图,柜门在你达到之前就已自动打开,无需手动操作。

视频中,左边为3D场景和预测结果(红色人体表示真实序列,蓝色人体表示预测结果),中间为运动序列最有可能和场景发生交互的点云,右边为每一个人体pose最有可能和场景发生交互的点云(红:交互可能性大,蓝色交互可能性小)

SIF3D(Sense-Informed Forcasting of 3D human motion),即场景感知运动预测技术,由小红书创作发布团队提出,目前已被计算机视觉顶会 CVPR2024 收录。SIF3D 的先进之处在于其多模态感知能力。它结合人过去的动作序列、真实 3D 场景信息以及人的视线三个方面,预测未来的人体运动。

这项技术特别擅长于理解和预测在复杂环境中的动作,如避开障碍物,这对于自动驾驶、机器人导航、游戏开发和虚拟现实等领域至关重要。比如使得汽车能够更准确地提前预测马路上的行人、车辆未来可能的运动趋势,或是应用于医疗康复诊疗,提前对病人可能发生的不安全运动行为进行预警等。

SIF3D 的工作原理是:通过两种创新的注意力机制——三元意图感知注意力(TIA)和场景语义一致性感知注意力(SCA)——来识别场景中的显著点云,并辅助运动轨迹和姿态的预测。TIA 专注于预测人的意图和全局动作轨迹,而 SCA 则专注于局部场景细节,确保每一帧的姿态预测都与环境保持连贯性。

实验结果表明,SIF3D 在多个大规模场景感知运动预测的数据集上的卓越性能(SOTA),预测时长突破目前算法边界,达到 5 秒时长。它能够有效地识别场景中那些可能与人的运动相关联、相耦合的部分(显著性区域),并通过场景中显著性区域的特征辅助运动预测。这一开创性的方法,不仅推动了人体运动预测技术的发展,也为未来在更多场景下应用场景感知人体运动提供了新的方向和可能性。

# 01 背景

人体动作预测(Human Motion Forecasting),即根据观测到的人体运动序列预测其将来的动作,这是机器智能(MI)、自动驾驶汽车(AD)和人机协作(HRI)等领域的关键技术。在现实生活中,人类的动作是与周围环境紧密相连的,比如我们会因为障碍物而改变行走路径。然而在现有的运动预测研究中,场景信息却常常被忽略,大大制约了技术在真实 3D 场景下的应用。

在机器人技术中,场景信息通常被表达为 3D 点云。现有的场景感知运动预测的方法,通常会将整个 3D 点云进行编码,而后通过全局嵌入或索引、插值等手段将其作为条件引入至运动预测任务当中。尽管该方法可行,但我们注意到:并非点云中的所有信息都与运动预测任务同等相关,相反,往往只有小部分的场景点云会对我们当前序列的运动预测起到作用,我们称其为显著点云(salient point clouds)。

此外,人眼的凝视点(与场景的交汇点)也是一种能够体现人的运动意图的表现。我们期望通过联合分析 3D 场景和人眼凝视点,可以捕捉人类向特定位置的运动行为,从而更准确地预测其运动序列。

3D 场景(左),传统运动预测(中)与本文提出的场景感知预测(右)的对比

为了解决上述挑战,我们提出了一种全新的多模态场景感知的运动预测方法 SIF3D(Multimodal Sense-Informed Forecasting of 3D Human Motions)。SIF3D 主要包含以下两个核心组件:

●三元意图感知注意力机制(ternary intention-aware attention,TIA):通过观测序列、场景点云、人眼凝视的三元多模态联合分析,预测人的意图并区分全局显著点云(global salient points),用于辅助人体运动轨迹预测

●场景语义一致性感知注意力机制(semantic cohenrence-aware attention,SCA):逐帧分析运动序列与场景语义的连贯性与一致性,区别得到逐帧的局部显著点云(local salient points),用于辅助人体姿态预测

通过在新引入的大型数据集上的广泛实验,SIF3D 在真实场景下的 3D 人体运动预测方面取得了最优越的性能,证明了其捕获显著点云的准确性,以及通过显著点云辅助运动预测的有效性。此外,这些发现同样为将来基于真实场景的高保真运动预测、人机交互等领域的应用提供了新的视角和可能性。

# 02 方法
在这里插入图片描述
SIF3D 算法流程图

如图所示,SIF3D 主要涉及以下三个核心步骤:
●Encoding:通过点云网络(PointNet)和 Transformer 分别提取 3D 场景的空间信息与运动序列的时间、空间信息,并将其编码为高维隐藏特征;

●Crossmodal Attention:通过提出的三元意图感知注意力机制(TIA)与场景语义一致性感知注意力机制(SCA)提取 3D 场景中的全局与局部显著点云,并通过跨模态注意力机制分别辅助运动轨迹与姿态的预测;

●Decoding:融合 TIA 与 SCA 预测的轨迹与姿态,并使用真伪判别器进一步监督预测序列的保真度。

2.1 多模态编码(Multimodal Encoding)

由于 SIF3D 使用到了三种模态的信息(运动序列、3D 场景点云、人眼凝视点),在对它们进行联合分析之前,我们首先需要将运动序列与 3D 场景点云编码并映射至同一空间,而人眼凝视点则作为索引,用于获取凝视点的 3D 场景特征。具体操作如下:

a. 运动序列编码:对于长度为 T T T 的观测运动序列 X 1 : T = { x 1 , x 2 . . . . , x T } X_{1:T}=\lbrace{x_1,x_2....,x_T}\rbrace X1:T={x1,x2....,xT} ,我们希望能够预测将来 △ T \bigtriangleup T T 长度的运动序列 Y 1 : △ T = { y 1 , y 2 . . . . , y T } Y_{1:\bigtriangleup T}=\lbrace{y_1,y_2....,y_T}\rbrace Y1:T={y1,y2....,yT} 。在运动编码时,我们直接编码整个长度为 T + △ T T+\bigtriangleup T T+T 的序列。我们首先将观测序列的最后一帧重复 △ T \bigtriangleup T T 次并拼接到 X 1 : T X_{1:T} X1:T 后作为运动编码器的输入。最终它们将会被模型的预测结果所替换:
在这里插入图片描述
b. 3D 场景编码:对于场景点云 S S S,我们利用点云网络 PointNet++ 对其进行编码,得到每个点的场景特征 S ^ \hat{S} S^ 与全局的场景特征 S ^ g l o b a l \hat{S}_{global} S^global
在这里插入图片描述

2.2 三元意图感知注意力机制(TIA)

三元意图感知注意力机制(ternary intention-aware attention,TIA)通过分析观测序列与场景之间的关系,同时基于“人们大多数时候总是会走向看着的地方“这一先验来分析这三种模态间的关联,并通过以下步骤辅助路径规划:

a. 运动特征编码与聚合:短期内,人的意图在运动序列中具有唯一性且不会随着运动的持续进行而发生变化,因此我们首先对运动特征进行进一步编码,并将整个序列的运动特征聚合为一个向量:
在这里插入图片描述

b. 全局显著性点云识别:将聚合得到的运动特征与场景特征进行跨模态注意力分析,寻找出场景中那些响应当前观测序列的点云,作为全局显著点云,我们仅会利用全局显著点云用于提取跨模态意图特征,并用于辅助轨迹预测:
在这里插入图片描述

c. 人眼凝视点特征融合:由于人们在运动过程中往往会习惯性地看向想去的地方,因此人眼凝视点(被定义为人眼视线发出的射线与 3D 场景的交点)也是一种能够反映人的运动意图的重要信息。我们首先通过索引得到凝视点的场景特征,将其用观测序列的最后一帧补全至长度为 T + △ T T+\bigtriangleup T T+T 后,经由凝视编码器得到凝视点提供的特征,进一步完善人体意图分析:
在这里插入图片描述

d. 全局特征特征融合:通过三元多模态感知,我们试图从多个维度来分析人的运动意图,最后我们通过标准的多层感知机(MLP)来融合这些全局特征,作为 TIA 的输出:

在这里插入图片描述

2.3 场景语义一致性感知注意力机制(SCA)

不同于 TIA 关注全局特征与人的运动意图,场景语义一致性感知注意力机制(SCA)则更加关注每一帧的局部显著性场景细节,用来更好地指导每一帧局部姿态的预测:
a. 局部点云显著度:我们首先对运动特征进一步编码,得到每一帧的姿态特征,并将它们分别与场景特征进行跨模态注意力分析,来找到场景中响应每一帧运动姿态的局部显著性点云。
在这里插入图片描述

b. 空间显著度偏置:由于 SCA 会更关注场景中的一些可能影响人体姿态的细粒度信息,且正对着人的朝向且距离更近的场景点往往更可能会影响人体姿态,我们基于每个场景点相对于每一帧中人体的距离与方向额外对于局部点云显著性引入了一项空间显著度偏置 s s p a t i a l s_{spatial} sspatial
在这里插入图片描述

c. 局部特征特征融合:结合了局部点云显著度与空间显著度偏置,我们同样只利用局部显著性点云来辅助姿态预测:
在这里插入图片描述

而后利用多层感知机(MLP)来融合局部特征,作为 SCA 的输出:
在这里插入图片描述

2.4 运动序列解码与生成

预测未来的运动序列需要同时考虑轨迹和姿势。TIA 通过识别全局显著点云分析了人的意图,而 SCA 则识别局部点云以维持每一帧人体与环境的连贯性与一致性,因此我们利用 TIA 的特征预测轨迹,而用 SCA 的特征预测人体姿态:
在这里插入图片描述

由于分别预测得到的轨迹与姿态可能存在不一致,因此我们利用一个基于图网络(GCN)的解码器来融合它们并得到最终结果:
在这里插入图片描述

其中 J ^ \hat{J} J^ 表示 SMPL 关节点的位置。同时我们还引入了一个真伪判别器来进一步提高预测序列的保真度。

# 03 实验

3.1 实验设置

本文基于 GIMO 与 GTA-1M 两个近期发布的包含 3D 场景点云的人体运动数据集,将 SIF3D 与包含经典方法、最新最优方法在内的 4 个方法进行了对比:基于图网络的 LTD、SPGSN,基于 Transformer 的 AuxFormer,以及考虑了场景信息的 BiFu。

本文从轨迹与姿态两个维度对 SIF3D 与对比方法进行了评估,轨迹评估计算了预测轨迹与真实轨迹之间的偏差,姿态评估了则计算了每个关节点的位置与真实位置的平均偏差。

对于所有的指标我们都从所有的预测帧与最终的预测帧两个方面来评估,包括:
●Traj-path:衡量了整个预测序列中平均的轨迹偏差;
●Traj-dest:衡量了最终预测帧的轨迹偏差;
●MPJPE-path:衡量了整个预测序列中的平均姿态关节点偏差;
●MPJPE-dest:衡量了最终预测帧的平均姿态关节点偏差。

3.2 实验结果

我们首先统计了引入不同多模态信息时(3D 场景点云 Scene,人眼凝视点 Gaze),各个方法的预测性能(表 1),而后详细展开统计了不同场景以及不同时间点下各个方法的预测性能(表 2)

在这里插入图片描述
表 1:考虑了不同模态时(3D 场景点云 Scene,人眼凝视点 Gaze)各个方法的预测结果

在这里插入图片描述
表 2:不同场景以及不同时间点下各个方法的详细预测性能

3.3 可视化对比结果

可视化结果提供了一种更为直观的方法将 SIF3D 与传统方法进行了对比。
在这里插入图片描述
通过识别场景中的全局与局部显著点云,我们可以更高效地利用场景信息辅助运动预测,得到更为精准与真实的预测序列。我们可以清楚地看到,SIF3D 不但能更好地识别场景元素,还能感知人的意图,其预测结果不但更接近真实序列,也具有更高的保真度。

在这里插入图片描述](https://img-blog.csdnimg.cn/direct/0308f1295c2f4d269a866b9f6b8afb40.png)

3.4 消融实验

消融实验(Ablation Study)旨在评价 SIF3D 中不同组件的重要度以及对最终预测性能的影响,即通过移除或修改某些部分来评估模型性能的变化。主要包括:
a. 移除主要组件:
包括 TIA,SCA,运动解码器,真伪判别器与场景编码器 PointNet++。它们是构成 SIF3D 最主要的五个部件,通过比较移除这些组件前后的预测误差,可以评估它们在提高预测准确性方面的重要性,如下表所示。可以看出本文提出的组件均不同程度地有主提高最终的预测效果,尤其是意图注意力模组和场景编码模块。
在这里插入图片描述

b. 调整场景点云大小:
原始的 LiDAR 传感器采样得到的场景点云可能包含 50 万以上的顶点数量,为了更高效地利用点云数据,我们对其进行了下采样。然而过度下采样可能影响点云对于场景的表征能力,因此我们需要权衡下采样的点云大小,如下表所示。本文实验采用了 4096 作为场景点云的大小。可以看到,在点云数量为4096时,算法在内存开销、推理速度、最终性能等方面取得了最佳平衡。
在这里插入图片描述

c. TIA 中的运动特征聚合方法:
在 TIA 中,我们将编码得到的运动特征聚合为一个向量用于计算与场景点云间的全局显著性,这里我们研究了不同聚合方式对于性能的影响,包括:
Last,采用最后一帧的运动特征;Mean,采用所有帧运动特征的均值;Max,采用帧间最大池化;Conv,利用三层卷积网络进行下采样;Transformer,引入单层 Transformer 解码器用于聚合。结果如下表所示。可以看出,使用运动特征的最后一个时间维度的特征作为计算场景相关性的key-query取得了最佳的性能,这也意味着:
(1)最后一帧的运动特征可能包含了之前所有时间的上下文信息
(2)最后时刻的运动信息对于人类未来轨迹起到的作用最大。

在这里插入图片描述
# 04 结语
在本研究中,我们提出了一个开创性的多模态感知信息框架 SIF3D,用于在真实世界的 3D 场景中进行人体运动预测。通过结合外部客观的 3D 场景点云和主观的人眼凝视点,SIF3D 能够通过 TIA 与 SCA 注意力机制感知场景和理解人类意图的。在 GIMO 与 GTA-1M 两个数据集中,SIF3D 均取得了目前最佳的预测性能。与此同时,我们的发现强调了 3D 场景与人眼凝视点在场景感知的运动预测中的重要性。此外,我们认为,在现实世界的 3D 场景中深入研究高保真度的不同人体运动生成任务,有望成为未来探索的一条引人注目的途径。

项目地址:https://sites.google.com/view/cvpr2024sif3d

# 05 作者简介

  • 娄震宇
    本科毕业于浙江大学,目前为浙江大学博士生。发表多篇期刊和会议论文,主要研究方向为人体运动预测,3D 计算机视觉。
  • 崔琼杰
    博士毕业于南京理工大学。在 CVPR、ICCV、ECCV、IJCAI、AAAI
    等国际会议上发表多篇论文,担任多个国际顶级计算机视觉,人工智能会议的审稿人。目前主要研究方向为人体运动分析与合成。
  • 王浩帆
    小红书创作发布组- AIGC 方向算法工程师,硕士毕业于卡内基梅隆大学,在 CVPR、ICCV、NeurIPS、3DV、AAAI、TPAMI 等国际会议和学术期刊上发表多篇论文。目前主要研究方向为图像、视频、3D生成。

# 06 招聘

创作发布团队-算法实习生( AIGC 方向)
【岗位职责】
1.负责 AIGC 生成业务在小红书平台的落地和上线。
2.负责调研前沿技术,参与创新性算法的研究以及开发工作;如有较好成果,可支持论文发表。

【任职要求】
1.熟悉目前 AIGC 常用技术链并有实际项目或论文经验,如 LoRA、ControlNet 的训练,了解近期图像、视频生成领域的最新进展。
2.具有良好的沟通、编程、合作能力。在知名赛事有获奖名次或在顶级会议上已发表过至少一篇论文的优先。
3.现场入职,北京、上海均可,实习至少三个月以上;如有科研意向,至少半年以上。

欢迎感兴趣的朋友发送简历至: REDtech@xiaohongshu.com; 并抄送至:
wanghaofan@xiaohongshu.com

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无限集中的最小数字

题目链接 无限集中的最小数字 题目描述 注意点 1 < num < 1000 解答思路 由题意得&#xff0c;可以理解为最初集合中有1~1000之间的所有数字&#xff0c;如果集合中存在数字&#xff0c;则添加时不会有任何操作&#xff1b;在移除集合中的元素时&#xff0c;会按顺序…

表格内容高效拆分,自定义行数随心所欲,让数据处理更高效!

在信息化社会的今天&#xff0c;表格成为了我们处理数据、整理信息的重要工具。然而&#xff0c;当表格内容过于庞大时&#xff0c;如何高效地拆分表格内容成为了摆在我们面前的一大难题。传统的拆分方法往往耗时耗力&#xff0c;且难以满足我们个性化的需求。 首先&#xff0…

视频号创作分成计划实战指南:保姆级教程,带你玩转新副业

视频号的月活跃用户数量已在去年突破了8亿大关&#xff0c;并且不断增长。 在这篇文章中&#xff0c;我将与大家分享视频号的运营玩法和作品创作方向。 一、玩法流程 开通条件 要开通创作者分成计划功能&#xff0c;需要满足以下条件&#xff1a; 粉丝数量达到100及以上。 …

【优选算法】——Leetcode——611. 有效三角形的个数

目录 ​编辑 1.题目 2 .补充知识 3.解法⼀&#xff08;暴⼒求解&#xff09;&#xff08;可能会超时&#xff09;&#xff1a; 算法思路&#xff1a; 算法代码&#xff1a; 4.解法⼆&#xff08;排序双指针&#xff09;&#xff1a; 算法思路&#xff1a; 以输入: nums …

文本三剑客grep与正则表达式、元字符

正则表达式 正则表达式又称为正规表达式、常规表达式、在代码中常简写为regex、regex或RE。正则表达式是使用单个字符串来描述、匹配一系列符合某个句法规则的字符串&#xff0c;简单来说&#xff0c;是一种匹配字符串的方法&#xff0c;通过一些特殊符号&#xff0c;实现快速查…

JetsonNano —— 2、对Nano板卡刷机后进行基础配置

说明 在完成上一节 “JetsonNano —— 1、Windows下对Nano板卡烧录刷机&#xff08;官方教程&#xff09;” 后&#xff0c;对新系统进行一些基础配置&#xff0c;以便使用更得心应手么。 基础配置 1、通过SSH连接Nano SSH是一种网络协议&#xff08;默认的端口号为22&#xff…

测试用例设计方法之因果图详解

一、因果图概述 因果图是从需求中找出因&#xff08;输入条件&#xff09;和果&#xff08;输出或程序状态的改变&#xff09;&#xff0c;通过分析输入条件之间的关系&#xff08;组合关系、约束关系等&#xff09;及输入和输出之间的关系绘制出因果图&#xff0c;再转化成判…

C++中的异常处理方式

目录 一、异常 二、C语言中对错误的处理 三、C中的异常处理 四、异常的抛出和捕获 五、异常的重新抛出 六、C标准库中的异常体系 七、异常的规范 一、异常 在C中&#xff0c;异常是程序运行期间发生的意外或错误情况。这些情况可能会导致程序无法继续正常执行&#xff0c;…

二维视觉尺寸测量简单流程

代码示例&#xff1a;opencv实战---物体尺寸测量_opencv尺寸测量精度-CSDN博客 灰度化 简化图像处理&#xff1a;灰度图像只包含亮度信息&#xff0c;不包含颜色信息&#xff0c;因此数据量比彩色图像小&#xff0c;处理起来更加简单和快速。这对于需要实时处理大量图像数据的场…

XTuner笔记

为什么要微调&#xff1a; 1. 模型不具备一些私人定制的知识 2。模型回答问题的套路你不满意。 对应衍生出来两种概念 增量预训练微调&#xff1a; 使用场景&#xff1a;让基座模型学习到一些新知识&#xff0c;如某个垂类领域的常识训练数据&#xff1a;文章、书籍、代码等…

Mac电脑安装打开APP显示问题已损坏 问题解决

当MAC电脑安装完软件打开时&#xff0c;显示文件已损坏&#xff0c;无法打开。搜了很多教程终于找到解决方案&#xff0c;记录下方便以后再用。 我的mac电脑是intel芯片的&#xff0c;如果你遇到这个问题&#xff0c;可以参考我的这个方案。 1.首先当打开软件后出现 “xx软件已…

Python 框架安全:SSTI 模板注入漏洞测试.

什么是 SSTI 模板注入 SSTI (Server-Side Template Injection) 是一种Web应用程序安全漏洞&#xff0c;它发生在应用程序使用模板引擎渲染用户输入时。当应用程序将用户输入直接插入到模板中而不进行充分的过滤和验证时&#xff0c;就可能导致SSTI漏洞。攻击者可以利用这个漏洞…

Selenium 保存会话信息避免重复登录实战!

前言 • 在一些实际开发场景中&#xff0c;我们在使用 Selenium 做自动化测试时需要保留用户的会话信息&#xff0c;从而避免重复登录&#xff0c;今天这篇文章就带大家实战如何使用 Selenium 保存会话信息。 版本 • Python 3.x 整体思路 • 当我们打开页面时&#xff0c;…

Colab/PyTorch - 002 Pre Trained Models for Image Classification

Colab/PyTorch - 002 Pre Trained Models for Image Classification 1. 源由2. 图像分类的预训练模型3. 示例 - AlexNet/ResNet1013.1 模型推断过程3.2 使用TorchVision加载预训练网络3.3 使用AlexNet进行图像分类3.3.1 Step1&#xff1a;加载预训练模型3.3.2 Step2&#xff1a…

1.分布式-理论

目录 一、什么是分布式系统 二、CAP理论 1.一致性Consisency 2.可用性(Availability) 3.分区容错性(Partition tolrance) 三、BASE理论 1.Basically Available(基本可用) 2.Soft state&#xff08;软状态&#xff09; 3.Eventually consistent&#xff08;最终一致性&a…

【JavaSE】/*初识Java*/

目录 一、了解 Java 语言 二、Java 语言的重要性 2.1 使用程度 2.2 工作领域 三、Java 语言的特性 四、Java 的基础语法 五、可能遇到的错误 六、第一个 java 程序代码解析 七、Java 注释 八、Java 标识符 九、Java 关键字 一、了解 Java 语言 Java 是由 Sun Micr…

15. 三数之和(双指针+去重优化)

文章目录 前言一、题目描述二、代码原理1.暴力解法2.双指针优化 三.代码编写总结 前言 在本篇文章中&#xff0c;我们将会讲到leetcode中15. 三数之和&#xff0c;我们将会用到双指针的方式解决这道问题&#xff0c;同时注意掌握算法原理的去重操作。 一、题目描述 给你一个…

PHP高级教程

&#x1f40c;博主主页&#xff1a;&#x1f40c;​倔强的大蜗牛&#x1f40c;​ &#x1f4da;专栏分类&#xff1a;PHP &#x1f4da;参考教程&#xff1a;菜鸟\编程网❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、PHP 多维数组 二、PHP date&#xff08;&#…

免费获取!图论+灰色系统+混合优化算法程序代码!

前言 算法&#xff08;Algorithm&#xff09;是指解题方案的准确而完整的描述&#xff0c;是一系列解决问题的清晰指令&#xff0c;算法代表着用系统的方法描述解决问题的策略机制。算法优化是指对算法的有关性能进行优化&#xff0c;如时间复杂度、空间复杂度、正确性、健壮性…

Java | Leetcode Java题解之第79题单词搜索

题目&#xff1a; 题解&#xff1a; class Solution {public boolean exist(char[][] board, String word) {char[] words word.toCharArray();for(int i 0; i < board.length; i) {for(int j 0; j < board[0].length; j) {if (dfs(board, words, i, j, 0)) return t…