姿态识别

摘要:利用深度卷积网络的成功,当下效果最好的方法对于人体姿态估计来说主要关注在深度端对端系统上,给定原始图像像素来预测3d关节定位。这方法不容易理解系统遗留的错误是来自受限的2d姿势(可视)理解,或者是从2d映射到3d的误差。
带着理解对这些错误来源的目标,我们简历一个系统,其给定2d关节定位来预测3d位置。我们发现,利用当前的技术,将真实的2d关节定位上升到3d空间是可以有一个较小的错误率的方法来解决的:一个相对简单的深度反馈网络比以前方法在数据集Human3.6M效果要好30%。这个数据集是公开可用的最大的3d姿态估计标准数据集。并且,我们使用当前最好的2d检测器的结果来训练我们的3d系统。这包括了系统的一个部分已经端对端的训练好了。我们的结果显示现代深度3d姿势估计系统的很大一部分错误来自可视分析。
1. 简介
关于人类描述的大部分都是2维的,例如视频,图片,绘画。这些表达传统上扮演了重要角色在传达事实,想法和感觉给其他人, 并且这种传输信息的方式只有可能被人去理解复杂的空间排列,当深度信息模糊不清时。大量的应用,包括虚拟和增强现实,衣服尺寸估计或者自动驾驶,给定这种空间推理能力给机器是相当重要的。在本文中,主要着重于一个特殊的空间推理问题:3d人体姿势估计从单张图片。
给定一张人体2d图片,3d姿势估计的任务是产生一个三维图片来匹配所描述的人的空间位置。为了将图片升维到3d姿态,算法补习对一系列因素保持不变形,例如背景图片,灯光,衣服形状和纹理,肤色和图像噪音等等。早期方法完成这些不变形通过提取一些特征完成,如silhouettes[1], shape context, SIFT 描述子或者边方向直方图。然而当前的深度学习算法比那些人工提取特征的效果要好得多,缺乏3d真实值的野外中的姿势数据使得推断3d姿势更有挑战。
现在一些系统探索直接从图像推断3d姿势的可能性,使用端对端的深度架构。其他系统认为从彩色图像中推理3d姿势可以用训练一个人造数据上完成。在本文中,我们探索去耦3d姿势到一个已经表现很好的2d姿势估计和从2d关节检测到3d姿势估计的能力。着重讨论后者。将姿势估计分成2部分子问题,将使得我们得到利用现存2d姿势估计系统的概率,其已经解决之前提到的影响因素的不变形。并且我们训练从2d-》3d的问题使用大量3d真实数据(在受限环境中收集)
对该问题的主要贡献在于设计和分析神经网络,比现存的系统表现要好,速度也快,其原因是估计在摄像机坐标轴中的3d关节,增加残差连接,使用Batch Normalization。
实验显示了从真实的2d投影来推断3d关节可以得到比别人更低30%的错误率。
之前的工作
图像深度:
从2d图片中获得3d信息是一个经典的问题,Brunelleschi使用视角的数学概念来传达一种空间感,其他的线索包括阴影或者纹理。
自顶向下的3d推理:
第一个对深度估计的算法采用了一个不同的方法:探索场景中已知物体的3d结构。自顶向下信息也可被使用,当感知人体动作其被抽象到一系列稀疏点投影。关于从一个稀疏的2d投影中推理3d人体姿势,提取其他潜在富图片线索,激励了我们解决从2d投影到3d的工作。
2d 到3d关节
追溯到Lee和chen的工作,他们显示给定骨头长度,该问题可以被划分到二元决策树,每个分支对应着两个可能的关节状态关于它的父节点。这个二元树可以基于关节约束来剪枝,尽管它在单分辨率上结果不好。JIANG 使用大量姿势数据来解决最近邻查询的模糊问题。利用最近邻来精确姿势推断的结果现在又被提起By Gupta, 在搜索时嵌入时间约束。另一种收集3d人体姿势的知识是通过创建过完备基(适用于表达人体姿势)作为稀疏的结合,将姿势上升到RHKS空间,或者通过创建新的先验从特定的数据集中。

