【CVPR2023】《A2J-Transformer:用于从单个RGB图像估计3D交互手部姿态的锚点到关节变换网络

这篇论文的标题是《A2J-Transformer: Anchor-to-Joint Transformer Network for 3D Interacting Hand Pose Estimation from a Single RGB Image》,作者是Changlong Jiang, Yang Xiao, Cunlin Wu, Mingyang Zhang, Jinghong Zheng, Zhiguo Cao, 和 Joey Tianyi Zhou。他们来自华中科技大学、阿里巴巴集团、新加坡科学、技术和研究局(A*STAR)的前沿人工智能研究中心(CFAR)以及高性能计算研究所(IHPC)。

摘要

3D交互手部姿态估计(IHPE)是一个挑战性的任务,因为手部存在严重的自遮挡和相互遮挡,两只手的外观模式相似,以及从2D到3D的病态关节位置映射等问题。为了解决这些问题,作者提出了A2J-Transformer,这是一种基于Transformer的非局部编码-解码框架,用于改进A2J(一种最先进的基于深度的单手3D姿态估计方法),以适应交互手部情况的RGB域。A2J-Transformer的主要优势包括:局部锚点通过自注意力机制建立全局空间上下文感知,以更好地捕获关节的全局线索;每个锚点被视为可学习的查询,具有自适应特征学习能力,以提高模式拟合能力;锚点位于3D空间而非2D,以利用3D姿态预测。
在这里插入图片描述
在这里插入图片描述

主要贡献

  • 首次将A2J从深度域扩展到RGB域,用于单RGB图像的3D交互手部姿态估计,并取得了有希望的性能。
  • 通过Transformer的非局部自注意力机制和自适应局部特征学习,使A2J的锚点能够同时感知关节的局部细节和全局上下文。
  • 提出了将锚点设置在3D空间而不是2D空间的方法,以便于基于单目RGB信息解决2D到3D的病态姿态提升问题。

相关工作

论文回顾了3D手部姿态估计的相关研究,包括基于模型的方法和无模型(model-free)方法,以及基于Transformer架构的方法。

方法

A2J-Transformer由三个主要部分组成:特征金字塔提取器、锚点细化模型和锚点偏移权重估计模型。特征金字塔提取器使用ResNet-50作为骨干网络来提取输入RGB图像的金字塔特征。锚点细化模型包含特征增强模块和锚点交互模块,用于增强图像特征并建立锚点之间的交互。锚点偏移权重估计模型用于估计每个锚点相对于每个手部关节的3D偏移和权重。

实验

作者在InterHand2.6M、RHP、NYU和HANDS 2017数据集上进行了实验。结果表明,A2J-Transformer在InterHand2.6M数据集上取得了最先进的无模型(model-free)性能,并且在RHP数据集上展示了良好的泛化能力。此外,作者还对A2J-Transformer的不同组件进行了消融研究,以验证其有效性。

结论

A2J-Transformer是一种有效的3D单目RGB交互手部姿态估计方法,它结合了局部细节和全局上下文信息,并使用3D锚点来更好地拟合深度信息和估计准确的3D坐标。作者计划在未来的工作中尝试表示锚点的运动,并将方法扩展到基于模型的区域。

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

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

相关文章

7. DAX 时间函数-- DATE 日期--TOTALMTD、TOTALQTD、TOTALYTD

函数名目的语法返回值TOTALMTD计算当前上下文中该月份至今的表达式的值 。TOTALMTD ( <表达式>, <日期列>, [<筛选器>] )标量 表示表达式的标量值&#xff0c;在“日期”中给定日期&#xff0c;计算当前月份至今的日期 。TOTALQTD计算当前上下文中该季度至今…

k8s 部署 kube-prometheus监控

一、Prometheus监控部署 1、下载部署文件 # 使用此链接下载后解压即可 wget https://github.com/prometheus-operator/kube-prometheus/archive/refs/heads/release-0.13.zip2、根据k8s集群版本获取不同的kube-prometheus版本部署 https://github.com/prometheus-operator/k…

