PoseFormer:基于视频的2D-to-3D单人姿态估计

这篇具有很好参考价值的文章主要介绍了PoseFormer:基于视频的2D-to-3D单人姿态估计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

论文链接:3D Human Pose Estimation with Spatial and Temporal Transformers
论文代码:https://github.com/zczcwh/PoseFormer
论文出处:2021 ICCV
论文单位:University of Central Florida, USA文章来源地址https://www.toymoban.com/news/detail-761587.html

摘要

  • Transformer架构已经成为自然语言处理中的首选模型,现在正被引入到计算机视觉任务中,例如图像分类、对象检测和语义分割。
  • 然而,在人体姿态估计领域,卷积架构仍然占主导地位。
  • 在这项工作中,我们呈现PoseFormer一种纯粹基于Transformer的方法,用于视频中的3D人体姿势估计,不涉及卷积架构
  • 受视觉Transformer最新发展的启发,我们设计了一个时空Transformer结构,以全面建模每帧内的人体关节关系以及帧间的时间相关性,然后输出中心帧的精确三维人体姿态。
  • 我们在两个流行的和标准的基准数据集:Human3.6MMPI-INF-3DHP上定量和定性地评估了我们的方法。大量的实验表明,PoseFormer在两个数据集上都达到了最先进的性能。

1. 简介

  • 人体姿态估计(HPE) 旨在从图像和视频等输入数据中定位关节并构建身体表示(例如骨骼位置)。
  • HPE提供人体的几何和运动信息,可以应用于广泛的应用(如人机交互,运动分析,医疗保健)。
  • 目前的工作大致可以分为两类: (1)直接估算方法,(2)2D-to-3D提升方法
  • 直接估计方法从2D图像或视频帧中推断出3D人体姿势,而无需中间估计2D姿势表示。
  • 2D-to-3D提升方法从中间估计的2D姿势推断出3D人体姿势。
  • 得益于最先进的2D姿态检测器的优异性能,2D-to-3D提升方法通常优于直接估计方法。
  • 然而,这些2D姿势到3D的映射是non-trivial; 由于深度模糊和遮挡,相同的2D姿态可以生成各种潜在的3D姿态。
  • 为了缓解这些问题并保持自然的连贯性,许多最近的作品将来自视频的时间信息整合到他们的方法中。然而,基于cnn的方法通常依赖于固有的有限时间连通性的扩张技术,而循环网络主要受限于简单的顺序相关性。
  • 最近,Transformer 由于其效率、可扩展性和强大的建模能力,已经成为自然语言处理(NLP)事实上的模型。由于Transformer 的self-attention 机制,可以清楚地捕获跨长输入序列的全局相关性。这使得它特别适合序列数据问题的架构,因此可以自然地扩展到3D HPE。
  • 凭借其全面的连通性和表达,Transformer 提供了一个跨帧学习更强的时间表示的机会。
  • 然而,最近的研究表明,Transformer 需要特定的设计才能在视觉任务中达到与CNN同类产品相当的性能。具体来说,它们通常需要非常大规模的训练数据集,或者如果应用于较小的数据集,则增强数据增强和正则化。
  • 此外,现有的视觉变压器主要局限于图像分类、目标检测和分割,但如何利用变压器的力量进行3D HPE仍然不清楚。
  • 为了回答这个问题,我们首先将变压器直接应用于2D-to-3D lifting HPE。在这种情况下,我们将给定序列中每帧的整个2D姿态视为一个标记( token)(图1(a))。 虽然这种基线方法在一定程度上是有效的,但它忽略了空间关系(关节对关节)的自然区别。
    poseformer,3D HPE,Transformer
  • 对该基线的自然扩展是将每个2D关节坐标视为一个token,提供由序列所有帧中的这些关节组成的输入(图1(b))。然而,在这种情况下,当使用长帧序列时,token的数量变得越来越大(在3D HPE中,每帧最多243帧,17个关节是常见的,token的数量将为243×17=4131)。由于Transformer计算每个token对另一个token的直接关注,因此模型的内存需求接近不合理的水平。
  • 因此,作为应对这些挑战的有效解决方案,我们提出了PoseFormer,这是第一个用于视频中2d到3d提升HPE的纯Transformer网络
  • PoseFormer使用两个维度的不同Transformer模块直接对空间和时间方面进行建模
  • PoseFormer不仅在空间和时间元素之间产生强大的表示,而且不会对长输入序列产生大量的token计数。
  • 在高层次上,PoseFormer只是从现成的2D姿态估计器中提取一系列检测到的2D姿态,并输出中心帧的3D姿态。
  • 更具体地说,我们建立了一个空间Transformer模块来编码每个帧中二维关节之间的局部关系。 空间self-attention层考虑二维关节的位置信息,并返回该帧的潜在特征表示。接下来,我们的时间Transformer模块分析每个空间特征表示之间的全局依赖关系,并生成准确的3D姿态估计。
  • 在两种流行的3D HPE基准(Human3.6M和MPI-INF-3DHP)上的实验评估表明,PoseFormer在这两个数据集上都达到了最先进的性能。我们将我们估计的3D姿态与SOAT方法进行比较,并发现
    PoseFormer产生更平滑、更可靠的结果。此外,消融研究中还提供了PoseFormer注意力图的可视化和分析,以了解模型的内部工作原理并证明其有效性。
  • 我们的贡献有三方面:
    (1)我们提出了第一个纯基于Transformer的模型PoseFormer,用于3D HPE的2d到3D lifting。
    (2)我们设计了一个有效的时空Transformer模型,其中空间Transformer模块编码人体关节之间的局部关系,而时间Transformer模块捕获整个序列中跨帧的全局依赖关系。
    (3)我们的PoseFormer模型在Human3.6M和MPI-INF-3DHP数据集上取得了SOAT效果。

