2019CVPR Semantic Graph Convolutional Networks for 3D Human Pose Regression

基于语义图卷积网络的三维人体姿态回归

源码 https://github.com/garyzhao/SemGCN

摘要

在本文中,我们研究了学习图卷积网络(GCN)回归的问题。GCN的当前体系结构受限于卷积滤波器和共享的变换矩阵为的小感受野。为了解决这些限制,我们提出了语义图卷积网络(SemGCN),这是一种新型的神经网络架构,可以使用图结构数据进行回归任务。SemGCN学习捕获语义信息,例如局部和全局节点关系,这些信息在图中没有显式表示。这些语义关系可以通过端到端的训练从地面事实中学习,而无需额外的监督或手工制定的规则。我们进一步研究将SemGCN应用于3D人体姿势回归。我们的方法是直观和充分的,因为2D和3D人体姿势都可以表示为对人体骨架中的关节之间的关系进行编码的结构化图。我们进行了全面的研究,以验证我们的方法。结果证明SemGCN优于现有技术,同时使用少90%的参数。

引言

卷积神经网络(CNN)已经成功地解决了经典的计算机视觉问题,如图像分类[12,29,31,52],对象检测[19,46,55,63,74,79]和生成[43,58,71,73,80],其中输入图像具有网格状结构。然而,许多现实世界的任务,例如,分子结构、社交网络和3D网格只能以不规则结构的形式表示,其中CNN具有有限的应用。

为了解决这个限制,最近引入了图卷积网络(GCN)[17,28,49]作为CNN的推广,可以直接处理一般类别的图。当应用于3D网格变形[45,64],图像字幕[70],场景理解[68]和视频识别[66,67]时,它们已经实现了最先进的性能。这些工作利用GCN来建模用于分类的视觉对象的关系。在本文中,我们研究了使用深度GCN进行回归,这是计算机视觉的另一个核心问题,具有许多现实世界的应用。

然而,由于基线方法的以下局限性,GCN不能直接应用于回归问题[28,64,67]。首先,为了处理图节点可能具有各种数量的邻域的问题,卷积滤波器为所有节点共享相同的权重矩阵,这与CNN不可比拟。其次,根据[28]的指导,通过限制滤波器在每个节点周围的一步邻域中操作来简化先前的方法。由于这种公式,卷积核的感受野被限制为1,这严重损害了信息交换的效率,特别是当网络更深时。

在这项工作中,我们提出了一种新的图神经网络架构的回归称为语义图卷积网络(SemGCN),以解决上述限制。具体来说,我们研究学习给定图中编码的语义信息,即,节点的局部和全局关系,这在以前的工作中没有得到很好的研究。SemGCN不依赖于手工制作的约束[10,13,51]来分析特定应用程序的模式,因此可以很容易地推广到其他任务。

特别是,我们研究SemGCN的2D到3D人体姿势回归。给定一个2D人体姿势(和可选的相关图像)作为输入,我们的目标是预测其对应的3D关节在某个坐标空间中的位置。使用SemGCN公式化这个问题是直观的。2D和3D姿势都能够以2D或3D坐标的形式自然地由规范骨架表示,SemGCN可以明确地利用它们的空间关系,这对于理解人类行为至关重要[67]。

我们的工作做出了以下贡献。首先,我们提出了一种改进的图卷积运算,称为语义图卷积(SemGConv),它来自CNN。其关键思想是学习边的通道权重作为图中隐含的先验,然后将它们与核矩阵相结合。这显著提高了图卷积的能力。其次,我们引入SemGCN,其中SemGConv和非局部[65]层交织。该体系结构捕获节点之间的本地和全局关系。第三,我们提出了一个端到端的学习框架,以表明SemGCN还可以结合外部信息,如图像内容,以进一步提高3D人体姿势回归的性能。

我们的方法的有效性进行了验证,通过全面的评估与严格的消融研究和比较,与最先进的标准3D基准。我们的方法与Human3.6M [24]上最先进技术的性能相匹配,仅使用2D关节坐标作为输入,参数减少90%。同时,我们的方法优于国家的最先进的结合图像特征。此外,我们还展示了SemGCN的可视化结果,定性地证明了我们的方法的有效性。请注意,所提出的框架可以很容易地推广到其他回归任务,我们将其留给未来的工作。

