OpenVI-感知理解系列之GAP骨骼点动作识别 ICCV23顶会论文深入解读

简介: 本文介绍了ICCV23中稿论文 GAP: Generative Action Description Prompts for Skeleton-based Action Recognition

论文&代码

背景

基于骨架的动作识别(skeleton-based action recognition)由于它的效率和鲁棒性,近年来受到了广泛关注。目前的基于骨架的动作识别方法通常被定义为一种one-hot的编码分类任务,没有充分利用动作之间的语义关系。例如,"make a victory sign" (“做出胜利的手势”) 和 "Thumb up"(“竖起拇指”)是两种手势动作,其主要区别在于手部的运动。这些细粒度的信息难以从动作类别的分类编码中被获知,但可以在对动作描述中被感知到。因此,在训练中利用动作描述可能有助于表示学习。在本文中,我们提出了一种基于骨架的动作识别方法-GAP。具体来说,我们首创利用预训练的大规模语言模型作为知识引擎(knowledge engine),自动生成动作各个身体部位运动的文本描述,并提出了一种多模态训练方案,利用文本编码器生成不同身体部位的特征向量并监督骨架编码器进行动作表示学习。实验证明,我们提出的GAP方法在各种基线模型上实现了显著的改进,而不需要额外的计算成本。GAP在包括NTU RGB+D、NTU RGB+D 120和NW-UCLA在内的流行的基于骨架的动作识别基准测试中取得了新的最高水平。总的来说,我们的方法证明了利用自然语言描述,可以更好地理解动作语义,并提高基于骨架的动作识别(skeleton-based action recognition) 性能的有效性。我们的研究提供了一种新的范式,即如何利用LLM来提升传统计算机视觉任务的性能,为未来的研究提供了新的思路。

方法


1693471394077-4bba2fae-1c69-4e80-a4e6-e37e9bc14210.png

图1 不同骨骼点动作识别框架的对比

• 首次提出使用大语言模型(LLM)生成对动作的细粒度描述,从而提升动作识别的精度

• 简单、有效,仅在训练时增加计算量,对测试速度没有影响

• 在多个标准测试集上: NTU RGB+D, NTU RGB+D 120 and NW-UCLA取得了SOTA

1693471502890-1c412621-3420-4351-b98f-8acae7515b15.png

图2 整体框架图

核心贡献

使用LLM生成的动作描述,对动作识别训练进行细粒度的监督

使用LLM(GPT3)生成对于动作的细粒度描述(Head, Hand, Hip, Leg)

使用Multi-part Contrastive Loss,对人体不同的部位特征分别进行监督

推理时只使用全局特征,无需使用text encoder, 加快推理速度

人体分区

通过对人体不同区域特征进行池化(pooling)获得对应区域的特征

1693472013423-dee42cf8-2ea0-4d65-acd3-d4d93fdf52b9.png

大语言模型进行动作描述生成

使用Prompt+动作名称,生成对应的动作描述

具体的生成模式包含: Paragraph (一整段描述);Synonym (同义词);Part description (分人体部位描述). 详情可见图4和图5。

1693471779281-29ef6592-601b-4d5b-b554-898d959aeb0d.png

1693471795032-916f33c9-3bc0-4ff2-b8b3-5d6c2b5eb9f2.png

损失函数

交叉熵损失函数

1693471918963-4729471a-49b4-46ed-840e-7335871ef9b6.png

对比损失函数

1693471911264-0d235c49-e2ca-4cd1-9069-2f7f4dfbd8bf.png

人体部位分区对比损失函数(人体分区如图3所示)

1693471947405-5e969653-e28c-4eb4-a79c-09eb641191a2.png

总体损失函数

1693471985386-16fd3fb9-fa26-48f0-928b-caa35c9c800a.png

实验结果

  • 消融实验
  • 我们对GAP的不同部份进行了消融实验,包括人体部位分区策略,text prompt生成方式,text encoder, skeleton encoder, 描述方法等等。

1693461432996-c63a043f-aac5-473e-9107-daee212b41a7.png

  • SOTA对比
  • 从表格2-4中可以看到,我们在NW-UCLA, NTU RGB+D, NTU RGB+D 120上,均取得了SOTA性能。

1693461454061-81a3b449-935d-4ba6-8407-a710d5cbcf98.png1693461470241-6ddb1cff-1518-4696-a32f-68ec95be4b88.png

1693461522256-78a67f6f-f76c-41cb-b373-646ee6ac466f.png

  • 分析讨论

1693461934664-86201363-b992-4760-bdc5-64cbdeb52c61.png

为了深入理解GAP方法,我们在NTU RGB+D 120上进行详细的分析和讨论。在图6中,我们展示了在NTU120上使用GAP和不使用GAP之间存在超过4%的绝对准确率差异的动作类别。对于动作类别如"写字(writing)"、"打开盒子(open a box)"、"进餐(eat meal)"和"挥刀(wield knife)"等动作,我们可以观察到GAP能显著地提高这些类别的准确率,因为语言模型能够为这些动作生成详细的身体部位运动描述。但是,对于"剪纸(cutting paper)"、"自拍(taking a selfie)"、"玩魔方(play magic cube)"和"玩手机/平板电脑 (play with phone/tablet)"等动作类别,GAP的性能较差。我们认为这些性能差的动作与性能好的动作之间的主要区别在于前者与物体相关,使用骨架数据来识别它们很具有挑战性。此外,数据集中存在的类别偏差可能也会导致我们在NTU120上提出的方法在与物体相关的动作上表现差异。因为数据集中可能存在其他相似的动作类别。例如,通过分析"剪纸(cutting paper)",我们发现它与"双手搓揉(rubbing two hands)"(也出现在NTU120中)之间的主要区别在于持有的物体,如纸张、剪刀。相反,虽然"打开盒子(opening a box)"也是与物体相关的动作,但在NTU120数据集中没有与此相似的其他动作,如"展开衣服(unfold clothes)"。更多的分析,可以参考我们的论文。

