Towards 3D Human Pose Estimation in the Wild: a Weakly-supervised Approach论文翻译

2023-10-26

论文地址:https://arxiv.org/abs/1704.02447

code:https://github.com/xingyizhou/pytorch-pose-hg-3d

Towards 3D Human Pose Estimation in the Wild: a Weakly-supervised Approach

Xingyi Zhou1,2, Qixing Huang2, Xiao Sun3, Xiangyang Xue1, Yichen Wei3

在野外进行3D人体姿态估计:一种弱监督方法

摘要

在本文中,我们研究了野外三维人体姿态估计的任务。 由于缺乏训练数据,此任务具有挑战性,因为现有数据集要么是具有2D姿势的野生图像,要么是具有3D姿势的实验室图像。

我们提出了一种弱监督转移学习方法,该方法在统一的深中性网络中使用混合的2D和3D标签,呈现两级级联结构。 我们的网络通过3D深度回归子网络增强了最先进的2D姿态估计子网络。 与之前的按顺序和分开训练两阶段方法不同,我们的训练是两个子网络端到端并充分利用2D姿态和深度估计子任务之间的相关性。 通过共享表示可以更好地学习深层特征。 在这样做时,受限制的实验室环境中的3D姿势标签被转移到野外图像中。 此外,我们引入了3D几何约束来规范3D姿态预测,这在没有地面实况深度标签的情况下是有效的。 我们的方法在2D和3D基准测试中实现了有竞争力的结果。

  1. 简介

人体姿势估计问题已在计算机视觉中得到了大量研究。 它在人机交互,虚拟现实和动作识别方面有许多重要的应用。 现有的研究工作分为两类:2D姿态估计和3D姿态估计。 由于大规模2D标注人体姿势的可用性和深度神经网络的出现,2D人体姿势估计问题最近取得了巨大的成功[17,29,11,4,7]。 最先进的技术能够在各种设置中实现准确的预测(例如,野外图像[2])。

相比之下,3D人体姿势估计的进步仍然有限。 部分原因是由于从单个图像恢复3D信息的模糊性,还有一部分原因是由于缺少大规模3D姿势标注数据集。 准确的说,还没有针对野外图像的全面的3D人体姿势数据集。 常用的3D数据集[12,24]由受控实验室环境中的mocap系统获取。 在这些数据集上训练的深度神经网络[13,33]并不能很好地推广到其他实例,例如在野外。

mocap系统解释了解:https://www.jianshu.com/p/5b35493c386f

https://zhuanlan.zhihu.com/p/37415840

在野外已经有很多关于3D人体姿势估计的工作。 它们通常按两个连续步骤进行[34,26,5,3,30,31]。 第一步估计2D关节位置[17,29,11]。 第二步从这些2D关节[21,32,1]恢复3D姿势。 这两个步骤的训练是分开进行的。 即,从野外的2D标注训练2D姿势预测,并且从现有的3D MoCap数据训练来自2D关节的3D姿势恢复。 这样的顺序流水线显然是次优的,因为在第二步中丢弃了包含用于3D姿势恢复的丰富提示的原始野外2D图像信息。

最近,Mehta等人。 [15]已经表明,2D到3D知识转移,即使用预训练的2D姿势网络来初始化3D姿势回归网络可以显着改善3D姿势估计性能。 这表明2D和3D姿势估计任务固有地纠缠在一起并且可以共享共同的表示

受这项工作的启发,我们认为反向知识边缘转移,即从室内图像的3D注释到野外图像,为野外3D姿态预测提供了有效的解决方案。 在这项工作中,我们引入了一个统一的框架,可以利用野外图像中的2D注释作为3D姿势估计任务的弱标签。 换句话说,我们考虑一个弱监督的转移学习问题,其中源域由受限室内环境中的完全注释图像组成并且目标域由野外的弱标记图像组成。

与之前的作品类似[34,26,5,3,30,31],我们的网络也包括2D模块和3D模块。 然而,我们的方法不是仅仅将2D模块的输出作为输入提供给3D模块,而是将3D模块与2D模块的中间层连接起来。 这允许我们共享2D和3D任务之间的共同表示。 该网络是同时具有2D和3D数据端到端的训练。 这使我们的工作与所有现有工作区别开来。

