利用多视角几何学习自我监督和学习三维人类姿势
摘要
??准确的三维人体姿势估计器需要大量的三维真实数据,而且这些数据的收集成本非常高。由于缺乏3D提出了各种弱监督或自监督的姿势估计方法。然而,除了二维真实姿势外,这些方法还需要各种形式的额外监控(如未匹配的三维真实数据、小标签子集)或多视图设置中的相机参数。为了解决这些问题,我们提出了这些问题EpipolarPose,一种用于三维人体姿势估计的自我监督学习方法,不需要三维地面的真实数据或相机外部原因。在训练过程中,EpipolarPose二维姿势从多视角图像中估计,然后使用epipolar获得三维姿势和摄像机几何,然后用于训练三维姿势估计器。我们在标准基准数据集(即Human3.6M和MPI-INF-3DHP)它证明了我们方法的有效性,我们在弱/自我监督方法中创造了新的一流水平。此外,我们还提出了新的性能指标–姿势结构得分(PSS),用于评估姿势相对于地面真相的结构可信度,是一个尺度不变、结构感知不变的指标。
1. 简介
??估计人类在野外的姿态是计算机视觉中的一个挑战性问题。虽然有大规模的数据集[2, 用于二维(2)D)但三维数据集[15, 23]要么仅限于实验室环境,要么规模和多样性有限。由于在野外收集三维人体姿势注释的成本很高,三维数据集有限,研究人员采用弱监督或自我监督的方法,目的是在现有的二维姿势数据集上进行监督。为此,开发了各种方法。除了地面的真实二维姿态外,这些方法还需要各种形式的额外监督(如未匹配的三维地面真实数据[41]、小标签子集[31])或多视角环境(外部)相机参数[30]。据我们所知,只有一种方法[9]可以通过使用二维地面的真实数据来生成三维姿态估计器。在本文中,我们提出了另一种方法。 ??我们的方法,EpiloparPose使用二维姿势估计和表极几何来获得三维姿势,然后用来训练三维姿势估计器。EpipolarPose它可以与任何数量的相机(至少2台)一起工作,不需要任何三维监控或外部相机参数,但可以使用。 在Human3.6M[15]和MPI-INF-3DHP在[23]数据集中,我们为弱/自我监督方法的三维姿态估计设定了新的最先进水平。
图1. EpipolarPose使用二维姿势估计和表极几何来获得三维姿势,然后训练三维姿势估计器。
??人类的姿势估计允许后续更高层次的推理,例如在自主系统(汽车、工业机器人)和活动识别中。在这类任务中,姿势的结构错误可能比传统的评估指标(如MPJPE(每个关节位置的平均误差)和PCK(正确关键点的百分比)测量的定位错误更为重要。这些指标独立处理每个关节,因此不能评估整个姿势作为结构。图4显示,与参考姿势相比,结构非常不同的姿势产生相同的姿势MPJPE。为了解决这个问题,我们提出了一个叫做姿势结构得分的新性能指标(PSS),它对姿势的结构错误非常敏感。PSS计算一个不变尺度的性能分数,可以评分一个姿势的结构合理性及其地面真实性。请注意,PSS不是损失函数,而是性能指标MPJPE和PCK一起使用,以说明姿势估计器的结构错误。 ??为了计算PSS,我们首先需要建模地面实际姿势的自然分布。因此,我们使用了一种不受监督的聚类方法。首先,我们发现最接近p和q如果聚类中心最接近同一聚类中心(即分配到),那么p的姿势结构得分(PSS)被称为1,否则就是0。 ?
- 我们提出了EpipolarPose,可以从单幅图像中预测3D人体姿势的方法。EpipolarPose不需要任何3D监督或相机外部因素。它利用表极几何和二维地面的真实姿势来创建自己的三维监督。
- 在弱/自监督的三维人体姿势估计方法中,我们创造了新的先进技术。
- 我们提出了姿势结构的得分(PSS),为了更好地捕捉结构误差,这是三维人体姿势估计的新性能指标。
2. 相关工作
??我们的方法,EpipolarPose,在推理过程中,它是一种单视图方法;在训练过程中,它是一种多视图和自我监督的方法。在讨论文献中的这种方法之前,让我们简要回顾一下完整的单视图(在训练和推理过程中)和完整的多视图方法,以确保完整性。 ?? 在最近的许多工作中,卷积神经网络(CNN)用于直接从图像中估计三维关节的坐标[38, 39, 40, 35, 23]。Li和Chan[19]率先表明,深度神经网络在从单个图像估计三维人体姿势时可以达到合理的精度。他们使用两个深度回归网络和身体部位进行检测。Tekin等人[38]表示,将用于监督学习的传统CNN结合自动编码器进行结构学习可以产生良好的效果。与常见的回归实践相反,Pavlakos等人[29]是第一个将三维人体姿势估计视为体素空间中的三维关键点定位问题。最近,Sun等人[36]提出 "整体姿势回归 "将体积热图与软图相结合argmax激活结合,取得最先进的效果。 此外,还有一些两个阶段的方法,3D姿势推理任务分为两个独立阶段:估计2D将姿势提升到3D空间[8, 24, 22, 11, 46, 8, 40, 23]。大多数最新的方法使用最先进的二维姿势估计器[7, 43, 25, 17]获取图像平面上的关节位置。Martinez等人[22]使用了一个简单的深度神经网络,可以根据最先进的二维姿势估计器计算的二维姿势来估计三维姿势。Pavlakos等人[28]利用关节之间的序数深度关系来绕过完全三维监督的需要。 ??除全三维监督外,这种方法需要全三维监督或额外监督(如序数深度)。 ?? 这种方法需要从多个角度输入测试和训练。早期工作[1, 5, 6, 3, 4]采用校准相机获得的二维姿势估计,通过三角测量或图像结构模型产生三维姿势。最近,许多研究人员使用深度神经网络建模多视图输入,并进行全面的三维监督。 ??弱/自我监督方法 由于缺乏三维注释,许多人探索了基于弱和自我监督的人体姿势估计方法[9, 31, 41, 30]。Pavlakos等人[30]使用图像结构模型,从多视角图像的关键点热图中获得全球姿势配置。然而,它们的方法需要完整的相机校准和生成二维热图的关键点探测器。 ??Rhodin等待[31]使用多视角一致性约束来监督网络。他们需要少量的三维真实数据,以避免退化解决方案在一个位置坍塌。因此,缺乏现场三维真实数据是该方法的限制因素[31]。 ??深度逆向图形网络[18, 44]已应用于人体姿势估计[41, 9]。Tung等人[41]训练了一个生成对抗网络,该网络有一个三维姿势生成器,用预测的三维姿势和输入的二维关节之间的重建损失来训练,还有一个用来区分预测的三维姿势和一组真正的地面三维姿势的判断器。这项工作之后,Drover等人[9]通过修改判别器来识别合理的二维投影,从而消除了对三维地面实际情况的需求。 ??据我们所知,EpipolarPose和Drover等人的方法是不需要任何三维监督或相机外信息的唯一方法。虽然他们的方法不使用图像特征,但EpipolarPose同时,利用图像特征和表极几何产生更准确的结果(比Drover等人的方法少4.3mm误差)。
图2. 训练期间EpipolarPose的整体架构。上支的橙色背景部分表示推理管道。在训练过程中,EpipolarPose多视角:两个连续相机同时拍摄的一对图像(Ii,Ii 1)被送入CNN姿势估计器。它也是自我监督的:下分支使用三角形测量(即外极几何)产生的三维姿势(V)被用作上层分支CNN训练信号。在推理过程中(橙色背景部分),EpipolarPose它是一种单眼方法:它使单一图像(Ii)作为输入,估计相应的三维姿势(V?i)。(j:软argmax函数,T:三角测量,L:平滑L1损失)。
3. 模型和方法
??图2给出了我们提出的方法EpipolarPose整体训练流水线。推理管道显示在橙色背景部分。对于EpipolarPose假设训练如下。有n个摄像头(n≥必须建立),同时拍摄场景中人的照片。相机被赋予从1到n的相机ID数字,连续的相机相互接近(即它们有小基线)。相机产生图像I1,I2,…In。然后,一组连续的图像对,{(Ii,Ii 1)|i=1,2,…,n-一、构成训练实例。
3.1. 训练
??在EpipolarPose在训练管道(图2)中,有两个分支,每个分支从相同的姿势估计网络开始(一个ResNet然后是去卷积网络[36]。MPII人体姿势数据集(MPII)预训练[2]。在训练过程中,只有上层分支的姿势估计网络被训练,其他网络被冻结。 ??EpipolarPose可以用两个以上的相机训练,但是为了简单起见,我们在这里描述一下n=训练管道。对于n = 2.每个训练实例只包含一个图像对。图像Ii和Ii 1被送到三维(上)分支和二维(下)分支姿势估计网络,分别获得体积热图H,H?∈Rw×h×d,其中w,h是去卷积后的空间大小,d定义为超参数的深度分辨率。在应用软的argmax激活函数j(-)之后,我们得到了三维姿势V?∈RJ×3和二维姿势U∈RJ×其中J是身体关节的数量。我们可以从给定的体积热图中获得3D姿势(应用于所有三个维度softargmax)和2D姿势(通过只对x,y应用softargmax)。 ??作为二维姿势分支的输出,我们希望在全球坐标框架中获得三维人体姿势V。让第一幅图像中的第j关节维坐标为 Ui,j = [xi,j,yi,j],其三维坐标为[Xj,Yj,Zj],我们可以假设一个针孔图像投影模型来描述它们之间的关系,其中wi,j是第i台摄像机图像中第j个关节相对于摄像机参考框架的深度,K编码摄像机的内在参数(如焦距fx和fy,主点cx和xy),R和T分别是摄像机的旋转和翻译的外在参数。为了简单起见,我们省略了相机的失真。
当摄像机的外在参数不可用时,通常是在动态捕捉环境中,我们可以使用身体关节作为校准目标。我们假设第一台摄像机为坐标系的中心,这意味着第一台摄像机的R为身份。对于Ui和Ui+1中的相应关节,在图像平面上,我们使用RANSAC算法找到满足Ui,jFUi+1,j=0的基本矩阵,对于∀j。从F中,我们通过E = KTFK计算出基本矩阵E。通过用SVD分解E,我们得到R的4个可能的解决方案。我们通过做cheirality检查验证可能的姿势假设来决定正确的方案。cheirality检查基本上意味着三角形的三维点应该有正的深度[26]。在训练过程中,我们省略了比例,因为我们的模型使用归一化的姿势作为基础真实。 最后,为了获得相应的同步二维图像的三维姿态V,我们利用三角法(即表极几何),具体如下。对于(Ii,Ii+1)中所有在任一图像中没有被遮挡的关节,使用多项式三角法[12]对一个三维点[Xj,Yj,Zj]进行三角计算。对于包括2个以上摄像机的设置,我们计算矢量中位数以找到中位数的三维位置。 为了计算上层(三维)分支预测的相机帧Vˆ中的三维姿势之间的损失,我们将V投射到相应的相机空间,然后最小化smoothL1(V-Vˆ)来训练三维分支,其中 为什么我们需要一个冻结的二维姿态估计器?在EpipolarPose的训练管道中,有两个分支,每个分支都从一个姿势估计器开始。上层分支的估计器是可训练的,而下层分支的另一个估计器是冻结的。下层分支的估计器的工作是产生2D姿势。人们可能会质疑冻结估计器的必要性,因为我们也可以从可训练的上部分支中获得二维姿势。当我们试图这样做的时候,我们的方法产生了退化的解决方案,所有的关键点都塌陷在一个单一的位置上。事实上,其他多视图方法也面临同样的问题[31, 37]。Rhodin等人[31]通过使用一组小的地面真实例子解决了这个问题,然而,在大多数野外环境中,获得这样的地面真实可能是不可行的。最近提出的另一个解决方案[37]是最小化估计的相对旋转Rˆ(通过两组关键点的Procrustes对齐计算)和地面真相R之间的角度距离。为了克服这些缺点,我们只在训练时利用一个冻结的二维姿势检测器。
3.2. 推理
推理涉及图2中的橙色背景部分。输入只是一个单一的图像,输出是通过软argmax激活,j(-),在三维体积热图Hˆi上获得的估计三维姿势Vˆ。
3.3. 精细化,一个可选的后期训练
在文献中,有几种技术[22, 11, 39]可以将检测到的二维关键点提升为三维关节。这些方法能够学习广义的二维→三维映射,这些映射可以通过模拟随机摄像机投影从运动捕捉(MoCap)数据中获得。将细化单元(RU)整合到我们的自监督模型中可以进一步提高姿势估计的准确性。通过这种方式,人们可以在他/她自己的数据上训练EpipolarPose,这些数据由没有任何标签的多视角镜头组成,并与RU整合以进一步提高结果。为了做到这一点,我们修改了RU的输入层,以接受来自EpipolarPose的有噪声的三维检测,并使其学习一种细化策略。(见图3) RU的整体结构受到了[22, 11]的启发。它有2个计算块,其中有某些线性层,然后是批量归一化[14]、泄漏ReLU[21]激活和剔除层,以将三维噪声输入映射到更可靠的三维姿势预测。为了促进各层之间的信息流动,我们增加了剩余连接[13],并应用中间损失来加快中间层对监督的访问。
图3. 整体推理管道,其中的细化单元是一个可选的阶段,用于细化用自我监督训练的模型的预测结果。f函数表示EpipolarPose的推理函数(图2中橙色背景部分)。
图4. 左图:来自Human3.6M数据集的参考姿势。中间:手动修改的姿势,以获得与右边的姿势相似的MPJPE,但结构与参考姿势不同。右图:通过向每个身体关节添加随机高斯噪声获得的姿势
3.4. 姿势结构得分
正如我们在第1节中所讨论的,传统的基于距离的评估指标(如MPJPE,PCK)独立地处理每个关节,因此,不能将整个姿势作为一个结构来评估。在图4中,我们展示了一些例子,这些姿势具有相同的MPJPE,但在结构上与参考姿势非常不同。 我们提出了一个新的性能指标,叫做姿势结构得分(PSS),它对姿势中的结构错误很敏感。PSS计算出一个尺度不变的性能分数,能够评估一个姿势相对于其地面真实的结构合理性。请注意,PSS不是一个损失函数,它是一个性能分数,可以与MPJPE和PCK一起使用,以说明姿势估计器的结构错误。PSS是一个关于偏离地面真实姿势的指标,它有可能在需要有语义的姿势的后续任务中导致错误的推断,例如动作识别、人与机器人的交互。 如何计算PSS?PSS的计算需要一个地面真实姿势的参考分布。给定一个 由n个姿势组成的地面真实集 qi,i∈{1,–,n},我们将每个姿势向量归一化为qˆi = ||qqii||。然后,我们用kmeans聚类法计算k个聚类中心μj,j∈{1,— ,k}。然后,为了计算预测姿势p对其地面真实姿势q的PSS,我们使用 一组姿势的mPSS,即平均PSS,是在公式(3)中计算的它们各自分数的平均值。图5显示了姿势和聚类的t-SNE[42]图。图6描述了代表典型姿势的集群中心。 在我们的实验中,我们选择了50和100个姿势聚类的数量。我们用mPSS@50和mPSS@100表示相应的PSS结果。请注意,mPSS给出的是结构正确的姿势的百分比,因此分数越高越好。为了测试我们聚类的稳定性,我们在随机初始化的情况下各运行了100次k-means。然后,对于每一对运行,我们在聚类之间建立成对的对应关系。对于每个对应关系,我们计算了交集大于联合(IOU)。所有配对和对应关系的平均IOU变成了0.78。此外,当我们使用不同的kmeans输出作为参考时,不同姿势估计模型的mPSS相差±0.1%。这些分析证明了PSS的稳定性。
图5. 聚类后人类姿势的t-SNE图。这里我们选择k = 10作为可视化的目的。每种颜色代表一个集群。
图6. 代表Human3.6M(k=50)中典型姿势的聚类中心。
我们对二维和三维分支使用Integral Pose[36]架构,并使用ResNet-50[13]后端。输入图像和输出热图的尺寸分别为256×256和J×64×64,其中J是关节的数量。我们在MPII[2]上训练后初始化实验中使用的所有模型。 在训练过程中,我们使用大小为32的迷你批次,每个批次包含Ii,Ii+1个图像对。如果有两个以上的摄像机,我们在一个小批中包括所有摄像机的视图。我们使用Adam优化器[16]对网络进行140次训练,学习率为10-3,在第90和120步乘以0.1。训练数据通过±30◦的随机旋转来增加,并以0.8和1.2之间的系数进行缩放。此外,我们利用合成闭塞[34]来使网络对闭塞的关节具有鲁棒性。为了简单起见,我们运行一次二维分支以产生三角形的三维目标,并使用缓存的标签训练三维分支。我们使用PyTorch实现了整个流水线[27].
4、实验结果
H36M上的三角测量结果。不同的二维关键点源对三角测量性能的影响。GT 2D表示使用了地面真实的2D标签。H36M 2D和MPII 2D表示在这些数据集上训练的姿势估计模型。 表1 H36M的triangulation的结果 GT表示用H36M中的2D标签,GT 2D (w/o R)表示不用camera geometry(旋转矩阵R) H36M 2D 和MPII 2D表示在这些数据集上训练的姿态估计模型。我们可以看到,用GT 2D的效果最好,其次是H36M 2D,而在MPII数据集上训练的2D keypoints 检测器有轻微的效果下降。作者认为是因为H36M中的数据是用marker得到的,更准确(H36M中数据集中的试验者在身上贴有小亮片(传感器))。而MPII中人的关键点是由人工标记的,一些关键点定位不准。
与最新技术的比较
在H36M上和其他SOTA比较的结果如下表所示:
下表展示的是文献中一些关于weakly or self supervised方法在Human 3.6M上的结果。 可以观察到GT2D训练和MPII预训练之间存在很大差异(76.60 - 55.08 = 21mm)。这个差距表明2D关键点的估计质量对于3D pose estimation取得更好的性能至关重要。 底下的两个表展示的是和参考文献31与9更公平和细致的比较。
定性结果展示
EP在推理过程中单视角,训练时多视角、自监督 【19】深度回归网络和身体部位检测 进行了从单图像中获得合理准确性的姿势估计 【38】监督学习和自动编码器用于结构学习 【29】三维人体姿势估计视为 3D关节点定位问题 【36】积分姿态回归和 soft argmax相结合 缺乏3D注释,探索弱监督和自监督的人体姿势估计方法。 【31】多视图一致性来约束去监督网络 【9】【41】深度逆向网络引入