当前位置: 首页 > news >正文

End-to-end 3D Human Pose Estimation with Transformer

基于Transformer的端到端三维人体姿态估计

摘要

基于Transformer的架构已经成为自然语言处理中的常见选择,并且现在正在计算机视觉任务中实现SOTA性能,例如图像分类,对象检测。然而,卷积方法在3D人体姿态估计的许多方法中仍然保持SOTA性能。受视觉变换器最近发展的启发,我们设计了一个无热图结构,使用标准的变换器架构和可学习的对象查询来建模每个帧内的人体关节关系,然后输出准确的关节位置和类型,我们还提出了一个基于变换器的姿势识别架构,没有任何贪婪算法来在运行时对预测的骨骼进行后处理。在实验中,我们实现了最佳的性能之间的方法,直接回归3D关节位置从一个单一的RGB图像,并报告与许多2D到3D提升方法的竞争结果。

我们模型的整体架构。遵循DETR的模式,我们使用CNN主干来提取多尺度特征,然后使用位置编码和可学习的层编码来补充扁平化的多尺度特征,然后使用3D直接方法人体姿势Transformer从输入特征中回归3D人体姿势。为了突出集合预测和对3D HPE上的Transformer器的从粗到细训练的重要性,我们设计了两种类型的变换器,其细节将在后面描述。

我们的方法的贡献如下:

·我们提出了一个单级端到端3D人体姿态估计网络。在此基础上,验证了DETR算法对三维关键点检测的有效性。

·为了降低模型直接学习3D空间中人体关键点表示的难度,我们提出了一种基于由粗到细中间监督的解码器连接结构。

通过比较强制对齐Transformer检测网络和我们提出的网络,我们研究了可学习的联合查询和二分匹配损失对最终效果的影响。

方法

Transformer 3D HPE基线
联合检测Transformer架构

Transformer 3D HPE baseline由三部分组成:具有可变形注意力以利用多尺度特征的Transformer编码器,具有固定查询大小和类型的Transformer解码器,以及多层感知。基于基线架构,联合检测Transformer在解码器中增加了中间训练和集合预测,并且还增加了后处理阶段以完成可能不完整的骨架。


三个要素对于解释直接估计和2D到3D提升方法之间的性能差距至关重要:

(1)多尺度输入图像特征

(2)捕捉图像特征与关节位置之间的关系,这导致遮挡下的巨大性能下降;

(3)有先验知识的由粗到精的培训;

我们还发现,Transformer中的自注意机制可以代替一般检测网络中的检测头,捕获联合查询之间的联合关系,该机制可以解释为细化输入特征向量(Q)、特征到结果映射向量(K)、结果向量(V)的隐藏表示,该过程可以用公式表示(√ dk是缩放参数):

多尺度可变形注意力[18]解决了Transformer架构在计算机视觉任务中只能使用单层特征,并且需要很长的训练时间才能专注于部分图像特征的问题。

其中,Aqk是关注值,φl(Φ pq)是特征层l的归一化参考点,Δ pq是可学习参考点偏移。

整体架构如图2所示。我们首先介绍我们的姿势识别基线网络与forcealigned Transformer和多层变形注意,然后我们介绍我们的联合检测变压器,最后一个联合细化网络,以填补不完整的预测骨架。

A. Transformer 3D HPE baseline

我们实现了我们的基线模型与标准的Transformer为基础的架构。基线模型使用固定的联合查询大小,并且仅利用Resnet输出的最后一层特征(见图2(a)),我们还将Transformer编码器中的自注意层和变换器解码器中的交叉注意层替换为多尺度可变形注意。在编码器阶段,由Resnet生成的图像特征被展平并馈送到Transformer编码器中以产生上下文敏感的图像特征。编码器还利用位置嵌入和尺度级嵌入来保留原始图像的位置和层信息。该过程可以被公式化为:

通过主干网络进行特征提取后,对特征图进行E ∈ R1 × 1 × C卷积,然后将特征图的空间维数折叠成一维d × HW。为了显示可学习的联合查询在3D姿态估计任务中的有效性,我们的基线网络将每个查询与相应的联合对齐。对于输入序列X ∈ RJ×h,J表示地面真值节点的个数,h是Transformer的隐维数,xi ∈ R1 ×(h)|i = 1,2,…J指示每个查询的输入向量。然后将输出序列Xdec ∈ Rf×3馈送到可选的关键点完成网络中,以重建丢失的关键点并细化预测的姿态。