为了更好地规范弱监督3D姿态估计的学习,我们引入了用于训练3D模块的几何约束。 几何约束基于以下事实:人体骨骼中的相对骨骼长度保持近似固定。 当将来自室内环境中的标记图像的3D姿势信息适应于野外的未标记图像时,实验验证了该约束的有效性。

这项工作做出以下贡献:

我们首次提出了一种用于野外图像的端到端3D人体姿势估计框架。 它在几个基准测试中实现了最先进的性能。

我们从仅具有2D联合注释的图像中提出了用于3D姿态估计的3D几何约束。其具有低内存和计算成本。 它改善了估计姿势的几何有效性。

 

  1. 相关工作

人类姿势估计在过去已被大量研究[16,23],并且提供文献的完整概述超出了本文的范围。 在本节中,我们将重点放在以前关于3D人体姿态估计的工作上,这些工作与本文的背景最为相关。 我们还将讨论关于对训练神经网络施加弱/无监督约束的相关工作

3D人体姿势估计。 给定良好标记的数据(例如,人类骨骼的3D关节位置[12,24]),可以将3D人体姿势估计公式化为标准的监督学习问题。 一种流行的方法是训练神经网络直接回归关节位置[13]。 最近,人们已经将这种方法推广到不同的方向。 Zhou等人。 [33]建议明确执行预测中的骨长度约束,使用生成的前向运动层; Tekin 等人。 [25]在网络顶部嵌入了一个预训练的自动编码器。 与之相反,Pavlakos等人引入了一种3D方法,该方法回归了3D骨架的体积表示[19]。 尽管标准3D姿态估计基准数据集的性能提高,但由于自然图像与这些基准数据集所使用的特定捕获环境之间的区域差异,所得到的网络不会推广到野外图像。

解决三维人体姿势估计数据集与野外图像之间的域差异的标准方法是将任务分成两个单独的子任务[34,26,5,3,30]。第一个子任务估计2D关节位置。该子任务可以利用任何现有的2D人体姿势估计方法(例如,[17,29,11,4]),并且可以从野外图像的数据集中进行训练。第二个子任务回归这些2D关节的3D位置。由于此步骤的输入仅是一组2D位置,因此可以在任何基准数据集上训练3D姿态估计网络,然后在其他设置中进行调整。关于来自2D关节位置的3D姿态估计,[34]使用EM通过组合由2D热图引起的稀疏字典来计算3D骨架的算法; [30,19]使用3D姿势数据及其2D投影来训练没有原始图像的热图到3D姿势网络; Bogo等。 [3]优化线性3D人体模型[14]的姿势和形状项,以最佳地拟合其2D投影;陈等人。 [5]使用最近邻搜索将估计的2D姿势与3D姿势以及可以从大型3D姿势库产生类似2D投影的相机视图相匹配;最后是Tome等人。 [26]提出了预训练的概率3D姿势模型层,首先生成合理的3D人体模型从2D热图,然后通过改进这些热图结合3D姿势投影和图像功能。所有这些

然而,方法有一个共同的局限:3D姿势仅从2D关节估计,已知2D关节产生模糊结果。相比之下,我们的方法可以利用2D关节位置以及原始图像的中间特征代表。

3D人体姿态估计的另一种方法是从合成数据集中进行训练,这些数据集是通过使用已知的3D地面实况变形人体模板模型而生成的[6,22]。 这确实是一种可行的解决方案,但基本挑战是如何对3D环境进行建模,以使合成图像的分布与自然图像的分布相匹配。 事实证明,沿着这条线的最先进的方法在自然图像上的竞争力较弱。