2. Related Works

  • 在这里,我们具体总结了3D单人单视图HPE方法
  • 直接估计方法: 从二维图像中推断三维人体姿态,而不需要中间估计二维姿态表示。
  • 2D-to-3D lifting 方法: 利用2D姿态作为输入来生成相应的3D姿态,这在该领域的最新方法中较为流行。任何现成的2D姿态估计器都可以有效地与这些方法兼容。

2.1 2D-to-3D Lifting HPE

  • 2D到3d提升方法利用从输入图像或视频帧估计的2D姿势。
  • OpenPose、CPN、AlphaPose和HRNet被广泛用作2D姿态检测器。
  • 基于这种中间表示,可以使用多种方法生成3D姿态。
  • 然而,以前最先进的方法依赖于扩展的时间卷积(dilated temporal convolutions)来捕获全局依赖关系,这在时间连接上是有限的。
  • 此外,这些工作中的大多数使用简单的操作将关节坐标投影到潜在空间,而没有考虑人体关节的运动学相关性。

2.2 GNNs in 3D HPE

  • 自然地,人体姿势可以表示为一个graph,其中关节是nodes ,骨骼是 edges。
  • 图神经网络(GNNs)也被应用于 2D-to-3D pose lifting 问题,并提供了很好的表现。
  • 对于我们的PoseFormer,transformer可以被视为一种具有独特且通常有利的图操作的GNN。
  • 具体来说,一个transformer编码器模块本质上形成了一个全连接图,其中边缘权重是使用输入条件,多头self-attention计算的。
  • 该操作还包括节点特征的规范化,跨注意头输出的前馈聚合器,以及使其能够有效地扩展堆叠层的剩余连接。
  • 与其他图操作相比,这样的操作是有利的。例如,节点之间连接的强度由transformer的self-attention机制决定,而不是像典型的那样通过邻接矩阵预定义。
  • 本任务中使用的基于gcn的配方。 这使得模型能够灵活地根据每个输入姿势调整关节的相对重要性。
  • 此外,transformer的综合缩放和归一化组件可能有利于减轻当多层堆叠在一起时困扰许多GNN操作变体的过度平滑效应。

2.3 Vision Transformers

  • 最近,有一个新兴的兴趣将 Transformer 应用于视觉任务。
  • DEtection TRansformer (DETR) 用于目标检测与全景分割。
  • Vision Transformer (ViT) ,纯Transformer 构架,在图像分类方面达到了SOAT的性能。
  • Transpose,基于Transformer 构架,从图像中估计3D姿态。
  • MEsh TRansfOrmer,将cnn与Transformer 网络结合起来,从单个图像重建3D pose 和 mesh vertices。
  • 本文方法的时空Transformer 架构利用了每帧中的关键点相关性,并保留了视频中的自然时间一致性。

3. Method

  • Pipeline:通过现成的2D姿态检测器获得每帧的2D姿态,使用连续帧的二维姿态序列作为输入,估计中心帧的三维姿态。

3.1 Temporal Transformer Baseline

  • 作为 2D-to-3D lifting 的基线应用,我们将每个2D姿态视为输入token,并使用Transformer 来捕获输入之间的全局依赖关系,如图2(a)所示。
    poseformer,3D HPE,Transformer
  • 我们将把每个输入token称为一个patch,在术语上类似于ViT.
  • 对于输入序列X∈R^(f×(J·2)),f 为输入序列的帧数,J为每帧的关节数2D位姿,2表示关节在2D空间中的坐标。
  • patch embedding 是一个可训练的线性投影层,将每个patch 嵌入到高维特征中。
  • Transformer 网络利用位置嵌入来保留序列的位置信息。
  • self-attention是Transformer 的核心功能,它将输入序列的不同位置与嵌入特征联系起来。
  • 我们的Transformer 编码器由多头自注意块和多层感知器(MLP)块组成。LayerNorm在每个块之前应用,剩余连接在每个块之后应用。
  • 为了预测中心帧的三维姿态,编码器输出Y∈Rf×C通过在帧维中取平均值,收缩为向量y∈R1×C。最后,一个MLP块将输出回归到 y∈R1×(J*3),即中心框架的3D姿态。