Unity实现动态数字变化

最近的项目需要动态显示数字&#xff0c;所以使用Text组件&#xff0c;将数字进行变化操作过程记录下来。 一、UI准备 1、新建一个Text组件 2、新建C#脚本 3、将Text挂载到脚本上 二、函数说明 1、NumberChange 方法 NumberChange 方法接收四个参数&#xff1a;初始数字 in…

页面动态滑动事件如何实现?锚点如何实现?

在提交材料、页面互动时候&#xff0c;锚点是一个常用的东西&#xff0c;实现: 应用场景测试场景测试源码 应用场景 测试场景 当点击submit时候&#xff0c;即可滑动到对应的id标签 测试源码 <!DOCTYPE html> <html lang"en"> <head><meta …

云架构(五)BBF模式

BFF模式&#xff08;Backends for Frontends pattern&#xff09;- https://learn.microsoft.com/en-us/azure/architecture/patterns/backends-for-frontends。 创建单独的后台服务用以提供给特定的前端或者接口。当你希望避免为多个接口定制单独的后台时&#xff0c;此模…

Jenkins和gitlab实现CICD

1 背景 在开发TracerBackend服务的时候&#xff0c;每次更改代码之后需要推送到gitlab&#xff0c;然后ssh登录到Ubuntu的服务器上部署新的代码。服务成功启动之后&#xff0c;在本地执行测试用例&#xff0c;觉得这一套操作流程还是挺复杂的。想起公司的代码发布流程&#xf…

黑马程序员Linux简单入门学习笔记

Linux介绍 内核提供系统最核心的功能&#xff0c;如: 调度CPU、调度内存、调度文件系统、调度网络通讯、调度等系统级应用程序&#xff0c;可以理解为出厂自带程序&#xff0c;可供用户快速上手操作系统&#xff0c;如:文件管理器、任务管理器、图片查看、音乐播放等 目录结构 …

【Java网络编程】网络编程中的基本概念及实现UDP、TCP客户端服务器程序

目录 一、什么是网络编程&#xff1f; 二、网络编程中的基本概念 1. 客户端和服务器 2. 请求和响应 三、Socket套接字 UDP数据报套接字编程 1. DatagramSocket 2. DatagramPacket 3. UDP回显客户端服务器程序 4. UDP字典客户端服务器程序 TCP流套接字编程 1. Serve…

嵌入式linux中利用QT控制蜂鸣器方法

大家好,今天给大家分享一下,如何控制开发板上的蜂鸣器。 第一:开发板原理图 从原理图中可以得出,当引脚输出低电平的时候,对应的蜂鸣器发出响声。 第二:QT代码详细实现 设置一个按钮,点击即可控制BEEP状态发生反转。 #ifndef MAINWINDOW_H #define MAINWINDOW_H#in…

从0到1实现RPC | 接入Apollo配置中心

一、代码实现 添加依赖 添加apollo客户端的依赖和spring配置相关依赖 添加监听器 通过实现ApplicationContextAware接口&#xff0c;获取Spring上下文。 使用ApolloConfigChangeListener注解监听命名空间rpc-demo-provider.yaml和默认的application.properties。 监听逻辑…

STL的map:ALV树和红黑树

ALV树 平衡因子的几种情况 单旋 双旋 红黑树 三种情况 第二种情况变种&#xff1a;不同的是折线要双旋 总结&#xff1a;

Python编程玩转二维码

文章目录 Python编程玩转二维码第一部分&#xff1a;背景介绍第二部分&#xff1a;qrcode库是什么&#xff1f;第三部分&#xff1a;如何安装这个库&#xff1f;第四部分&#xff1a;库函数使用方法第五部分&#xff1a;场景应用第六部分&#xff1a;常见Bug及解决方案第七部分…