2018ECCV Can 3D Pose be Learned from2D Projections Alone?

news2024/11/21 0:22:36

摘要

在计算机视觉中,从单个图像的三维姿态估计是一个具有挑战性的任务。我们提出了一种弱监督的方法来估计3D姿态点,仅给出2D姿态地标。我们的方法不需要2D和3D点之间的对应关系来建立明确的3D先验。我们利用一个对抗性的框架,强加在3D结构上的先验,仅从他们的随机2D投影。给定一组2D姿态界标,生成器网络假设它们的深度以获得3D骨架。我们提出了一种新的随机投影层,它随机投影生成的3D骨架,并将产生的2D姿态发送到鉴别器。鉴别器通过区分所生成的姿态和来自2D姿态的真实的分布的姿态样本来改进。训练不需要发生器或鉴别器的2D输入之间的对应关系。我们将我们的方法应用于三维人体姿态估计的任务。Human3.6M数据集的结果表明,我们的方法优于许多以前的监督和弱监督方法。

引言

我们提出了一个弱监督学习算法来估计三维人体骨架从二维姿势地标。与以前的方法不同,我们不通过3D数据或利用显式的2D-3D对应来明确地学习先验。我们的系统可以生成3D骨架,只观察2D姿势。本文的贡献如下:

1.我们提出并证明,可以仅通过观察2D姿势来学习潜在的3D姿势分布,而不需要从3D数据进行任何回归。

2.我们提出了一个新的随机投影层,并利用它与对抗训练沿着从2D投影中强制执行3D结构的先验。

 我们方法背后的关键直觉:给定输入2D姿态,存在无限数量的3D配置,其投影匹配该视图中的2D界标的位置。然而,从另一个随机选择的视点来看,不可信的3D骨架不太可能看起来真实。相反,准确估计的3D姿态的随机2D投影更可能符合真实的2D姿态分布,而不管观看方向如何。我们利用这个属性来学习3D上的先验通过2D投影。为了使3D姿态估计准确,(a)3D姿态到原始相机上的投影应当接近检测到的2D界标,以及(b)3D姿态到随机相机上的投影应当产生适合真实的2D界标的分布的2D界标。

生成对抗网络(GAN)[12]提供了一个自然的框架来学习分布而无需显式监督。我们的方法通过2D姿势间接学习潜在分布(3D姿势先验)。给定2D姿态,生成器假设关节位置的相对深度以获得3D人体骨骼。生成的3D骨架的随机2D投影与实际2D姿态样本一起被馈送到鉴别器(参见图2)。馈送到发生器和鉴别器的2D姿态在训练期间不需要任何对应。鉴别器从2D投影中学习先验,并使生成器能够最终产生逼真的3D骨架。

图2 

其中生成器(用于深度预测)

2D姿态到3D骨架的弱监督提升

在本节中,我们将描述我们的弱监督学习方法,以将2D人体姿势点提升到3D骨架。对抗性网络是出了名的难以训练,我们讨论了导致稳定训练的设计选择。为了与生成对抗网络命名约定的一致性,我们将3D姿态估计网络称为生成器。为了简单起见,我们在相机坐标系中工作,其中具有单位焦距的相机以世界坐标系的原点(0,0,0)为中心。设xi =(xi,yi),i = 1。..N表示N个2D姿势界标,其中根关节(髋关节之间的中点)位于原点处。因此,2D输入姿态由x = [x1,..xN]。对于数值稳定性,我们的目标是生成3D骨架,使得从头部顶部到根部关节的距离约为1个单位。

生成器Generator

生成器G被定义为输出每个点xi的深度偏移oi的神经网络

其中θG是在训练期间学习的发生器的参数。每个点的深度定义为

其中d表示相机与3D骨架之间的距离。注意,d的选择是任意的,只要d > 1。将zi约束为大于1可确保将点投影到摄影机前面。实际上,我们使用d = 10个单位。

接下来,我们定义反向投影和随机投影层,负责生成3D骨架并将其投影到其他随机视图。

背面投影层Back Projection Layer