3.2 PoseFormer: Spatial-Temporal Transformer

  • 我们观察到,时间Transformer基线主要关注输入序列中帧之间的全局依赖关系。利用线性变换patch embedding将关节坐标投影到隐维上。
  • 然而,由于简单的线性投影层无法学习到attention信息,局部关节坐标之间的运动信息在时序Transformer基线中没有得到强有力的表示。
  • 一个潜在的解决方案是将每个关节坐标视为一个单独的patch,并将所有帧的关节作为输入馈送到Transformer(见图1(b))。
  • 然而,patch的数量会迅速增加(帧数 f 乘以关节数 J),导致模型的计算复杂度为O((f·J)2)。
  • 为了有效地学习局部联合相关性,我们分别对空间和时间信息使用了两个分离的Transformer
  • 如图2(b)所示,PoseFormer由三个模块组成: spatial transformer module, temporal transformer module, and regression head module

Spatial Transformer Module

  • Spatial Transformer Module是从单个帧中提取高维特征嵌入。给定一个具有 J 个关节的二维姿态,我们将每个关节(即两个坐标)视为一个patch,并按照通用视觉变换pipeline在所有patch之间进行特征提取。
  • 首先,我们用可训练的线性投影将每个关节的坐标映射到高维空间,这被称为spatial patch embedding。

Temporal Transformer Module

  • 由于Spatial Transformer Module为每个单独的帧编码高维特征,因此Temporal Transformer Module的目标是跨帧序列建模依赖关系。
  • 在Temporal Transformer Module之前,我们加入了可学习的时序位置嵌入来保留帧的位置信息。
  • 对于Temporal Transformer Module编码器,我们采用与Spatial Transformer Module编码器相同的架构,该架构由多头self-attention块和MLP块组成。
  • 时序变压器模块的输出为 Y∈Rf*(J*c)

Regression Head

  • 由于我们使用一组帧序列来预测中心帧的三维姿态,因此Temporal Transformer Module Y∈Rf*(J·c)的输出需要简化为 y∈R1*(J·c)
  • 我们在帧维度上应用加权平均操作(使用学习到的权重)来实现这一点。
  • 最后,一个具有Layer范数和一个线性层的简单MLP块返回输出 y∈R1*(J·3),这是中心帧的预测三维姿态。

Loss Function

  • 为了训练我们的时空转换模型,我们使用了标准的MPJPE (Mean Per Joint Position Error)损失以最小化预测值与ground truth姿态之间的误差为
    poseformer,3D HPE,Transformer

4. 数据集

4.1 Human3.6M

  • Human3.6M是3D单人HPE使用最广泛的室内数据集。
  • 由11名专业演员表演坐、走、打电话等17种动作。
  • 每个受试者在室内环境中从4个不同的角度拍摄视频。
  • 该数据集包含360万视频帧,其中包含基于精确标记的动作捕捉系统捕获的3D地面真相注释。
  • 根据之前的工作,我们采用相同的实验设置: 所有15个动作都用于训练和测试,模型训练在5个sections(S1, S5,S6, S7, S8)和测试在 2个sections(S9和S11)。

4.2 MPI-INF-3DHP

  • MPI-INF-3DHP是一个更具挑战性的三维姿态数据集。
  • 它既包含受限的室内场景,也包含复杂的室外场景。
  • 有8个演员表演8个动作,从14个摄像机视图,涵盖了更大的多样性的姿势。
  • MPI-INF-3DHP提供了6个不同场景的测试集。

5. 评测指标

  • MPJPE :Mean Per Joint Position Error,平均每个关节位置误差,估计关节与地面真值之间的平均欧几里得距离,单位为毫米。
  • P-MPJPE: P-MPJPE是估计的三维姿态与ground truth经过后处理后的刚性对准后的MPJPE,对单个关节预测失败具有更强的鲁棒性。
  • PCK:Percentage of Correct Keypoint,在150mm范围内的正确关节点的百分比。
  • AUC:Area Under Curve,曲线下面积。

