论文阅读笔记--3D human pose estimation in video with temporal convolutions and semi-supervised training -1 (3)

而上面的Slice是为了和经过3d3和1d1卷积运算的feature map实现对应位相加, 因此将一个1*241的向量以中心为轴去掉两边各3个,最后变成235的resolution. channel依然是1024.

后面的block操作基本上就是一样的了, 同时到最后一层就是resolution=1, channel=1024.然后经过3*17个卷积核运算后(卷积核参数为1d1), 即输出最终的3D Pose.

图3:

在这里插入图片描述

下面是原文给出的解释:

在这里插入图片描述


而前面的各种操作其实形象化的可以用下图来辅助理解, 构成的是一张树状的特征提取过程.

这样的过程在结构上也与RNNs的结构很类似, 但RNNs的"树"不能太深, 否则会出现梯度消失或者梯度爆炸等问题.而这个基于时序卷积的模型则可以充分利用resnet的思想来解决梯度问题.

在这里插入图片描述


由于作者考虑到在实际应用场景使用这个模型, 但该模型使用时需要前后帧的信息(过去几帧和未来几帧)才能预测一帧,如下图(a) Symmetric convolutions, 而这是无法实时工作的.

考虑到这个问题, 还有一个变体就是如下图所示的(b) Causal convolutions, 即因果卷积, 即只计算过去几帧来预测当前帧:

在这里插入图片描述

2.2 Semi-supervised approach

利用现有的2D keypoints detector 和back-projection module将未标注的video产生的loss计算到总loss中, 以便加强监督学习.

作者将这一问题看成是一个自编码器问题: 即利用encoder(pose estimator)将2D Pose坐标转换为3D Pose 坐标, 而decoder则是将3D Pose坐标投影到2D Pose坐标. 在具体实现的过程中比较关键的两个点:
Trajectory model 和Bone length L2 loss .

在实现过程中, Trajectory model 和Bone length L2 loss同时进行优化, 其中标记数据占据前半部分,未标记数据占据后半部分。有3D Pose标记的数据使用Ground Truth(GT) 作为supervised loss, 而无标记的数据则计算自编码器loss, 即计算转换前2D Pose 坐标和转换后的2D Pose坐标的差异性.

在这里插入图片描述

2.2.1 Trajectory model

根据透视投影的特点, 2D Pose在屏幕中的位置, 不仅依赖于轨迹(trajectory 即人体相对于基关键点root joint的全局位置, 基关键点可以是髋关节位置的关键点), 还依赖于各个关键点相对于 root joint的3维位置.

缺少全局位置,2D Pose将始终以固定比例重新投影到屏幕中心导致监督不足, 因此利用了一个Trajectory网络来回归人体的3D trajectory.此外还优化了第二个网络,该网络用于回归摄像机空间中的全局轨迹.

这两个网络结构相同,但是不共享任何参数(作者实验发现共享参数会使结果相互干扰).

另外当相机中的目标人体与相机距离较远, 预测一个精确的trajectory很有难度, 则采用的是加权 MPJPE, 即对每个sample使用距离Yz的倒数作为权重, 其中Yz会在相机的内置参数中给出.

E = 1 / Yz * |f (x) − y|

对于一个较远的目标预测出精确的trajectory没必要, 因为相关的2D keypoints往往落在一个比较集中的小范围内. 因此对于越远的目标, loss权重越低.

这一段的解释不是很清楚, 具体的实现还需要仔细阅读源代码的相应实现, 以便加深理解.

2.2.2 Bone length L2 loss

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwxwpp.html