a machine learning image inpainting task that instinctively removes watermarks from image indistinguishable from the ground truth image
Chimzuruoke Okafor
# Watermark-Removal
An open source project that uses a machine learning based image inpainting methodology to remove watermark from images which is totally indistinguishable from the ground truth version of the image.
This project was inspired by the [Contextual Attention](https://arxiv.org/abs/1801.07892) (CVPR 2018) and [Gated Convolution](https://arxiv.org/abs/1806.03589) (ICCV 2019 Oral).
And also a shoutout to [Chu-Tak Li](https://chutakcode.wixsite.com/website) for his [Medium article series](https://towardsdatascience.com/10-papers-you-must-read-for-deep-image-inpainting-2e41c589ced0) that really gave me a deep insight into the image inpainting papers stated above
## Run
### Docker
1. Clone this repository to your computer.
2. From the repository root, build a Docker image with the command `docker build -t watermark-removal .`
3. Download the model dir using this [link](https://drive.google.com/drive/folders/1xRV4EdjJuAfsX9pQme6XeoFznKXG0ptJ?usp=sharing).
4. Create and run a docker container with the image you built using the command:
```bash
docker run --rm -v ':/repo/model' -v ':/input' -v ':/output' watermark-removal --checkpoint_dir /repo/model --image '/input/' --output '/output/' --watermark_type istock
```
### Google colab (broken)
- use [Google colab](https://research.google.com/colaboratory/)
- First of all, clone this repo
!git clone https://github.com/zuruoke/watermark-removal
- Change Directory to the repo
!cd watermark-removal
- Since Google Colab uses the latest Tensorflow 2x version and this project uses 1.15.0, downgrade to Tensorflow 1.15.0 version and restart the runtime, (`although the new version of Google Colab does not need you to restart the runtime`).
!pip install tensorflow==1.15.0
- Install tensorflow toolkit [neuralgym](https://github.com/JiahuiYu/neuralgym).
!pip install git+https://github.com/JiahuiYu/neuralgym
- Download the model dirs using this [link](https://drive.google.com/drive/folders/1xRV4EdjJuAfsX9pQme6XeoFznKXG0ptJ?usp=sharing) and put it under `model/` (rename `checkpoint.txt` to `checkpoint` because sometimes google drive automatically adds .txt after download)
And you're all Set!!
- Now remove the watermark on the image by runing the `main.py` file
!python main.py --image path-to-input-image --output path-to-output-image --checkpoint_dir model/ --watermark_type istock
## Citation
If you use this in your research, please cite:
Zuruoke (2021). _Watermark Removal: a machine learning image inpainting task_.
GitHub Repository. https://doi.org/10.5281/zenodo.20551267
## Citing
```
@article{yu2018generative,
title={Generative Image Inpainting with Contextual Attention},
author={Yu, Jiahui and Lin, Zhe and Yang, Jimei and Shen, Xiaohui and Lu, Xin and Huang, Thomas S},
journal={arXiv preprint arXiv:1801.07892},
year={2018}
}
@article{yu2018free,
title={Free-Form Image Inpainting with Gated Convolution},
author={Yu, Jiahui and Lin, Zhe and Yang, Jimei and Shen, Xiaohui and Lu, Xin and Huang, Thomas S},
journal={arXiv preprint arXiv:1806.03589},
year={2018}
}
```
## © Chimzuruoke Okafor