相关工作

GCN

将CNN推广到具有图形结构的输入是深度学习领域的一个重要课题。在文献中,已经有几次尝试使用递归神经网络来处理在图域中表示为有向无环图的数据[14]。在[17,28,49]中引入了GNN,作为处理任意图形数据的更常见的解决方案。在图上构造GCN的原理通常遵循两个流:光谱透视和空间透视。我们的工作属于第二个流[28,39,60],其中卷积滤波器直接应用于图节点及其邻居。最近对计算机视觉的研究已经通过利用GCN对视觉对象[68,70]或时间序列[66,67]之间的关系进行建模来实现最先进的性能。本文遵循他们的精神,同时我们探索将GCN应用于回归任务,特别是2D到3D人体姿势回归。

3D HPE

是3D姿态估计的关键。Martinez等人[34]介绍了一种简单而有效的方法,纯粹基于2D检测来预测3D关键点。Fang等人。[13]通过姿势语法网络进一步扩展了这种方法。这些工作集中在2D到3D姿态回归,这是最相关的本文的上下文。其他方法使用合成数据集,这些数据集是通过使用地面实况[8,42,48]对人类模板模型进行变形而生成的,或者除了关节之外,还引入了涉及高级知识[40,53,69]的损失函数。它们是对其他人的补充。剩余工作的目标是利用时间信息[11,18,21,57]进行3D姿态回归。它们超出了本文的范围,因为我们的目标是处理来自一个单个图像的2D姿态。然而,我们的方法可以很容易地扩展到序列输入,我们把它留给未来的工作。

语义图卷积网络

我们提出了一种新的图形网络架构来处理一般的回归任务,涉及的数据,可以表示在图的形式。首先介绍了GCN的背景和相关的基线方法。然后介绍了SemGCN的详细设计。

我们假设图数据共享相同的拓扑结构,例如人类骨架[10,26,61,67],3D变形模型[33,45,72]和引用网络[50]。在同一域中具有不同图结构的其他问题,例如,蛋白质-蛋白质相互作用[60]和量子化学[15]不在本文的范围内。这个假设使得学习图结构中隐含的先验成为可能,这激发了SemGCN。

1.ResGCN:基线

我们将首先简要回顾[28]中提出的“vanilla”GCN。设G = {V,E}表示一个图,其中V是K个节点的集合,E是边,而x(l)i ∈ RDl和x(l+1)i ∈ RDl+1分别是节点i在第l次卷积之前和之后的表示。基于图的卷积传播可以在两个步骤中应用于节点i。首先,节点表示由可学习的参数矩阵W ∈ RDl+1×Dl变换。其次,这些变换后的节点表示从其相邻节点j ∈ N(i)收集到节点i,然后是非线性函数(ReLU [37])。如果节点表示被收集到矩阵X(l)∈ RDl×K中,则卷积运算可以写为:

其中A 是从常规GCN中的A对称归一化的。A ∈ [0,1]K×K是G的邻接矩阵,对于节点j ∈ N(i),αij = 1,αii = 1.

Wang等人。[64]根据等式重新表述了一个非常深的图网络。1与残差连接[20]学习图像特征和3D顶点之间的映射。我们采用它的网络架构,并把它作为我们的基线表示为ResGCN。

上面的式子有两个明显的缺点

首先,为了使图卷积在具有任意拓扑的节点上工作,所有边共享学习的核矩阵W。结果,相邻节点的关系或图中的内部结构没有被很好地利用。其次,以前的工作只在第一个结点收集特征,这也是有限的,因为感受野固定为1。

2. Semantic Graph Convolutions

