KupynOrest/DeblurGAN

Train your own dataset

hydwjy opened this issue · 2 comments

I want to train my dataset and what to do

If you have your own dataset, you need to prepare them as follow:
let's say you have a folder called "blurred_sharp" in the directory that you cloned "DeblurGAN-master".
you make two sub-folders and let's call them "blurred" and "sharp". In each of these folders, again you need to make two subfolders and call them "train" and "test". So now you have:

-DeblurGAN-master

- blurred_sharp

  - blurred
      - train
      - test
    
  - sharp
      - train
      - test

You need to put your sharp and blurred images in these folders accordingly. Make sure for example, when you put the blurred image, in the "..\blurred\train" folder, you put it's associate sharp image in "..\sharp\train" folder.

Now you need to create another folder, let's call it "combine" and put it in the following directory:
..\DeblurGAN-master\blurred_sharp\combine

via cmd or VScode (any platform that you are using) go to the "DeblurGAN-master" folder and "run combine_A_and_B.py". below is an example:

python datasets/combine_A_and_B.py --fold_A "C:\TEMP\DeblurGAN-master\blurred_sharp\blurred" --fold_B "C:\TEMP\DeblurGAN-master\blurred_sharp\sharp" --fold_AB "C:\TEMP\DeblurGAN-master\blurred_sharp\combine"

It will create two subfolders (train and test) in the "combine" folder that you created earlier. You will see the blurred and sharp images concatenated.


Now make sure you have visdom package correctly installed in your python.
Then open cmd and run:

python -m visdom.server

you will probably get the following message:


Checking for scripts.
It's Alive!
INFO:root:Application Started
INFO:root:Working directory: C:\Users\u109980.visdom
You can navigate to http://localhost:8097

Then copy/paste "http://localhost:8097" in your browser to be able to monitor the training progress.

now you can run the following code for training:

python train.py --dataroot "C:\TEMP\DeblurGAN-master\blurred_sharp\combine" --learn_residual --resize_or_crop crop --fineSize 256


When the training is completed after 300 epochs, put your test images in a folder (let's say "..\DeblurGAN-master\TEST" ).
Now you can test it with the following command.

python test.py --dataroot "C:\TEMP_TEST\DeblurGAN-master\TEST" --model test --dataset_mode single --learn_residual

remember if your device cannot handle parallel processing, in the "test.py" change the number of threads to zero as follow:
opt.nThreads = 0

We can't get the result of deblur type after testing a blurry image. What should we do? do we need to combine a blurry and sharp image like in the process of training? Also is it possible to select particular region only of the image to deblur? something like comparative between an entire image and the selected part region of the image, thank you!

below our own test image that showed in the results after testing it.

image

image
image