到了这里,关于PoseFormer:基于视频的2D-to-3D单人姿态估计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mediapipe人体骨架检测和实时3d绘制——Mediapipe实时姿态估计

    大约两年前,基于自己的理解我曾写了几篇关于Mediapipe的文章,似乎帮助到了一些人。这两年,忙于比赛、实习、毕业、工作和考研。上篇文章已经是一年多前发的了。这段时间收到很多私信和评论,请原谅无法一一回复了。我将尝试在这篇文章里回答一些大家经常问到的问

    2024年02月03日
    浏览(44)
  • 学习关于 2D 和 3D 姿势估计的知识

    介绍 让我们了解一下如何将姿势估计用于 Snapchat 滤镜。你有没有想过 Snapchat 的滤镜为什么这么吸引人?Snapchat 上的滤镜种类繁多,从有趣的到化妆的滤镜。这更像是滑动滤镜并选择一个你感兴趣的滤镜来拍照。 阅读本文并不需要任何有关姿势估计的基础知识。本文从头到尾

    2023年04月08日
    浏览(29)
  • 2D人脸关键点转3D人脸关键点的映射~头部姿态笔记

    对通过相机参数计算图像上的二维坐标到三维坐标的映射进行简单探讨。         学习的话直接看他们的就好,我仅是拾人牙慧,拿GPT写给自己看的,图也是直接搬运的别人画的,以下链接有很完善的理论研究和代码提供。 https://medium.com/@susanne.thierfelder/head-pose-estimation

    2024年02月04日
    浏览(34)
  • 简要介绍 | 基于深度学习的姿态估计技术

    注1:本文系“简要介绍”系列之一,仅从概念上对基于深度学习的姿态估计技术进行非常简要的介绍,不适合用于深入和详细的了解。 注2:\\\"简要介绍\\\"系列的所有创作均使用了AIGC工具辅助 姿态估计 是计算机视觉领域的一个重要研究方向,它主要关注如何从图像或视频中提

    2024年02月09日
    浏览(31)
  • 基于OpenCV 和 Dlib 进行头部姿态估计

    工作中遇到,简单整理 博文内容涉及基于 OpenCV 和 Dlib 头部姿态评估的简单Demo 理解不足小伙伴帮忙指正 庐山烟雨浙江潮,未到千般恨不消。到得还来别无事,庐山烟雨浙江潮。 ----《庐山烟雨浙江潮》苏轼 https://github.com/LIRUILONGS/Head-posture-detection-dlib-opencv-.git 实验项目以上传

    2024年02月12日
    浏览(32)
  • 基于 pytorch-openpose 实现 “多目标” 人体姿态估计

    还记得上次通过 MediaPipe 估计人体姿态关键点驱动 3D 角色模型,虽然节省了动作 K 帧时间,但是网上还有一种似乎更方便的方法。MagicAnimate 就是其一,说是只要提供一张人物图片和一段动作视频 (舞蹈武术等),就可以完成图片人物转视频。 于是我就去官网体验了一下,发现

    2024年01月25日
    浏览(29)
  • 基于EKF的四旋翼无人机姿态估计matlab仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB        卡尔曼滤波是一种高效率的递归滤波器(自回归滤波器),它能够从一系列的不完全包含噪声的测量中,估计动态系统的状态。这种滤波方法以它的发明者鲁道夫·E·卡尔曼(Rudolf E. Kalman)命名。卡尔曼最初提

    2023年04月23日
    浏览(37)
  • 基于目标检测、跟踪 的人体姿态估计 算法进行跌倒检测 ---- fall detection

    前序文章: 深度学习与视频分析简介 视频分析:基于目标检测(YOLO)实现走路看手机检测、玩手机检测、跌倒检测等 基于深度学习算法的行为识别解决方案:打电话、玩手机、摔倒等行为动作的识别,跟踪

    2024年02月09日
    浏览(45)
  • LLM量化、高保真图生视频、多模态肢体运动生成、高分辨率图像合成、低光图像/视频增强、相机相对姿态估计

    本文首发于公众号:机器感知 LLM量化、高保真图生视频、多模态肢体运动生成、高分辨率图像合成、低光图像/视频增强、相机相对姿态估计 EasyQuant: An Efficient Data-free Quantization Algorithm for LLMs Large language models (LLMs) have proven to be very superior to conventional methods in various tasks. Howev

    2024年03月12日
    浏览(44)
  • 人体姿态估计和手部姿态估计任务中神经网络的选择

    一、 人体姿态估计 任务适合使用 卷积神经网络(CNN) 来解决。         人体姿态估计任务的目标是从给定的图像或视频中推断出人体的关节位置和姿势。这是一个具有挑战性的计算机视觉任务,而CNN在处理图像数据方面表现出色。         使用CNN进行人体姿态估计

    2024年02月05日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包