Existing halftoning algorithms usually drop colors and fine details when dithering color images with binary dot patterns, which makes it extremely difficult to recover the original information. To dispense the recovery trouble in future, we propose a novel halftoning technique that dithers a color image into binary halftone with decent restorability to the original input. The key idea is to implicitly embed those previously dropped information into the binary dot patterns. So, the halftone pattern not only serves to reproduce the image tone, maintain the blue-noise randomness, but also represents the color information and fine details.
Requirements:
conda env create -f requirement.yaml
Training:
dataset/
per the exampled file organization.python train_warm.py --config scripts/invhalf_warm.json
If this stage skipped, please download the pretrained warm-up weight and place it in checkpoints/
, which is required at joint-train stage.
python train.py --config scripts/invhalf_full.json
Testing:
checkpoints/
.test_imgs/
.python inference.py --model checkpoints/model_best.pth.tar --data_dir ./test_imgs --save_dir ./result
python inference.py --model checkpoints/model_best.pth.tar --data_dir ./test_imgs --save_dir ./result --decoding
You are granted with the LICENSE for both academic and commercial usages.
If any part of our paper and code is helpful to your work, please generously cite with:
@inproceedings{xia-2021-inverthalf,
author = {Menghan Xia and Wenbo Hu and Xueting Liu and Tien-Tsin Wong},
title = {Deep Halftoning with Reversible Binary Pattern},
booktitle = {{IEEE/CVF} International Conference on Computer Vision (ICCV)},
year = {2021}
}