基于深度网络2d到3d关节:本系统最相关的工作就是学习2d和3d之间映射使用深度神经网络。Pavlakos引入深度神经网络基于堆积的沙漏架构,而不是从2d关节概率热力图中求回归值,映射到3d空间的概率分布。Moreno-Nogure 学习去预测程度距离矩阵从2到3维空间。距离矩阵对旋转,转化,和映像保持不变形。因此使用人体姿势的先验的多维尺度缩放来排除不可能的预测。
矩阵距离回归方法和体积方法的主要动机在于预测3d关节点从2d检测中是天生的很难。例如某人呈现一个基准其中直接使用3d关节表达,比使用体积回归的方法具有更低的精度。我们的思想在于直接从2d关节检测中回归出3d关节点应该被避免,并显示一个设计好的和简单的网络可以比2d到3d关节点回归任务表现好。
2d到3d有角的姿势
这是第二个分支来推断3d姿态,就角度来估计身体组成,而不是直接估计3d关节位置。这方法的主要优点在于该问题的维度较低,因为人体关节的受限的可移动性,估计的结果被迫有一个类似人的结构。并且约束人体属性例如骨头长度或者关节角度的范围比他们的表达要简单。
3 解决方案
目标是估计身体关节定位在3维空间汇总给定2维输入。我们的输入是一系列的2d坐标x in R^(2n),我们的输出是一些点在3d空间中的坐标y in R^(3n).我们旨在学习一个映射函数f : R^(2n)->R^(3n). 设定损失函数为:预测值和真实值的2范数,对N求和,N表示第N个姿势。输入X为真实的2d关节定位在已知的摄像机参数下,或使用一个2d关节检测器。很普通的去预测3d位置关于一个固定的全局空间相比较于其根关节。
其中f 为深度神经网络,去寻找一个简单的可缩放的,有效的架构来完成任务。
3,1 网络设计
我们方法是基于一个简单、深度、多层神经网络具有批量标准化、dropout\和Relu单元,还有残差连接。没有描述的是两个额外的线性层,一个直接应用于输入,将输入升维到1024维度,一个应用在最终预测之前,产生输出大小为3n。在实验中使用2个残差块,意味着总共有6个线性层,本模型包含4到5百万个可训练的参数。
2d/3d 定位: 我们首先设计的选择是使用2d和3d点作为输入和输出,和其他工作使用原始图片或者2d概率分布作为输入,和3d概率,3d动作参数或者基础姿势稀疏和摄像机参数估计作为输出。然而2d检测具有较少的信息;例如一个工作是能简单地存储整个Human3.6M数据集到GPU中,在训练神经网络时,减少了整个训练时间,允许我们假设网络设计的搜索和训练超参。
Linear-relu 层,对于大多数用于3d姿态估计的深度学习方法是基于卷积神经网络,可以学习一个旋转不变形的过滤器,应用到整个图片中,或者2d关节点定位的热力图。然而,我们处理低维点作为输入和输出时,我们可以使用更简单和更少计算量的线性层。Relu是标准的选择来增加网络的非线性。
Residual Connections: 我们发现残差连接,(其最近被提出作为一个促进非常深的卷积网络的技术),提高了泛化能力并减少训练时间。在本文中,帮助减少了10%的错误率
Batch Normalization and Dropout: 我们发现当训练输入为一个2d检测器输出时效果不好,或者在2d真实值上训练应用在有噪音的2d观察中效果不好。BN和dropout可以提高系统表现精度。
Max-norm constraint: 我们也约束每层的权重,以至于它们最大范数是小于等于1。和BN一起,我们发现这使得训练更加稳定并提高泛化表现。
3.2 数据预处理
我们应用标准正则化到2d输入和3d输出通过减去均值并除以标准差。然而我们不去预测3d预测的全局位置,我们以臀部关节为中心(对齐于之前的工作和Human3.6M标准协议)
camera coordinates. 不现实去期望一个算法去推断3d关节位置在任意的坐标空间汇总,给定任何空间转化或者旋转会不会导致输入数据的改变。全局坐标帧的一个很自然的选择是摄像机帧,然而这使得2d到3d问题在不同摄像机时都相似,使得更多训练数据(per camera???)并避免了对一个特殊的全局坐标轴帧的过拟合问题。我们通过旋转和转化3d真实值通过颠倒摄像机。一个直接的影响在任意全局坐标轴帧是不能回归人的全局坐标,导致了所有关节点的较大误差。这个坐标轴帧的定义是任意的,并且不意味着我们在测试中使用姿态的真实值。
2d检测: 我们得到2d检测通过使用当前最好的技术stacked hourglass 网络,在数据集MPII上预训练好的。类似之前的工作,我们使用bounding box由h3.6m提供去估计人的中心。我们在这个由检测器计算中心周围裁剪440*440大小的像素值。检测和真实2d标记点之间的的平均误差是15个像素,比由CPM算法(10像素)要高一点。我们使用SH 而不是CPM因为SH在MPII在由更高的精度,并且比CPM快10倍。
我们也使用SH模型在H3.6M数据集,得到更精确的2d关节检测在目标数据集并进一笔减少3d姿势估计的误差。我们使用SH的所有默认参数,除了minibatch size从6减到3 因为GPU内存限制。学习率设置为2.5 * 10-4 迭代40000次。
训练细节:
使用Adam训练200轮,开始学习率为0.001并且指数衰减,使用minibatch大小为64, 初始时,线性曾德参数是会用Kaiming初始化参数。我们使用Tensorflow,前向和反向传播要5ms,训练一轮大约要2min
实验评估:
数据集和协议: 两个标准数据集:HumanEva, Human3.6M。MPII 数据集没有3d信息。
Human3.6m

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值