反投影层采用输入2D点xi和预测的zi以计算3D点Xi = [zixi,ziyi,zi]。注意,我们使用精确透视投影代替近似,例如正投影或旁透视投影。

随机投影层 Random Projection Layer

假设的(生成的)3D骨架使用随机生成的相机取向被投影到2D姿态,以被馈送到鉴别器。为了简单起见,我们随机旋转3D点(原地)并应用透视投影以获得假2D投影。设R是随机旋转矩阵,T = [0,0,d]。令Pi = [Px i,Pyi,Pz i ] = R(Xi-T)+T表示应用随机旋转之后的3D点。这些点被重新投影以获得假2D点pi = [pxi,py i ] = [Px i /Pz i,Py i /Pz i ]。旋转的点Pi也应该在相机前面。为了确保这一点,我们还强制Pz i ≥ 1。设p = [p1],..,pN]表示2D投影姿态。

注意透视投影中存在固有的模糊性;将3D骨架的尺寸和距照相机的距离加倍将导致相同的2D投影。因此,预测绝对3D坐标的生成器在批次中的每个训练样本的预测大小和距离之间具有附加的自由度。这可能潜在地导致生成器输出和批次内的梯度幅度的大的变化,并且导致训练中的收敛问题。我们通过预测相对于恒定深度d的深度偏移并围绕它旋转来消除这种模糊性,从而实现稳定的训练。在第4节中,我们为我们的方法定义了一个简单的基线,该基线假设所有点的深度恒定(深度偏移等于零,平坦的人体骨骼输出),并表明我们的方法可以预测有意义的深度偏移

判别器 Discriminator

鉴别器D被定义为神经网络,其消耗假2D姿态p(从生成的3D骨架随机投影)或真实的2D姿态r(经由相机或合成视图的真实3D骨架的一些投影),并分别将它们分类为假(目标概率为0)或真实(目标概率为1)。

其中θD是在训练期间学习的鉴别器的参数,并且u表示2D姿态。注意,对于任何训练样本X,我们不要求r与X或其任何多视图对应相同。在学习过程中,我们使用标准的GAN损失[12],定义为

先验的3D骨架,如肢体长度和关节角度的比例隐式学习,只使用随机的2D投影。

在我们的生成器和鉴别器架构中使用的残差块

Training

对于训练,我们通过使用根关节将2D姿势标志居中并缩放像素坐标来归一化2D姿势标志,使得训练数据上的平均头根距离是2D中的1/d单位。虽然我们可以在GPU内存中容纳整个数据,但我们使用的批处理大小为32,768。我们使用Adam优化器[21],生成器和鉴别器网络的起始学习率为0.0002。我们在实验中将批量在8,192和65,536之间变化,但对性能没有任何显著影响。8个TitanX GPU的训练时间为每批0.4秒。

生成器结构

生成器接受表示14个2D关节位置的28维输入。输入连接到全连接层以将维度扩展到1024,然后馈送到后续残差块中。与[26]类似,残差块由一对完全连接的层组成,每个层有1024个神经元,然后是批量归一化[16]和RELU(见图3)。通过全连接层减小最终输出以产生14维深度偏移(每个姿势关节一个)。在生成器中采用总共4个残差块。

鉴别器架构

类似于生成器,鉴别器还从真实2D姿态数据集或从假设的3D骨架投影的假2D姿态获取表示14个2D关节位置的28个输入。这经过大小为1024的全连接层以馈送如上文所定义的后续3个残余块。最后,鉴别器的输出是一个2类softmax层,表示输入是真实的的还是假的概率。

随机旋转

随机投影层通过从[0,20]度随机采样仰角φ和从[0,360]度随机采样方位角θ来创建随机旋转。这些角度被选择作为一种启发,以粗略地模拟大多数“在当时的野生”图像将具有的可能视点。

实验结果

基线

我们定义了一个平凡的基线与天真的算法,预测一个恒定的深度为每个2D姿势点。这相当于输出恒定深度偏移的生成器。对于使用地面实况2D点的协议2,这种方法的MPJPE是127.3mm。我们在实践中实现了更低的错误率,加强了我们的生成器能够按照预期学习现实的3D姿势的事实。

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

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