我们表明,学习语义关系的相邻节点隐含在边缘的图形是有效的,以解决共享的核矩阵的限制。所提出的方法基于CNN的概念。图1(a)显示了卷积核大小为3 × 3的CNN。它学习了九个彼此不同的变换矩阵,以在空间维度上对内核内部的特征进行编码。这使得操作具有对图像中包含的特征模式进行建模的表达能力。我们发现,这个公式可以通过学习每个位置的加权向量ai来近似,然后将它们与共享的变换矩阵W相结合。如果我们将图像特征图表示为其节点表示像素的正方形网格图,则该近似公式可以直接扩展到GCN,如图1(c)所示

图1

所提出的语义图卷积的图1示。(a)CNN的3×3卷积核(以绿色突出显示)为内核内的每个位置学习不同的变换矩阵wi。我们通过学习每个位置的加权向量ai和共享变换矩阵W来近似它。(b)常规GCN仅学习用于所有节点的共享变换矩阵w0。(c)(a)中的近似公式可以直接扩展到(b):我们为图中的每个节点添加附加的可学习权重ai。(d)我们进一步扩展(c)以学习每个节点的信道加权向量ai。在将它们与GCN中的香草变换矩阵W相结合之后,我们可以获得一种新的具有与CNN相当的学习能力的图的核运算。学习到的权重向量示出了图中隐含的相邻节点的局部语义关系。

 为此,我们提出了语义图卷积(SemGConv),其中我们将可学习的加权矩阵M ∈ RK×K添加到传统的图卷积中。上面的公式就可以转换为:

其中ρi是Softmax非线性,其在节点i的所有选择上归一化输入矩阵;是一个元素级运算,如果aij = 1,则返回mij,或者返回在ρi之后具有饱和到零的大指数的负数; A充当掩码,其强制对于图中的节点i,我们仅计算其相邻节点j ∈ N(i)的权重。

如图1(d),我们可以进一步扩展上式,通过学习Md ∈ RK×K的集合,使得不同的加权矩阵被应用于输出节点特征的每个通道d:

其中 || 表示逐通道级联,并且wd是变换矩阵W的第d行。

3.与之前GCN的比较

aGCN [68]和GAT [60]都遵循自注意策略[59],通过关注其邻居来计算图中每个节点的隐藏表示。他们的目标是根据边缘的输入来估计加权函数,以调制整个图中的信息流。相比之下,我们的目标是学习表示图结构中隐含的先验的边的输入无关权重,例如,在人体姿势估计中,一个关节如何影响其他身体部位。

STGCN [67]中引入的边缘重要性加权掩模是与我们最相关的工作,但具有以下两个显著差异。首先,在[67]加权后没有利用Softmax非线性,而我们发现它稳定了训练并获得了更好的结果,因为节点对其邻居的贡献被Softmax归一化。其次,ST-GCN仅将一个单个可学习掩码应用于所有信道,但我们学习用于边的信道方式的不同权重。因此,我们的模型具有更好的能力,以适应数据映射。

网络架构

捕获图中节点之间的全局和远程关系能够有效地解决有限的感受野的问题。然而,为了保持GCN的行为,我们通过基于其表示而不是学习新的卷积滤波器来计算节点之间的响应来限制特征更新机制。因此,我们遵循非局部均值概念[5,65]并将运算定义为:

其中Wx被初始化为零; f是计算节点i和所有其他j之间的亲和度的成对函数; g计算节点j的表示。在实践中,上式可以通过[65]中提出的非局部层来实现。

基于等式3和4,我们提出了一种新的网络架构回归任务称为语义图卷积网络,其中SemGConv和非本地层交织以捕获节点的本地和全局语义关系。图2示出了示例。在这项工作中,所有块中的SemGCN具有相同的结构,其包括由具有128个通道的两个SemGConv层构建的一个残余块[20],然后是一个非局部层。重复该块几次以使网络更深。在网络开始时,一个SemGConv用于将输入映射到潜在空间;并且我们有一个额外的SemGConv,它将编码的特征投影回输出空间。所有SemGConv层之后都是批处理归一化[22]和ReLU激活[37],除了最后一个。请注意,如果SemGConv层被替换为vanilla图卷积并且所有非局部层被移除,则SemGCN降级为ResGCN

