Home

Awesome

Hyperrealistic Image Inpainting with Hypergraphs

This repository contains the implmentation of Image Inpainting method proposed in the paper

Gourav Wadhwa, Abhinav Dhall, Subrahmanyam Murala, and Usman Tariq, Hyperrealistic Image Inpainting with Hypergraphs.In IEEE Winter Conference on Computer Vision (WACV), 2021.

Paper | Supplementary Material | BibTex

<img src="./Examples/Teaser.png" width="100%" alt="Teaser"> <img src="./Examples/demo.gif" width="40%" alt="demo">

Dependencies

Our Framework

We use a two stage coarse-to-refine network for the task of image inpainting

<img src="./Examples/network.png" width="100%" alt="network">

Hypergraph Layer

<img src="./Examples/hypergraph_layer.png" width="60%" alt="hypergraph_layer">

Installation

git clone https://github.com/GouravWadhwa/Hypergraphs-Image-Inpainting.git
cd Hypergraphs-Image-Inpainting

Testing

Download the pretrained models from the following links

Put the checkpoints in the folder pretrained_models/. To test images in a folder, specify the path to the folder using --test_dir and specify the model to be loaded using --checkpoint_prefix.

For example (for CelebA-HQ dataset on Random Mask) :

python test.py --dataset celeba-hq --pretrained_model_dir pretrained_models/ --checkpoint_prefix celeba_hq_256x256_random_mask --random_mask 1 --test_dir [Testing Folder Path]

Note - For all predicted images, 1st image represent the input image, 2nd represent the ground truth, 3rd represents the coarse network output and the final image is our final prediction.

You can use evaluate.py to determine SSIM and PSNR of the predicted images.

Training

You can train the Hyperrealistic image inpainting network using the following command

For CelebA-HQ dataset with irregular holes

python training.py  --random_mask 1 --train_dir [Training Folder Path] --batch_size [Batch Size]

where [Training Folder Path] indicates the path in which training images are stored, and [Batch Size] indicated the batch size used for training.

For center mask change the -random mask to 1.

Instead of providing the training directory you can also make a file in which the path of all training images is stored (--train_file_path [TRAIN FILE PATH])

Training results and the checkpoints will be stored in the Training directory created by running this code.

Reference

If you find this work useful or gives you some insights, please cite:

@InProceedings{Wadhwa_2021_WACV,
    author={Wadhwa, Gourav and Dhall, Abhinav and Murala, Subrahmanyam and Tariq, Usman},
    title={Hyperrealistic Image Inpainting With Hypergraphs},
    booktitle={Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision (WACV)},
    month={January},
    year={2021},
    pages={3912-3921}
}

Contact

The code and associated models can only be used for research purposes in an academic setting. For any commercial usage and licensing, please contact 2017eeb1206@iitrpr.ac.in

For any further queries please contact at 2017eeb1206@iitrpr.ac.in