SGANPose | 自对抗人体姿态估计网络

Self Adversarial Training for Human Pose Estimation

论文地址:https://arxiv.org/pdf/1707.02439.pdf

代码地址:https://github.com/roytseng-tw/adversarial-pose-pytorch

   1.背景分析

由于人体的遮挡和拥挤等现象,现有的人体姿态估计网络很难解决此类情况下的准确估计,且此类现象会导致网络估计的关键点不符合正常的人体姿态,失去了人体固有的形态。比如下图中第二行图片所示,相较于第一行,很显然有部分关节是违背事实的。作者希望即使在拥挤状态下,网络预测得到关键点也能够符合关节所固有结构。基于此作者提出使用生成对抗的方式来解决这个问题。

SGANPose | 自对抗人体姿态估计网络

   2.自对抗网络结构

与传统的GAN模型类似,本文的模型分为两个网络,生成器和鉴别器。第一个网络生成器是一个卷积网络,生成器经过前向计算,得到一组热图,它指示每个关键点的每个位置的置信度得分。第二个网络鉴别器,具有与生成器相同的架构,但它将热图与RGB图像一起编码输入,并将其解码为一组新的热图,以便区分真实的热图和虚假的热图。本文提出的自对抗网络结果如下图所示。在最终做关键点前向推理时,会将鉴别器从整体的结果中剔除。自对抗人体姿态估计网络最终能够将对抗生成网络应用到人体关键点估计任务中,在不增加模型推理时间的前提下,有效提升任何现有姿态估计模型的性能。

SGANPose | 自对抗人体姿态估计网络

   3.生成器

生成器主要的作用是生成准确的人体关键点信息。当然作为生成对抗中的一环,生成器最主要的功能就是能够让生成的关键点欺骗最终的鉴别器,使得鉴别器无法区分当前关键点热图是GT还是生成器生成的。因此,如下图所示,训练生成器时,其通过两部分进行优化,分别为反向传播来自生成器的损耗Lmse和来自鉴别器的对抗损耗Ladv。

SGANPose | 自对抗人体姿态估计网络

整体的loss如下所示,公式1的损失Lmse目的是使得生成器最终生成的人体关键点能够更加接近标签。公式2的对抗性损失Ladv,该对抗损失的目的是使得生成器最终生成的关键点符合更加合理的姿态。更直接的说,Ladv的目的是使得生成器生成的虚假热度图能够尽可能的糊弄鉴别器,使其无法区分GT热图和虚假热图。生成对抗的过程就体现在这里。最终利用公式3所示的损失来优化生成器。其中lamda是一个超参数。

SGANPose | 自对抗人体姿态估计网络

   4.鉴别器

鉴别器的目标是区分输入进来的热图是GT还是生成器生成的虚假热图。鉴别器最终的训练目标就是能够把生成器生成的数据可能和GT区分出来。从而和生成器形成一个对抗博弈的过程。因此,如下图所示,训练鉴别器时,其通过两部分进行优化,分别为反向传播来自鉴别器的损耗Lreal和来自鉴别器的损耗Lfake。

SGANPose | 自对抗人体姿态估计网络

整体的loss如下所示,公式(4.1)表示将GT热图输入鉴别器得到编码后的新热图,并计算新热图和GT热图的距离,进行Lreal损失计算。公式(4.2)表示将生成器生成的虚假热图输入鉴别器得到编码后的新热图,并计算新热图和生成器生成的虚假热图之间的距离进行Lfake损失计算。正如前述提到过的,鉴别器的目的是尽可能的将虚假热图和GT热图区分开来,也就是说鉴别器希望GT热图输入后的输出重构热图尽可能和GT接近,希望虚假热图输入后的输出重构热图尽可能和虚假热图不同。从loss上来说就是希望Lreal越来越小,希望Lfake越来越大。基于此,鉴别器的loss如公式(4.3)所示。

SGANPose | 自对抗人体姿态估计网络

上述公式中的kt是用来约束鉴别器的能力,通过公式(5)约束kt能够使得网络更容易训练。正如许多论文中提到的那样,GAN不稳定且难以训练,因为鉴别器过快收敛,导致网络很容易崩溃,训练出无效的生成器。鉴别器过快收敛,从loss来分析就是:Lfake小于Lreal,生成器生成的热图足够真实以欺骗鉴别器。此时,kt将增加,以使Lfake更具优势,从而使得鉴别器进行更多的训练才能识别生成的热图。它在Lfake上加速训练的比例取决于鉴别器落在与生成器的差距。当Lfake大于Lreal时原理类似。

   5.SGANPose训练流程

整体算法每一个迭代过程如下:

  • 1.将GT热度图C,原始图像X输入到鉴别器,计算鉴别器的前向结果。为D(X,C)。同时计算鉴别器的loss,公式4.1,Lreal。

  • 2.将原始图像X输入到生成器,计算生成器的前向结果C^。同时计算生成器loss,公式1,Lmse。

  • 3.将虚假热度图C^,原始图像X输入到鉴别器,计算鉴别器的前向结果。为D(X,C^)。同时计算鉴别器的loss,公式4.2,Lfake。(累计Lreal和Lfake梯度值,并更新鉴别器参数,公式4.3)。

    4.有了虚假热度图C^和D(X,C^),利用公式2计算对抗loss,Ladv,并更新生成器。

    SGANPose | 自对抗人体姿态估计网络

   6.结果展示及分析

作者在LSP和MPII两个人体关键点数据集上对上述自对抗网络进行了结果分析,从下表可以看出,利用对抗生成的方式能够有效提升模型效果,且不会增加推理时间。

SGANPose | 自对抗人体姿态估计网络


公众号近期荐读:

GAN整整6年了!是时候要来捋捋了! 

新手指南综述 | GAN模型太多,不知道选哪儿个?

数百篇GAN论文已下载好!搭配一份生成对抗网络最新综述!

有点夸张、有点扭曲!速览这些GAN如何夸张漫画化人脸!

天降斯雨,于我却无!GAN用于去雨如何?

脸部转正!GAN能否让侧颜杀手、小猪佩奇真容无处遁形?

容颜渐失!GAN来预测?

强数据所难!SSL(半监督学习)结合GAN如何?

弱水三千,只取你标!AL(主动学习)结合GAN如何?

异常检测,GAN如何gan ?

虚拟换衣!速览这几篇最新论文咋做的!

脸部妆容迁移!速览几篇用GAN来做的论文

【1】GAN在医学图像上的生成,今如何?

01-GAN公式简明原理之铁甲小宝篇


GAN&CV交流群,无论小白还是大佬,诚挚邀您加入!

一起讨论交流!长按备注【进群】加入:

SGANPose | 自对抗人体姿态估计网络

更多分享、长按关注本公众号:

SGANPose | 自对抗人体姿态估计网络