提出的语义图卷积网络的示例。我们的网络的构建块是由两个具有128个通道的SemGConv层构建的一个剩余块[20],然后是一个非本地层[65]。该块重复四次。所有SemGConv层之后都是批处理归一化[22]和ReLU激活[37],除了最后一个。

3D人体姿态回归

在本节中,我们提出了一种新颖的端到端可训练框架,其在Sect. 3用图像特征进行三维人体姿态回归。

1.框架概述

最近,证明了可以通过仅使用2D人体姿势作为系统输入来直接获得准确的3D姿势估计[34]。形式上,给定预定义相机坐标系中的一系列2D关节P ∈ RK×2及其对应的3D关节J ∈ RK×3(K是关节的数量),系统旨在学习回归函数F *,其在包含N个人类姿势的数据集上最小化以下误差:

我们认为,图像内容是能够提供重要的线索,解决模棱两可的情况下,如经典的转向芭蕾舞演员的视错觉。因此,我们扩展了上式,通过将图像内容视为附加约束。扩展公式可以表示为:

 

 其中Ii是包含2D关节Pi的对准人体姿势的图像。在实践中,P可以在已知相机参数下或从2D联合检测器获得作为2D地面实况位置。在后一种情况下,2D检测器已经在训练过程期间编码了输入图像的感知特征。这一观察激励了我们的框架的设计。

我们的框架的概述如图3所示,整个框架由两个神经网络组成。给定图像,利用一个深度卷积网络进行2D关节预测;同时,它还充当骨干网络,并且从其中间层汇集图像特征。由于2D和3D关节坐标可以编码在人体骨骼中,所提出的SemGCN用于自动捕获嵌入在人体关节的空间配置中的模式。它预测3D坐标根据2D姿态以及感知特征从骨干网络。

图3

2.感知特征池

ResNet [20]和HourGlass [38]在传统的人体姿态检测问题中被广泛采用。从经验上讲,我们采用ResNet作为骨干网络,因为它的中间层提供了图像的分层特征,这些特征在对象检测和分割等计算机视觉问题中非常有用[46,74]。给定输入图像中每个2D关节的坐标,我们从ResNet中的多个层中汇集特征。特别地,我们使用RoIAlign [19]连接从层conv 1到conv 4提取的特征。然后将这些感知特征与2D坐标连接并馈送到SemGCN中。注意,由于输入图像中的所有关节共享相同的尺度,因此我们将特征汇集在以具有固定大小的每个关节为中心的方形边界框中,即,骨骼的平均骨长。这示于图3.

3.损失函数

大多数先前的基于回归的方法直接最小化预测和地面真实关节位置[6,34,57,76]或骨骼向量[53]的均方误差(MSE)。遵循他们的精神,我们采用人体姿势中关节和骨骼约束的简单组合作为我们的损失函数,其定义为:

其中J = {~ Ji| i = 1,...,K}是预测的3D关节坐标,并且B = {~ Bi| i = 1,...,M}是从J计算的骨骼; Ji和Bi是数据集中对应的地面实况。每个骨骼都是从起始关节指向其相关父关节的有向向量,如[53]中所定义。

Experiments

1.实现细节

网络训练

我们使用[54]中的ResNet50作为我们的骨干网络,它与积分损失兼容,并在ImageNet上进行了预训练[9]。在训练过程中,我们使用Adam [27]进行优化,初始学习率为0.001,并使用大小为64的小批量。当验证集上的损失饱和时,学习率以0.5的衰减率下降。我们使用[16]中描述的初始化来初始化图网络的权重。

结论

我们提出了一种新的模型,三维人体姿态回归,语义图卷积网络(SemGCN)。我们的方法通过学习图中节点之间的局部和全局语义关系,解决了GCN的关键挑战。SemGCN和从图像内容汇集的特征的组合进一步提高了3D人体姿势估计的性能。综合评价结果表明,我们的网络获得了最先进的性能与90%的参数减少相比,最接近的工作。拟议的SemGCN也开辟了许多可能的方向,为未来的工作。例如,如何将时间信息(如视频)合并到SemGCN中成为一个自然的问题。

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

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

