人体姿态估计论文阅读个人笔记一(HRNet,RepNet等)

HRNetV1

许多传统的利用卷积神经网络的2d人体姿态估计的模型,其在处理过程中会对原始输入图像做一系列上下采样的处理,在其过程中,一些高分辨率上的特征信息的利用就不够充分,该模型提出了一种多尺度融合的方法,使得利用包含更多特征信息的高分辨率图像来做后续的姿态估计等任务。该模型在人体姿态估计上主要用于单个目标的估计。

模型结构

人体姿态估计论文阅读个人笔记一(HRNet,RepNet等)_第1张图片

该模型的结构如上图所示,HRnet模型由四个stage组成,每个stage并行包括不同分辨率的特征图像,其中每个不同分辨率的branch都会通过4个残差卷积块(bottleneck或basicneck)后进行到多特征融合,避免来自不同分辨率的特征信息随着网络深度的加深而丢失掉部分信息。最后使用最后一层输出的最高分辨率的特征图像进行后续的姿态估计回归。

实现方法
在HRnet结构中,下采样即采用了33大小的卷积核使其尺寸减半,通道数翻倍,上采样的过程则使用邻近插值法加上一个11的卷积来实现。在利用最后一个stage输出的最高层特征进行姿态估计时,是对人体J个关键点的heatmap作预测。

HRnetv2

HRnetv2的网络结构与HRnet网络结构一样,其改进之处主要在以下几个方面,首先V2的上采样采用了双线性插值的方法取代之前的邻近插值法。其次,为了更好的应用与下游如分割,检测等不同任务,HRnetV2对于网络最后的输出提出了不同的处理方式,如下图所示。
!人体姿态估计论文阅读个人笔记一(HRNet,RepNet等)_第2张图片

RepNet

RepNet是一种借鉴生成对抗网络GAN的思想提出来的一种针对单人3d姿态估计而提出的一种算法。其算法结构如下图所示
人体姿态估计论文阅读个人笔记一(HRNet,RepNet等)_第3张图片该模型主要分为三大块。

POSE and Camera Estimation

该模块的输入为2d人体关键点坐标(2×n,其中n为关键点个数),该模块由两个网络组成,分别为上支的3d姿态生成模块,其类似于Gan中的生成器模块,该模块是两个残差网络块的连接(激活函数使用leaky Relu),输出为X(3×n),下支为相机参数生成网络,其结构与3d姿态生成网络类似,都是两个残差块的连接,其输出为一个2×3的矩阵K.

Critic模块

该模块即类似与GAN中的辨别器模块,在做3d人体估计任务中,为了更好的表征人体的骨架的运动链,对称度以及各关节之间角度等信息,提出了引入KCS(运动链空间)在本模型中,该辨别器模块的结构如下图所示人体姿态估计论文阅读个人笔记一(HRNet,RepNet等)_第4张图片同样输入X为真实或者生成器产生的人体3d坐标信息X={p1,p2,…pj},定义bone为 b k = p r − p t = Xc ,其中C=(0,0,0,…1,0,…-1,0,0,0) T ,因此包含输入图像所有bones的信息可以表示为 B=XC,进一步定义KCS矩阵为Ψ = B T B KCS矩阵的对角线元素代表每个bone的长度,其余元素可表示各个bone之间的角度信息。
由此模块可以看出,模型训练不需要完全一一对应的gt3维坐标,由生成器产生的3维坐标和部分gt即可实现弱监督学习。

Reprojection layer
该模块的输入即为生成网络的3d人体信息输出X(3×N),和相机网络输出的参数矩阵K(2×3),定义W=KX,得到W(2×n),可以看到该模块中没有需要训练的参数,我们利用得到的W计算一个reprojection loss Lr=||Wg-KX||,其中Wg为输入的真实2维关键点坐标信息。

损失函数
Repnet的损失函数主要由三部分组成
1)Reprojection layer模块中的projection Loss
2)Critic模块产生的wasserstein Loss,参考Wgan
3)Camera网络产生的Camera Loss,
在这里插入图片描述

你可能感兴趣的:(计算机视觉,深度学习,人工智能)