← all repositories
HRLTY/TP-GAN

Turning mugshots to mugshots: a GAN that un-rotates faces

A 2017 ICCV paper that synthesizes frontal faces from extreme side angles using two perceptual paths at once.

TP-GAN
Velocity · 7d
+0.2
★ / day
Trend
steady
star history

What it does

TP-GAN takes a single face photo shot from any angle—15 degrees off-center all the way to full profile—and generates a photorealistic frontal view of the same person. It was built for the MultiPIE dataset and trained on controlled conditions with cropped, aligned inputs.

The interesting bit

The “global and local perception” split is the hook: one network path handles the overall face structure, while a second path focuses on four local patches (eyes, nose, mouth). The two streams merge to keep identity consistent even when the input is basically an ear and a cheek. The 90-degree model was trained only on 45–90 degree images, which is either admirably honest or a quiet admission that extreme angles break most assumptions.

Key highlights

  • TensorFlow 0.12 implementation, so expect archaeology if you try to run it today
  • Requires 5 facial keypoints for preprocessing via a provided Matlab script
  • Uses a borrowed Light-CNN “DeepFace” network for identity preservation
  • Outputs synthesized test images for multiple poses and illumination settings available via Google Drive
  • Non-commercial license only; commercial use requires contacting the authors

Caveats

  • Code is an “initial release” that “may not be fully tested”—the authors’ words, not mine
  • Original MultiPIE dataset cannot be redistributed; you must request it separately
  • 90-degree inputs have overlapping left/right eye patches, which the model handles by training exclusion

Verdict

Worth studying if you’re building face normalization pipelines or writing a literature review on pose-invariant recognition. Skip it if you need production-ready code or modern PyTorch implementations; this is a reference release from the TF 0.12 era with the maintenance level to match.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.