RepNet 论文阅读笔记

RepNet 论文阅读笔记_第1张图片
论文原文:https://arxiv.org/abs/1407.1239
本文的研究是通过单张RGB图像中的人体2D姿态转换成3D姿态,即作了姿态升维。

总体思路

借鉴了对抗生成网络与传统坐标透视转换的思想,模型分为三部分:

  1. 第一部分姿态网络:就是传统做法常用的带残差的全连接神经网络直接通过2d姿态坐标预测3d姿态坐标。

  2. 第二部分相机网络:相机的参数由六个坐标决定(选择、缩放),采用与姿态网络相似的网络直接回归出六个坐标。

  3. 第二部分批判网络:类似GAN中的对抗网络,学习3D姿态的正常分布情况,迫使姿态网络产生符合常理的3D姿态。

姿态网络通过2d坐标生成3d坐标,相机网络生成相机参数,由相机参数重新将3d坐标投影回2d坐标(Reproject,论文名字由来),通过与原始坐标的损失进行反向传播。间隔一定周期更新批判网络。

姿态网络

使用人体16个关键点的2d坐标作为输入,输入层为,模型由如图所示的带残差的全连接层以及普通全连接层组成,输出层为,代表16个点关键点的3d坐标。这种网络就是传统直接使用深度学习从2d向3d转换的典型网络。模型相当于做了一个从 X ∈ R 2 × n X \in \mathbb{R}^{2 \times n} XR2×n X ∈ R 3 × n X \in \mathbb{R}^{3 \times n} XR3×n的映射。输出 X ∈ R 3 × n X \in \mathbb{R}^{3 \times n} XR3×n
RepNet 论文阅读笔记_第2张图片

相机模型

与姿态模型类似的结构,直接回归出确定一个相机位姿所需的六个参数,输出层为,相当于一个长度为6的向量,每个向量都是一个相机参数,该向量被reshape为后期运算所需的形状2x3。输出为 K ∈ R 2 × 3 \boldsymbol{K} \in \mathbb{R}^{2 \times 3} KR2×3

重投影层

框架图的右下角部分,通过3D姿态坐标与相机参数矩阵,可以将3D坐标重新投射到2D坐标(精髓所在),称为2D重投影坐标。实质上就是做了一个矩阵乘法:
W ′ = K X W^{\prime}=K X W=KX
通过与输入模型的真实2D坐标的F范数得到重投影损失函数
L r e p ( X , K ) = ∥ W − K X ∥ F \mathcal{L}_{r e p}(\boldsymbol{X}, \boldsymbol{K})=\|\boldsymbol{W}-\boldsymbol{K} \boldsymbol{X}\|_{F} Lrep(X,K)=WKXF

批判网络

RepNet 论文阅读笔记_第3张图片

如图所示,模型的输入为姿态网络生成的3D姿态坐标,模型分为上下两路,先对进行KCS(论文为kinematic chain space,没了解)转换成类似于球坐标(因为原始的全连接层难以提取运动链,对称性和关节角度等人体姿态特征),然后接一层全连接层。下路直接使用全连接层,两路并行后拼接再经过全连接层获取批判网络的输出。批判网络以Wasserstein loss作为损失函数

RepNet 论文阅读笔记_第4张图片

数据预处理

  • 相机参数的确定:对于每个姿态,设计了一个模板姿态,然后将3D姿态于模板姿态对齐,从而计算其旋转、缩放等参数

你可能感兴趣的:(论文阅读)