相关文章

Rider 中C#单元测试

使用NUnit.Framework这个包,没有的话可以用nuget去搜索下载。简单的进行单元测试,想要单元测试好像还给需要static函数,慢慢学学C# using System; using NUnit.Framework;namespace client {public class test{[Test]public static void test…

Vue+NodeJS实现邮件发送

一.邮箱配置 这里以QQ邮箱为例,网易邮箱类似. 设置->账号 二.后端服务搭建 index.js const express require(express) const router require(./router); const app express()// 使用路由文件 app.use(/,router);app.listen(3000, () > {console.log(server…

sklearn中的数据集使用

导库 from sklearn.datasets import load_iris 实现 # 加载数据集 iris load_iris() print(f查看数据集:{iris}) print(f查看数据集的特征:{iris.feature_names}) print(f查看数据集的标签:{iris.target_names}) print(f查看数据集的描述…

期货基础知识

一、期货是什么?  期货是与现货相对应,并由现货衍生而来。期货通常指期货合约,期货与现货完全不同,现货是实实在在可以交易的货(商品),期货主要不是货,而是以某种大众产品如棉花、大…

Nginx从安装到使用,反向代理,负载均衡

什么是Nginx? 文章目录 什么是Nginx?1、Nginx概述1.1、Nginx介绍1.2、Nginx下载和安装1.3、Nginx目录结构 2、Nginx命令2.1、查看版本2.2、检查配置文件正确性2.3、启动和停止2.4、重新加载配置文件2.5、环境变量的配置 3、Nginx配置文件结构4、Nginx具体…

论文阅读_大模型_ToolLLM

英文名称: ToolLLM: Facilitating Large Language Models to Master 16000 Real-world APIs 中文名称: TOOLLLM:帮助大语言模型掌握16000多个真实世界的API 文章: http://arxiv.org/abs/2307.16789 代码: https://github.com/OpenBMB/ToolBench 作者: Yujia Qin 日期…

部署项目至服务器

安装conda https://zhuanlan.zhihu.com/p/489499097 个人租借的服务器如何进行端口的开放呢? 防火墙设置: 添加规则设置: 即可; 通常下租借的服务器没有防火墙设置 相关链接: https://blog.csdn.net/weixin_4520…

算法通关村16关 | 滑动窗口最长字串专题

1. 最长字串专题 1.1 无重复字符的最长字串 题目 LeetCode3 给定一个字符串s,请你找出其中不含有重复字符的最长字串的长度。 思路 找最长字串,需要知道所有无重复字串的首和尾,找出其中最长的,最少两个指针才可以完成&#xff…

PHP8内置函数中的变量函数-PHP8知识详解

在php8中,与变量相关的内置函数比较多,本文说一些比较重要的、常见的内置函数。今日着重讲解了5个,分别是:检测变量是否为空的函数empty()、判断变量是否定义过的函数isset()、销毁指定的变量的函数unset()、获取变量的类型的函数…

Vagrant + VirtualBox + CentOS7 + WindTerm 5分钟搭建本地linux开发环境

1、准备阶段 将环境搭建所需要的工具和文件下载好(页面找不到可参考Tips部分) Vagrant 版本:vagrant_2.2.18_x86_64.msi 链接:https://developer.hashicorp.com/vagrant/downloads VirtualBox 版本:VirtualBox-6.1.46…

使用redis实现队列功能

使用redis实现队列功能 操作方法描述LPUSHLong lPush(String key, String… values)将一个或多个值 value 插入到列表 key 的表头,返回插入后列表中value的数量,若key不存在,会创建一个新的列表并执行 LPUSH 操作RPOPLPUSHString rPopLPush(S…

【网络编程】TCP/IP协议(互联网的基石)

(꒪ꇴ꒪ ),Hello我是祐言QAQ我的博客主页:C/C语言,数据结构,Linux基础,ARM开发板,网络编程等领域UP🌍快上🚘,一起学习,让我们成为一个强大的攻城狮&#xff0…