还有其他利用混合2D和3D数据进行3D人体姿势估计的工作。 Mehta等。 [15]使用3D数据微调预训练的2D姿态估计网络。 Popa等人。 [20]将3D人体姿态估计视为具有不同数据的2D和深度回归的多任务学习。 我们与那些使用弱监督损失的工作不同&#x

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Towards 3D Human Pose Estimation in the Wild: a Weakly-supervised Approach论文翻译 的相关文章

  • IDEA的配置JDK,Tomcat,Maven

    IDEA的配置JDK Tomcat Maven 先下载安装jdk 其中JDK为安装版 tomcat 和maven为非安装版 JDK安装完成后要设置3个坏境变量 tomcat和maven好像不设置也行 就下载下来解压就行了 maven最好还是
  • 小米android11账号补丁,小米10 MIUI11 解账户锁 可登小米账号 永不反锁 完美ROOT 解锁包...

    MIUI全机型有锁机账户锁刷机包 仅针对于有锁机用户使用 帮助已经购买到有锁机的用户 ROM版权归小米 官方所有 本人未持有任何版权 仅以分享形式发布 对ROM稳定性也不能做任何保证 如果你希望更好的系统 体验 我们非常建议购买正规渠道的小
  • 用Construct2开发一个小游戏(进阶)

    策划并用Construct2开发一个小游戏 进阶 游戏策划 楔子 Setting 公元2500年 与地球建交长达200之久的达克星球 Dark Star 单方面撕毁友好合约 对地球发起了进攻 面对源源不断的独眼怪大军 你踏入自己发明的 洋芋
  • MATLAB——读取多文件夹内文件并绘制图形(1)——逐行读取txt文件内字符串

    目录 1 添加路径 2 准备好图片名称和路径名称 3 读取txt文件中的字符串 1 添加路径 如果m文件和要读取的文件不在同一个路径下 需要借助下方代码将当前文件夹下的所有文件都包含进搜索路径中 addpath genpath F SaCo
  • Swin-Transformer

    原视频链接 https www bilibili com video BV1pL4y1v7jC spm id from 333 788 vd source f04f16dd6fd058b8328c67a3e064abd5 参考博文 2021
  • 哈夫曼编码设计(C)

    文章目录 前言 哈夫曼编码设计 总结 前言 大二 刚刚开始学数据结构与算法 写得不好 哈夫曼编码设计 现要求输入8个字符 a b c d e f g h 对应的权值 大于0的整数 然后设计哈夫曼编码实现输入对应8个字符组成的一串字符 字符串
  • centos 网络连接设置

    这里使用虚拟机 VirtualBox 来安装CentOS 6 3 32bit服务器版本 没有安装桌面 作为演示 所以全是命令操作 如何安装CentOS操作系统就不用我说的 虚拟机网络设置为桥接模式 Bridge 单独分配ip 不共享主机ip
  • 致命错误:Rdefines.h:没有那个文件或目录

    致命错误 Rdefines h 没有那个文件或目录 Rdefines h No such file or directory 关键词 CentOS 7 安装rpy2 pip3 install rpy2报错 python3 setup py
  • C#——字符串

    System String类 1 创建字符串 string s abcdefg 2 获取字符串长度 s Length 3 比较字符串是否一样 s abcd 4 字符串连接 s http s 5 使用类似索引器的语法来取得字符串中的某个字符
  • Android常见漏洞

    Android常见漏洞 漏洞名称 Log敏感信息泄露 漏洞描述 程序运行期间打印了用户的敏感信息 造成泄露 修改建议 建议禁止隐私信息的log 漏洞名称 web https校验错误忽略漏洞 漏洞描述 漏洞可导致中间人攻击 修改建议 建议不要
  • JAVA基础练习题

    1 生成两个1 10的随机数 分别作为两个数组的长度 2 向第一个数组中以循环键盘录入的方式添加元素 3 生成1 100之间的随机数 为第二个数组的每个元素赋值 4 将两个数组合并 为一个新的数组 5 去掉新数组的最大值和最小值 求平均值

