The large pose discrepancy between two face images is one of the fundamental challenges in automatic face recognition. Conventional approaches to pose-invariant face recognition either perform face frontalization on, or learn a pose-invariant representation from, a non-frontal face image. We argue that it is more desirable to perform both tasks jointly to allow them to leverage each other. To this end, this paper proposes a Disentangled Representation learning-Generative Adversarial Network (DR-GAN) with three distinct novelties. First, the encoder-decoder structure of the generator enables DR-GAN to learn a representation that is both generative and discriminative, which can be used for face image synthesis and pose-invariant face recognition. Second, this representation is explicitly disentangled from other face variations such as pose, through the pose code provided to the decoder and pose estimation in the discriminator. Third, DR-GAN can take one or multiple images as the input, and generate one unified identity representation along with an arbitrary number of synthetic face images. Extensive quantitative and qualitative evaluation on a number of controlled and in-the-wild databases demonstrate the superiority of DR-GAN over the state of the art in both learning representations and rotating large-pose face images.

Overview DR-GAN

Figure 1: Given one or multiple in-the-wild face images as the input, DR-GAN can produce a unified identity representation, by virtually rotating the face to arbitrary poses. The learnt representation is both discriminative and generative, i.e., the representation is able to demonstrate superior PIFR performance, and synthesize identity-preserved faces at target poses specified by the pose code.

Face Frontalization on IJB-A


Figure 2: Face frontalization on IJB-A. For each of four subjects, we show 11 input images with estimated coefficients overlaid at the top left corner (first row) and their frontalized counter part (second row). The last column is the groundtruth frontal and synthetic frontal from the fused representation of 11 images. Note the challenges of large poses, occlusion, and low resolution, and our opportunistic frontalization.

Face Frontalization on CFP


Figure 3: Face frontalization on CFP: (a) input, (b) our frontalized faces, (c) real frontal faces. We only expect the frontalized faces to be similar to real faces in the identity, rather than in all facial attributes. This is very challenging for face rotation due to the in-the-wild variations and extreme profile views. The artifact in the image boundary is due to image extrapolation in pre-processing. When the input images are frontal face with variations in roll, pitch, expression, occlusions, the frontalized faces can remove these variations.

DR-GAN Frontalization Result

DR-GAN frontalized faces and feature representations of faces on CFP and IJB-A may be downloaded at: CFP and IJB-A.

If you use these results, please cite to the papers:


  • Disentangled Representation Learning GAN for Pose-Invariant Face Recognition
    Luan Tran, Xi Yin, Xiaoming Liu
    In Proceeding of IEEE Computer Vision and Pattern Recognition (CVPR 2017), Honolulu, HI, Jul. 2017 (Oral presentation)
    Bibtex | PDF
  • @inproceedings{ disentangled-representation-learning-gan-for-pose-invariant-face-recognition,
      author = { Luan Tran and Xi Yin and Xiaoming Liu },
      title = { Disentangled Representation Learning GAN for Pose-Invariant Face Recognition },
      booktitle = { In Proceeding of IEEE Computer Vision and Pattern Recognition },
      address = { Honolulu, HI },
      month = { July },
      year = { 2017 },
  • Representation Learning by Rotating Your Faces
    Luan Tran, Xi Yin, Xiaoming Liu
    Under Review IEEE Transactions on Pattern Analysis and Machine Intelligence, May. 2017
    Bibtex | PDF | arXiv
  • @article{ representation-learning-by-rotating-your-faces,
      author = { Luan Tran and Xi Yin and Xiaoming Liu },
      title = { Representation Learning by Rotating Your Faces },
      journal = { arXiv preprint arXiv:1705.11136 },
      year = { 2017 },