Skip to content

dali92002/DE-GAN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DE-GAN: A Conditional Generative Adversarial Network for Document Enhancement

Description

This is an implementation for the paper DE-GAN: A Conditional Generative Adversarial Network for Document Enhancement
DE-GAN is a conditional generative adversarial network designed to enhance the document quality before the recognition process. It could be used for document cleaning, binarization, deblurring and watermark removal. The weights are available to test the enhancement.

License

This work is only allowed for academic research use. For commercial use, please contact the author.

Download

  • Clone this repo:
git clone https://github.com/dali92002/DE-GAN
cd DE-GAN

Requirements

  • install the requirements.txt

Using DE-GAN

Document binarization

  • To binarize an image use the followng command:
python enhance.py binarize ./image_to_binarize ./directory_to_binarized_image

image:

alt text

binarized image:

alt text

Document deblurring

  • To deblur an image use the followng command:
python enhance.py deblur ./image_to_deblur ./directory_to_deblurred_image

blurred image:

alt text

enhanced image:

alt text

Watermark removal

  • To remove a watermark from an image use the followng command:
python enhance.py unwatermark ./image_to_unwatermark ./directory_to_unwatermarked_image

watermarked image:

alt text

clean image:

alt text

Document cleaning

  • Will be added: degraded image:

    alt text

    cleaned image:

    alt text

Training with your own data

  • To train with your own data, place your degraded images in the folder "images/A/" and the corresponding ground-truth in the folder "images/B/". It is necessary that each degraded image and its corresponding gt are having the same name (could have different extentions), also, the number images should be the same in both folders.
  • Command to train:
python train.py 
  • Specifying the batch size and the number of epochs could be done inside the code.

Citation

  • If this work was useful for you, please cite it as:
@ARTICLE{Souibgui2020,
  author={Mohamed Ali Souibgui  and Yousri Kessentini},
  journal={IEEE Transactions on Pattern Analysis and Machine Intelligence}, 
  title={DE-GAN: A Conditional Generative Adversarial Network for Document Enhancement}, 
  year={2020},
  doi={10.1109/TPAMI.2020.3022406}}