随机推荐

  • vue之--使用TypeScript

    搭配 TypeScript 使用 Vue 像 TypeScript 这样的类型系统可以在编译时通过静态分析检测出很多常见错误 这减少了生产环境中的运行时错误 也让我们在重构大型项目的时候更有信心 通过 IDE 中基于类型的自动补全 Type
  • C++ 好用的日志库--spdlog

    背景 spdlog 是一个快速 异步的 header only 的 C 日志库 它提供了简单易用的 API 并具有高性能和可扩展性 下载和使用 下载 spdlog 库下载地址 github 链接 hello world 在使用时只需要 in
  • 设计模式:模板方法模式

    定义一个操作中算法的框架 而将一些步骤延迟到子类中 使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤 类图如下 事实上 模版方法是编程中一个经常用到的模式 先来看一个例子 某日 程序员A拿到一个任务 给定一个整数数组 把数组中的
  • 常用的函数式接口

    1 Supplier接口 仅包含一个无参的方法 T get 用来获取一个泛型参数指定类型的数据 2 Consumer接口 包含抽象方法 void accept T t 正好与Supplier相反 它不是生产一个数据 而是 消费一个数据 其数
  • web安全--环境搭建

    1 搭建环境 下载owasp靶机测试环境 login root password owaspbwa 下载kali linux攻击机也可以使用windows作为攻击机 我的是2020 login kaili password kali 其他版
  • typescript学习(二)——函数

    一 函数的定义 1 函数声明法 规定返回值必须为string类型 function run string return im string 2 匿名函数法 let run function string return im string 没
  • uniapp实现下拉加载更多 u-loadmore

    区别于官网教程 这里总结更为白话 要实现的需求是 比如起初有十条数据 下拉至底部 追加某数量的数据 比如我的项目中 我把它放在了数据展示的底部 上代码
  • 微信支付踩坑记-签名错误,请检查后再试

    注册商户号 使用微信支付功能 直接无脑设置v3密钥 然后配合wxjava这个包进行开发 结果试了很多遍 都报错 最后才发现 我一直使用的v2验证方式 之前都没有设置过v2密钥 最后把v2密钥设置成和v3一样 重新试了一下 解决问题 最后附上
  • Python3学习(六):函数

    Python3 函数 函数是组织好的 可重复使用的 用来实现单一 或相关联功能的代码段 函数能提高应用的模块性 和代码的重复利用率 你已经知道Python提供了许多内建函数 比如print 但你也可以自己创建函数 这被叫做用户自定义函数 可
  • 广度优先算法

    deque 即双端队列 是一种具有队列和栈的性质的数据结构 双端队列中的元素可以从两端弹出 其限定插入和删除操作在表的两端进行 最短路径问题的算法被称为广度优先搜索 广度优先搜索是一种用于图的查找算法 第一类问题 从节点A出发 有前往节点B
  • Pandas 写入 Excel 的几种情形与方式,覆盖,新增,追加,对齐

    Pandas 写入 Excel 的几种情形与方式 覆盖 新增 追加 对齐 以下代码默认已经导入 np pd import numpy as np import pandas as pd 执行下面示例之前 最好先删除 test xlsx 文件
  • 怎样去掉PATH中重复的项目

    在zsh shell 中输入 typeset U path 运行即可
  • IDEA中TDengine数据库连接

    过程描述 首先配置数据库连接信息 下载驱动jar包 配置驱动 Maven Repository com taosdata jdbc taos jdbcdriver mvnrepository com 下载 TDengine Client 安
  • Java web小项目_个人主页(1)—— 云环境搭建与项目部署

    摘自 Java web小项目 个人主页 1 云环境搭建与项目部署 作者 丶PURSUING 发布时间 2021 03 26 23 59 39 网址 https blog csdn net weixin 44742824 article de
  • Git & Github 的使用(配合VSCode)

    1 git 和 vscode 环境管理 git下载位置 根据自己的电脑配置进行下载即可 Git Downloads 比如我的是linux ubuntu 那么我就选择Linux 并在命令行下敲下来这个 下载完git后 可以在终端上输入命令 g
  • Junit

    TestCase之间一定要保持完全的独立性 不允许出现任何的依赖关系 不能依赖与测试方法的执行顺序 DRY Don t Repeat Yourself Junit一旦执行到了Assert fail 方法测试便失败
  • 五分钟搞懂 React Hooks 工作原理

    前言 Hooks 是 React 中比较火的一个概念 用过的小伙伴都说好 但是 在使用 Hooks 的时候 我们可能会有很多疑惑 1 为什么 useEffect 第二个参数是空数组 就相当于 ComponentDidMount 只会执行一次
  • hexo stellar博客设置Twikoo评论(使用Zeabur 部署)

    2023年7月24日更新 需要绑定一下支付宝 每个月大约4块钱 还算对学生党划算 否则可能无法使用免费的服务 说是免费额度结果还是要钱鸭 这里按要求开通就好了 主要参考 stellar 评论插件配置 Twikoo 这里使用的是Twikoo
  • i love you 浪漫字体复制_七夕

    七夕情人节来临之际 朋友圈早已被各种代购刷屏 你啥都不送 让你女朋友七夕的时候在朋友圈炫耀什么 扫一扫进七夕保命群 教你七夕买什么送女友才能保命 你男朋友是不是以为你缺氧 所以每个节日都送你空气 不得不承认他们一个个都是被代购事业耽误的网络
  • Towards 3D Human Pose Estimation in the Wild: a Weakly-supervised Approach论文翻译

    论文地址 https arxiv org abs 1704 02447 code https github com xingyizhou pytorch pose hg 3d Towards 3D Human Pose Estimation