Home

Awesome

GFRNet

Torch implementation for Learning Warped Guidance for Blind Face Restoration

GFRNet framework

Overview of our GFRNet. The <B>WarpNet</B> takes the degraded observation and guided image as input to predict the dense flow field, which is adopted to deform guided image to the warped guidance. Warped guidance is expected to be spatially well aligned with ground-truth. Thus the <B>RecNet</B> takes warped guidance and degradated observation as input to produce the restoration result.

<img src="./imgs/architecture/pipeline.jpg">

Testing

th test.lua

Models

Download the pre-trained model with the following url and put it into ./checkpoints/FaceRestoration/.

Results

Restoration on real low quality images

The first row is real low quality image(close-up in right bottom is the guided image). The second row is GFRNet result.

<img src="./imgs/realresults/1.jpg">

Warped guidance

<img src="./imgs/warpface/warp.jpg">

IMDB results

The content marked with green box is the restoration results by our GFRNet. All of these images are collected from Internet Movie Database (IMDb).

<table style="float:center"> <tr>  <th><B>Input</B></th><th><B>Guided Image</B></th><th><B>Bicubic</B></th><th><B>GFRNet Results</B></th> </tr> <tr> <td> <img src='./imgs/IMDb/1_2.jpg' > </td> <td> <img src='./imgs/IMDb/1_1.jpg'> </td> <td> <img src='./imgs/IMDb/1_3.jpg'> </td> <td> <img src='./imgs/IMDb/1_4.jpg'> </td> </tr> <tr> <td> <img src='./imgs/IMDb/2_2.jpg' > </td> <td> <img src='./imgs/IMDb/2_1.jpg'> </td> <td> <img src='./imgs/IMDb/2_3.jpg'> </td> <td> <img src='./imgs/IMDb/2_4.jpg'> </td> </tr> </table>

Requirements and Dependencies

Acknowledgments

Code borrows heavily from pix2pix. Thanks for their excellent work!

Citation

@InProceedings{Li_2018_ECCV,
author = {Li, Xiaoming and Liu, Ming and Ye, Yuting and Zuo, Wangmeng and Lin, Liang and Yang, Ruigang},
title = {Learning Warped Guidance for Blind Face Restoration},
booktitle = {The European Conference on Computer Vision (ECCV)},
month = {September},
year = {2018}
}