总结

我们开发了一种新的基于骨骼点的动作识别框架(GAP),这是首个使用动作知识先验进行骨骼点动作识别的工作。我们采用了大规模语言模型(LLM)作为知识引擎,自动生成详细的身体部位描述,避免了繁琐的手动标注。GAP利用动作描述来引导骨骼点编码器的学习并增强学到的表征,使其具备关于动作和人体部位关系的知识。大量实验证明GAP是一个通用的框架,可以与各种骨干网络组合,以增强表征学习。GAP在NW-UCLA、NTU RGB+D、NTU RGB+D 120这些标准数据集上取得了SOTA效果。

目录
相关文章
|
并行计算 Ubuntu 机器人
计算机视觉教程7-3:Openpose配置与实践
计算机视觉教程7-3:Openpose配置与实践
3374 0
计算机视觉教程7-3:Openpose配置与实践
|
4月前
|
人工智能 监控 安全
人体姿态[站着、摔倒、坐、深蹲、跑]检测数据集(6000张图片已划分、已标注)| AI训练适用于目标检测
本数据集包含6000张已标注人体姿态图片,覆盖站着、摔倒、坐、深蹲、跑五类动作,按5:1划分训练集与验证集,标注格式兼容YOLO等主流框架,适用于跌倒检测、健身分析、安防监控等AI目标检测任务,开箱即用,助力模型快速训练与部署。
|
机器学习/深度学习 数据采集 算法
超轻量更泛化!基于人体骨骼点的动作识别
基于骨骼点的动作识别的动作识别,往往具有比基于其他模态的算法更轻量,更具泛化性的特点。当然,由于骨骼点所包含信息的局限性,基于骨骼点的算法很难对一些与物体或场景关系紧密的动作进行有效识别,可以说有利有弊。
1559 0
超轻量更泛化!基于人体骨骼点的动作识别
|
9月前
|
API Python
利用openvino模型推理图片
本文介绍了如何使用 OpenVINO 格式模型文件对图片进行推理。通过将训练好的模型转换为 OpenVINO 格式,可实现跨设备部署。文中详细展示了利用 Python 和 OpenVINO API 完成模型加载、编译及推理的步骤。核心代码包括初始化 OpenVINO 模型、设置预测参数(如置信度和 IoU 阈值)以及对图片进行检测并显示结果。注意:OpenVINO 模型文件需完整存放于同一目录下,路径需正确配置,参数可根据模型性能调整。
|
JSON 人工智能 数据格式
AI计算机视觉笔记二十六:YOLOV8自训练关键点检测
本文档详细记录了使用YOLOv8训练关键点检测模型的过程。首先通过清华源安装YOLOv8,并验证安装。接着通过示例权重文件与测试图片`bus.jpg`演示预测流程。为准备训练数据,文档介绍了如何使用`labelme`标注工具进行关键点标注,并提供了一个Python脚本`labelme2yolo.py`将标注结果从JSON格式转换为YOLO所需的TXT格式。随后,通过Jupyter Notebook可视化标注结果确保准确性。最后,文档展示了如何组织数据集目录结构,并提供了训练与测试代码示例,包括配置文件`smoke.yaml`及训练脚本`train.py`,帮助读者完成自定义模型的训练与评估。
4759 2
|
11月前
|
机器学习/深度学习 人工智能 监控
阿里通义开源全模态大语言模型 R1-Omni:情感分析成绩新标杆!推理过程全程透明,准确率飙升200%
R1-Omni 是阿里通义开源的全模态大语言模型,专注于情感识别任务,结合视觉和音频信息,提供可解释的推理过程,显著提升情感识别的准确性和泛化能力。
1510 10
阿里通义开源全模态大语言模型 R1-Omni:情感分析成绩新标杆!推理过程全程透明,准确率飙升200%
|
搜索推荐 物联网 PyTorch
Qwen2.5-7B-Instruct Lora 微调
本教程介绍如何基于Transformers和PEFT框架对Qwen2.5-7B-Instruct模型进行LoRA微调。
13266 34
Qwen2.5-7B-Instruct Lora 微调
|
缓存 API 开发工具
Qwen-coder方向-如果从0开始应用通义千问开源大模型
从0开始接触,带您全面了解Qwen2.5语言模型家族,包括其核心功能、微调方法以及具体应用场景。我们将通过一系列精心准备的应用demo和使用指南,帮助您掌握如何充分利用Qwen2.5的强大能力
1752 8
|
机器学习/深度学习 人工智能 文字识别
ultralytics YOLO11 全新发布!(原理介绍+代码详见+结构框图)
本文详细介绍YOLO11,包括其全新特性、代码实现及结构框图,并提供如何使用NEU-DET数据集进行训练的指南。YOLO11在前代基础上引入了新功能和改进,如C3k2、C2PSA模块和更轻量级的分类检测头,显著提升了模型的性能和灵活性。文中还对比了YOLO11与YOLOv8的区别,并展示了训练过程和结果的可视化
22712 0

热门文章

最新文章