Skip to content

Berrylcm/n-

Repository files navigation



DeepMosaics

English | 中文
You can use it to automatically remove the mosaics in images and videos, or add mosaics to them.
This project is based on "semantic segmentation" and "Image-to-Image Translation".
Try it at this website!

Examples

image

origin auto add mosaic auto clean mosaic
image image image
image image image
mosaic image DeepCreamPy ours
image image image
image image image
  • Style Transfer
origin to Van Gogh to winter
image image image

An interesting example:Ricardo Milos to cat

Run DeepMosaics

You can either run DeepMosaics via a pre-built binary package, or from source.

Try it on web

You can simply try to remove the mosaic on the face at this website.

Pre-built binary package

For Windows, we bulid a GUI version for easy testing.
Download this version, and a pre-trained model via [Google Drive] [百度云,提取码1x0a]

image
Attentions:

  • Requires Windows_x86_64, Windows10 is better.
  • Different pre-trained models are suitable for different effects.[Introduction to pre-trained models]
  • Run time depends on computers performance (GPU version has better performance but requires CUDA to be installed).
  • If output video cannot be played, you can try with potplayer.
  • GUI version updates slower than source.

Run From Source

Prerequisites

Dependencies

This code depends on opencv-python, torchvision available via pip install.

Clone this repo

git clone https://github.com/HypoX64/DeepMosaics.git
cd DeepMosaics

Get Pre-Trained Models

You can download pre_trained models and put them into './pretrained_models'.
[Google Drive] [百度云,提取码1x0a]
[Introduction to pre-trained models]

In order to add/remove mosaic, there must be a model file mosaic_position.pth at ./pretrained_models/mosaic/mosaic_position.pth

Install dependencies

(Optional) Create a virtual environment

virtualenv mosaic
source mosaic/bin/activate

Then install the dependencies

pip install -r requirements.txt

If you can not build scikit-image, running export CFLAGS='-Wno-implicit-function-declaration then try to rebuild.

Simple Example

  • Add Mosaic (output media will be saved in './result')
python deepmosaic.py --media_path ./imgs/ruoruo.jpg --model_path ./pretrained_models/mosaic/add_face.pth --gpu_id 0
  • Clean Mosaic (output media will save in './result')
python deepmosaic.py --media_path ./result/ruoruo_add.jpg --model_path ./pretrained_models/mosaic/clean_face_HD.pth --gpu_id 0

If you see the error Please check mosaic_position_model_path!, check if there is a model file named mosaic_position.pth at ./pretrained_models/mosaic/mosaic_position.pth

More Parameters

If you want to test other images or videos, please refer to this file.
[options_introduction.md]

Training With Your Own Dataset

If you want to train with your own dataset, please refer to training_with_your_own_dataset.md

Acknowledgements

This code borrows heavily from [pytorch-CycleGAN-and-pix2pix] [Pytorch-UNet] [pix2pixHD] [BiSeNet] [DFDNet] [GFRNet_pytorch_new].