相关文章

vue通过draggable实现拖拽功能

1. 官方文档 2. 安装 yarn add vuedraggable npm i -S vuedraggable <script src"//cdnjs.cloudflare.com/ajax/libs/Vue.Draggable/2.20.0/vuedraggable.umd.min.js"></script> 3. 其他组件&#xff1a; sortablejs.js拖拽 非官网文档 npm install …

Java 集合框架3

一、集合框架分类 二、 关于Map接口的常用类 1.HashMap HashMap类是Map接口的子类&#xff0c;是处理无序键值对集合的 HashMap特征1.允许有null键和null值2.数据保存是无序的3.重复的键被算作一个数据 i.HashMap构造方法 //HashMap() 构造一个初始存储空间为16&#xff0c;负…

zemax混合式非序列模拟

基础设置&#xff1a; 3D视图效果&#xff1a; 接下来用非序列模式设计一个多焦透镜 平行光束经过多焦透镜时&#xff0c;会汇聚在不同焦距处 非序列模式的编辑器如图&#xff1a; 注意不要点击左侧的非序列模式&#xff0c;那个时纯粹的非序列&#xff0c;会清除序列模式的数…

Revit SDK 介绍:AutoStamp 自动水印 AutoUpdate 自动更新 CancelSave

前言 这三个例子都是通过注册事件来完成相应的工作&#xff0c;内容比较简单。 内容 事件参考博客&#xff1a;Revit API&#xff1a;Events 事件总览 AutoStamp 自动水印 使用到的事件&#xff1a; application.ControlledApplication.ViewPrinting application.Controll…

时序预测 | MATLAB实现EEMD-SSA-LSTM、EEMD-LSTM、SSA-LSTM、LSTM时间序列预测对比

时序预测 | MATLAB实现EEMD-SSA-LSTM、EEMD-LSTM、SSA-LSTM、LSTM时间序列预测对比 目录 时序预测 | MATLAB实现EEMD-SSA-LSTM、EEMD-LSTM、SSA-LSTM、LSTM时间序列预测对比预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 时序预测 | MATLAB实现EEMD-SSA-LSTM、E…

第一章辩证唯物论,考点七思维导图

逻辑框架 考点七思维导图&#xff1a;

【【萌新的STM32学习-27--USART异步通信配置步骤】】

萌新的STM32学习-27–USART异步通信配置步骤 USART/UART 异步通信配置步骤 1.配置串口工作参数 HAL_UART_Init() 我们会在此处调用MSP中的回调函数 2.串口底层初始化 用户定义HAL_UART_MspInit() 配置GPIO NVIC CLOCK 等 3.开启串口异步接收中断 HAL_UART_Receive_IT() 4.…

基于简单的信息变换实现自然语言模型

题目:基于简单的信息变换实现自然语言模型 摘要:在自然语言处理中,自然语言模型是至关重要的。本论文提出了一种基于简单的信息变换实现自然语言模型的方法。该方法将输入信息进行一系列的信息变换,如分割、属性、等效替换、增加删除等变换,与原始信息进行比较,得知信息是…

解决window安装docker报错问题

第一次打开Docker Desktop后提示错误 试了网上版本都没用&#xff0c;后面发现是电脑没有下载相关虚拟机&#xff1a; 先点击链接下载wsl2&#xff0c;下载后命令行执行&#xff1a;dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /…

Jenkins发送邮件(简洁版)

需求背景 Jenkins构建结束需要通知客户下载项目WAR包&#xff0c;太麻烦且构建时间久的话可能忘记通知客户&#xff0c;想要构建结束自动邮件通知客户。 实现方法 # 安装mailx command -v mailx &> /dev/null || sudo yum -y install mailx# 发送邮件 recipient"ch…

深入解析即时通讯App开发中的关键技术

即时通讯App开发在现代社交和通信领域中扮演着重要的角色。随着移动设备的普及和网络的高速发展&#xff0c;人们对即时通讯工具的需求不断增加。本篇文章将深入探讨即时通讯App开发中的关键技术&#xff0c;帮助读者了解该领域的最新动态和技术趋势。 基础架构和通信协议 现…