B.联合检测Transformer

基于上述基线模型,我们做了一些改进,解码器现在将N个查询的固定大小集合作为输入,其中N显著大于大多数人体姿势估计数据集中的典型关节数,在我们的情况下,我们将N设置为100。并且在解码器层的末端,分类头在J种类型的关节和背景之间进行预测,并且3通道回归头输出每个关键点的基于根的3d坐标。参见图2(B)。由于解码器预测的关节数量大于地面真实骨架,因此我们应用二分损失函数来训练我们的网络,以找到预测(表示为P的量)和地面真实对象(表示为G的量)之间的最佳匹配,我们模型的优化目标是以最低成本找到函数σ ∈ [P] → [G]。

其中LHungarian旨在以最低成本找到预测集和地面实况集之间的匹配。将σ(i)定义为对应于地面实况关节i的预测指数,将(pσ(i)(ci)定义为Lmatch的类别ci的概率,并且将(bσ(i),bi)定义为预测关节位置和地面实况关节位置。当配对的地面实况对象是时,我们手动定义配对成本Lmatch = 0,并且当配对的地面实况对象是真实的关节(即,不是)时,预测的关节类型与地面实况对象匹配的概率越大,或者两者之间的关节损失越小,配对成本Lmatch越小。在推理阶段,我们不能使用地面真值密钥,所以我们只使用分类概率来匹配N个预测与J个类型的关节。在我们的实现中,我们使用分类概率和联合位置误差的加权混合来匹配我们的对象查询,损失被定义为λclsLcls(bi,bσ(i))+ λregLreg(bi,bσ(i)),其中λcls和λreg是控制给定预测联合及其最佳匹配的联合类型分类损失和联合位置损失的权重的2个超参数。

为了减轻模型学习在3D HPE任务中常见的高度非线性三维坐标的难度,我们在解码器阶段采用了由粗到精的训练,我们希望解码器能够逐渐学习到关节点的位置信息(如图3所示),

所以我们设计关节位置回归损失Ljoint如下:

 

其中,θ(i)给出地面实况联合i的最佳匹配,xdl是对应解码器层的阈值,γydl是衰减系数。我们将分类损失Lcls定义为:

我们对每个解码器层应用上述损耗计算,并且逐层地将xdl减小到最后一层处的0。此外,我们不仅使用由粗到精的训练方法来训练我们的模型,以逐层细化关节点的预测,我们还特别设计了一种连接方法,以便后一层的解码器可以使用前一层的预测。

C.关节点细化网络

虽然对象查询机制可以减少遮挡的影响,但由于严重遮挡或训练期间空关节和其他关节类型的比例不平衡,仍然可能存在未检测到的关节。为了解决这个问题,我们设计了一个网络来完成不完整的骨架,我们将这个网络命名为联合点精化网络。受BERT的掩模机制的启发,对于每个不完整的预测关节集vi =(xj,yj,zj)J,j=1(地面实况定义的关节大小捐赠J),我们选择预测关节集的20%。如果选择了预测骨架的第i个关节点,则将其替换为(1)骨架树中其父节点和子节点的中点(如果所选节点是叶节点,则直接设置为父节点位置)80%的时间(2)第i个关节位置在20%的时间内不变,然后与其非空的父关节和子关节连接,并将掩蔽集输入到多层感知器中以生成相应的完整关节集,并使用回归头来回归最终的骨架输出,我们期望模型学习预测骨架的内部关系并使用现有的关节位置来完成骨架。对于训练,我们仅计算掩蔽关节的损失,我们应用损失函数Lc如下:

 其中,B是关节点细化网络的输出关节,p是真实关节点,M是所选关节的数量。与普通的三维人体姿态估计相比,关节点精化网络的训练数据更容易获得。训练这个网络只需要骨架数据,这些数据可以从多个来源收集。

结论

本文提出了一种基于Transformer的端到端人体姿态估计方法。Transformer编码器使用可变形多尺度注意力来接收由骨干网络产生的多尺度特征图输出作为输入。然后将增强的联合查询和编码的图像特征用作Transformer解码器的输入,与二分图像匹配损失相结合以获得3D人体姿势。我们的方法降低了学习三维人体姿势表示的模型的难度。在多个数据集上的实验定性和定量地验证了该方法的有效性。

相关文章:

End-to-end 3D Human Pose Estimation with Transformer

基于Transformer的端到端三维人体姿态估计 摘要 基于Transformer的架构已经成为自然语言处理中的常见选择,并且现在正在计算机视觉任务中实现SOTA性能,例如图像分类,对象检测。然而,卷积方法在3D人体姿态估计的许多方法中仍然保…...

状态管理Pinia

Vue3 状态管理 - Pinia 1. 什么是Pinia Pinia 是 Vue 的专属的最新状态管理库 ,是 Vuex 状态管理工具的替代品 2. 手动添加Pinia到Vue项目 后面在实际开发项目的时候,Pinia可以在项目创建时自动添加,现在我们初次学习,从零开始…...

maven运行报错解决

在IDEA上运行较大项目时,编译量很大,可能会报出 Error:java: java.lang.OutOfMemoryError: Java heap space 的错误,解决方法如下: java.lang.OutOfMemoryError是内存不足导致的,因此需要修改Idea运行项目的内存大小。…...

在线会计软件推荐:高效实用的选择解析

如果您始终在密切关注Zoho,您一定知道,我们的软件在一个接一个的增加,为的是构建出一套可以全面在线协作、提升业务生产力的应用系统,我们始终致力于为各类企业构建完整的业务应用,以便他们在Zoho上运行整个业务系统。…...

vue监听Enter键

目录 keydown.enter 方法1: 使用keydown.enter指令 方法2: 在keydown事件处理函数中检查按下的键 keyup.enter.native keydown.enter与keyup.enter.native区别 1. 触发时机: 2. 事件类型: 3. 事件冒泡: keydown.enter 在Vue中监听En…...

ADS中带通滤波器模型参数含义学习笔记

ADS中带通滤波器模型参数含义 1、 Fcenter 中心频率 2、 BWpass 通带带宽 3、 Apass 衰减量时的通带带宽 这两个是对应的,比如说是80MHz,3dB,那么就是3dB时的带宽为80MHz,如果改为0.1dB,那么带宽就是0.1dB时的带宽为80…...

【Blender】Blender入门学习

目录 0 参考视频教程0.1 Blender理论知识0.2 Blender上手实践0.3 FBX模型导入Unity 1 Blender的窗口介绍1.1 主界面1.2 模型编辑窗口 2 Blender的基本操作2.1 3D视图的平移2.2 3D视图的旋转2.3 3D视图的缩放2.4 修改快捷键2.5 使物体围绕选择的物体旋转2.6 四视图的查看2.7 局部…...

Redis 三种特殊的数据类型 - Geospatial地理位置 - Hyperloglog基数统计的算法 - Bitmaps位图(位存储)

目录 Redis 三种特殊的数据类型: Geospatial:地理位置 Geospatial类型常用的命令: GEOADD:添加地理位置 GEOPOS:获取地理位置 GEODIST:返回两个给定位置之间的距离 GEORADIUS:以给定的经纬…...

Python web 框架web.py「简约美」

web.py is a web framework for Python that is as simple as it is powerful. web.py is in the public domain, you can use it for whatever purpose with absolutely no restrictions. web.py 是一个简单而强大的 Python Web 框架。web.py 属于公共领域,您可以…...

Bootstrap 重新数据查询时页码为当前页问题

记录一下使用前端组件Bootstrap遇到的一个小问题: 问题描述 第一次查询数据为5页,翻页到第5页后,选中条件再次查询数据时,传到后端页码仍旧为5,而此时数据量小于5页,这时候页码没有重置成第一页&#xff…...

scratch舞蹈比赛 2023年5月中国电子学会图形化编程 少儿编程 scratch编程等级考试四级真题和答案解析

目录 scratch舞蹈比赛 一、题目要求 1、准备工作 2、功能实现 二、案例分析...

windows下安装redis扩展库

1.根据PHP版本号,编译器版本号和CPU架构 选择php_redis和php_igbinary文件(如果是选择线程的情况下需要再去配置php5ts.dll) windows.php.net - /downloads/pecl/releases/redis/ windows.php.net - /downloads/pecl/releases/igbinary/ php_igbinary-3.1.2-7.2-…...

大数据平台数据安全具体措施有哪些?有推荐的吗?

大数据平台是企业处理和分析数据的重要工具之一,也是企业数据存储的重要载体,因此保障大数据平台安全至关重要。那你知道大数据平台数据安全具体措施有哪些?有推荐的吗? 大数据平台数据安全具体措施有哪些? 1、数据…...

基于SSM的健康综合咨询问诊平台设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…...

每日一题 2596. 检查骑士巡视方案

难度:中等 很简单,从第 0 步开始模拟即可,唯一sb的就是测试用例中如果(0,0)处不为0的话就直接false,而不是去找0在哪 我的代码: class Solution:def checkValidGrid(self, grid: L…...

第二章 进程与线程 三、进程控制

目录 一、定义 二、实现方式(用原语实现) 注意: 1、原语是什么 2、如何实现原语的原子性 3、关中断指令和开中断指令是什么 三、进程控制的相关原语 1、进程的创建 ​编辑 2、进程的终止 3、进程的阻塞与唤醒(阻塞和唤醒…...

【云原生进阶之PaaS中间件】第二章Zookeeper-3.2架构详解

1 Zookeeper工作原理 1.1 Zookeeper的角色 领导者(leader),负责进行投票的发起和决议,更新系统状态 学习者(learner),包括跟随者(follower)和观察者(obser…...

K8S:kubectl陈述式、声明式资源管理及金丝雀部署

文章目录 一.陈述式资源管理方法1.陈述式资源管理概念2.基本信息查看(1)查看版本信息(2)查看资源对象简写(3)查看集群信息(4)配置kubectl自动补全(5)node节点…...

docker容器日志管理

docker容器日志导致主机磁盘空间满了。docker logs -f container_name 噼里啪啦一大堆,很占用空间,需要的日志可进行备份,不用的日志可以清理掉了。 设置一个容器服务的日志大小上限 上述方法,日志文件迟早又会涨回来。要从根本上…...

Oracel ORA-22992 错误的解决方法

在oracle数据库中,可以使用DBLink 进行垮数据库访问。 今天在使用dblink 查询数据时,提示如下:ORA-22992:无法使用从远程表选择的LOB定位器。 无论是查询远程表还是视图,如果里面存在 CLOB类型的字段,就会…...

CrossOver 23 正式发布:可在 Mac 上运行部分 DX12 游戏

CodeWeivers 公司于今年 6 月发布了 CrossOver 23 测试版,重点添加了对 DirectX 12 支持,从而在 Mac 上更好地模拟运行 Windows 游戏。 该公司今天发布新闻稿,表示正式发布 CrossOver 23 稳定版,在诸多新增功能中,最值…...

一、Mediasoup源码介绍

一、Mediasoup 整体结构 整个Mediasoup库通过Nodejs管理,比如整体逻辑、worker、router、producer、consumer...都是通过JS进行管理的。 其底层的数据传输是通过C部分进行控制的,通过NodeJs来控制C部分,以实现整体的数据传输效 二、Mediasou…...

⑧ 嵌套路由配置

这种就是路由嵌套 在index.js中加上三级页面 引入到二级导航里面 增加重定向配置 三级页面默认显示第一个页面信息 在这里插入图片描述...

【ppt技巧】将幻灯片里的图片背景设置为透明

在PPT中添加了图片,想要将图片中的背景设置为透明或者想要抠图,有什么方法吗?今天分享两个方法。 方法一: 添加图片,选中图片之后,点击【图片格式】功能,点击最左边的【删除背景】 PPT会自动帮…...

rrweb入门

rrweb 背景 rrweb 是 record and replay the web,是当下很流行的一个录制屏幕的开源库。与我们传统认知的录屏方式(如 WebRTC)不同的是,rrweb 录制的不是真正的视频流,而是一个记录页面 DOM 变化的 JSON 数组&#x…...

OSCP系列靶场-Esay-Vegeta1保姆级

OSCP系列靶场-Esay-Vegeta1保姆级 目录 OSCP系列靶场-Esay-Vegeta1保姆级总结准备工作信息收集-端口扫描目标开放端口收集目标端口对应服务探测 信息收集-端口测试22-SSH端口的信息收集22-SSH端口版本信息与MSF利用22-SSH协议支持的登录方式22-SSH手动登录尝试(无)22-SSH弱口令…...

AJAX学习笔记9 搜索联想自动补全

AJAX学习笔记8 跨域问题及解决方案_biubiubiu0706的博客-CSDN博客 其实就一个功能 搜索联想 自动补全 键盘按下事件keydown 键盘弹起事件keyup 做模糊查询 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><t…...

Docker启动失败报错Failed to start Docker Application Container Engine解决方案

Docker启动失败报错Failed to start Docker Application Container Engine解决方案_天涯人6的博客-CSDN博客...

安装React脚手架

在安装React脚手架之前&#xff0c;你需要决定使用哪个包管理工具。这里我们选择使用npm。运行下面的命令来安装React脚手架&#xff1a; npm install -g create-react-app这个命令会在全局安装React脚手架工具create-react-app。 现在&#xff0c;你已经准备好创建一个新的R…...

想要精通算法和SQL的成长之路 - 受限条件下可到达节点的数目

想要精通算法和SQL的成长之路 - 受限条件下可到达节点的数目 前言一. 相交链表&#xff08;邻接图和DFS&#xff09; 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 相交链表&#xff08;邻接图和DFS&#xff09; 原题链接 public int reachableNodes(int n, int[][] ed…...

制作视频模板/应用宝aso优化

宣传官网 xb.exrick.cn在线Demo xboot.exrick.cn开源版Github地址 github.com/Exrick/x-bo…开发文档 www.kancloud.cn/exrick/xboo…获取完整版 xpay.exrick.cn/pay?xboot JWT JSON Web Token (JWT)是一个开放标准(RFC 7519)&#xff0c;它定义了一种紧凑的、自包含的方式&am…...

宁波企业网站制作/google中文搜索引擎

(点击上方公众号&#xff0c;可快速关注)来源&#xff1a;Float_Luuu&#xff0c;my.oschina.net/andylucc/blog/539783今天查了很多资料&#xff0c;主要是想搞清楚写JAVA和CacheLine有什么关系以及我们如何针对CacheLine写出更好的JAVA程序。CPU和内存CPU是计算机的大脑&…...

网站怎么做二级页面/关键词优化的发展趋势

在JSP中可以使用许多不同的方式生成动态内容. 选择什么方式取决于项目大小和复杂程度. 直接调用Java代码&#xff1a;将所用代码放到JSP页面中间接的调用Java代码&#xff1a;插入需要调用类的方法使用JavaBean实用工具类&#xff1a;使用<jsp:useBean><jsp:getProp…...

wordpress鼠标特效/游戏推广公司

这两天&#xff0c;在研究&#xff0c;怎么实现&#xff0c;.net里面的URL重写与伪静态&#xff0c;在MSDN里面&#xff0c;学习了一下&#xff0c;又在网上搜了一些资料&#xff0c;终于做出来了&#xff0c;给大家分享一下。 一&#xff0c;获得Mircosoft URLRewriter.dll&am…...

高端定制手机网站/关键路径

考真word2007手机版是提供在线备考服务的应用软件&#xff0c;收录了大量的考试真题可以练习&#xff0c;提醒丰富全面&#xff0c;难度不一&#xff0c;层层递进&#xff0c;还模拟考场&#xff0c;支持自动阅卷、评分&#xff0c;提供手把手教学、答案演示等功能&#xff0c;…...

高端大气的公司名称/seo关键词排名如何

死锁&#xff1a;在多线程程序中&#xff0c;同步时可能需要多个锁&#xff0c;如果获得锁的顺序不一致&#xff0c;可能会导致死锁&#xff0c;死锁不一定会出现。 如何避免死锁&#xff1f; 答&#xff1a; 当需要获得多个锁时&#xff0c;所有线程获得锁的顺序保持一致即可…...