Fair|Fur —— Fur Workflow

Hair Utils工具架 Hair Utils工具架上的Add Fur工具&#xff0c;对任何groom是一个好的起点&#xff0c;会对所选的skin自动创建Guide Groom和Hair Generate对象&#xff1b;如是带动画的skin&#xff0c;还会创建Guide Deform对象&#xff1b; Hair Utils工具架上的Create Gui…

WindowsServer2019安装.NET3.5

WindowsServer2019安装.NET3.5报0x800f0950 解决方法&#xff1a;复制WindowsServer2019镜像到目的操作系统 右键“此电脑”&#xff0c;以管理员权限打开服务器管理界面。 点击“添加角色和功能”。 然后一直下一步&#xff0c;找到要添加的.NET3.5功能即可。 ​​​​​​​设…

.NET Framework 3.5安装教程

一、概述 使用VS编程时&#xff0c;碰到需要安装低版本.NET Framework框架的第三方库文件。 环境&#xff1a; 操作系统 Window10 软件版本VS2015 二、安装 1、在Win10搜索框输入“启动或关闭 Windows功能”&#xff0c;然后点击“启动或关闭 Windows功能”项&#xff0c;如下图…

复旦MBA姜璐:勇往直前,成长永无止境

日月光华&#xff0c;旦复旦兮&#xff01;复旦MBA如同一个巨大的磁场&#xff0c;吸引了诸多来自五湖四海、各行各业的职场精英。从初入职场的青涩懵懂到如今的独当一面专业干练&#xff0c;他们逐渐成长为职场的中坚力量&#xff0c;在各自领域内发光发热。作为新时代的青年&…

汽车以太网协议栈

《大师说》栏目上线啦# 《大师说》栏目是怿星科技2023年推出的深度思考栏目&#xff0c;通过邀请内部专家&#xff0c;针对智能汽车行业发展、技术趋势等输出个性化的观点。每期一位大师&#xff0c;每位一个话题&#xff0c;本期由我们怿星的CTO虞胜伟&#xff0c;进行分享。…

盘点狼人杀中的强神与弱神 并评价操作体验

最初 强神是大家对猎人的称呼&#xff0c;但随着板子的增加 强神渐渐变成了强神神牌的统称。 狼人杀发展至今板子已经非常多了&#xff0c;而每个板子都会有不同的角色。 相同的是 大部分都会希望拿到一张强力神牌&#xff0c;这样能大大提高我们玩家的游戏体验&#xff0c;但其…

Hadoop 3.2.4 集群搭建详细图文教程

目录 一、集群简介 二、Hadoop 集群部署方式 三、集群安装 3.1 集群角色规划 3.2 服务器基础环境准备 3.2.1 环境初始化 3.2.2 ssh 免密登录&#xff08;在 hadoop01 上执行&#xff09; 3.2.3 各个节点上安装 JDK 1.8 环境 3.3 安装 Hadoop 3.4 Hadoop 安装包目…

如何使用 Amazon EMR 在 Amazon EKS 上构建可靠、高效、用户友好的 Spark 平台

这是 SafeGraph 技术主管经理 Nan Zhu 与亚马逊云科技高级解决方案架构师 Dave Thibault 共同撰写的特约文章。 SafeGraph 是一家地理空间数据公司&#xff0c;管理着全球超过 4100 万个兴趣点&#xff08;POI&#xff0c;Point of Interest&#xff09;&#xff0c;提供品牌隶…

R语言nlme、nlmer、lme4用(非)线性混合模型non-linear mixed model分析藻类数据实例...

原文链接&#xff1a;http://tecdat.cn/?p23426 混合线性模型&#xff0c;又名多层线性模型(Hierarchical linear model)。它比较适合处理嵌套设计(nested)的实验和调查研究数据&#xff08;点击文末“阅读原文”获取完整代码数据&#xff09;。 相关视频 序言 此外&#xff0…