Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Grayscale dataset #38

Open
Elwarfalli opened this issue Dec 28, 2022 · 8 comments
Open

Grayscale dataset #38

Elwarfalli opened this issue Dec 28, 2022 · 8 comments

Comments

@Elwarfalli
Copy link

I'd like to ask about your great work.

Is it possible to run it on a grayscale dataset? If so what should I change? 
I changed a number of input channels but it is not working for me.

network structuresnetwork_g: 

type: HAT 
upscale: 3 
in_chans: 1

I am looking forward to hearing back from you.
Thank you,

@chxy95
Copy link
Member

chxy95 commented Dec 29, 2022

@Elwarfalli You may directly input the gray images without any change and you would get "gray images" with three channels. Then you may simply convert the three-channel images to one-channel ones.

@Elwarfalli
Copy link
Author

When I applied that where the input is grayscale and I tested my pre-trained model the results were saved in 3 channels of grayscale. I am curious about PSNR; has PSNR computed for one grayscale channel? or how? and how can I change the code to save the results on a one-channel grayscale?

Thank you for your fast reply,

@chxy95
Copy link
Member

chxy95 commented Dec 29, 2022

@Elwarfalli PSNR is comupted on Y channel in the default settings. If you want to compute PSNR for comparing models on gray images, the best way is to retrain a model for gray images by setting the channel as 1 for complete fairness. If you just want to see the results of pretrained model on gray images, the most convenient way is to wirte a post-processing script to convert the three-channel images into gray channel like using Opencv BGR2Gray, and then compute PSNR on the one-channel images.

@Elwarfalli
Copy link
Author

Thank you,

@Elwarfalli Elwarfalli reopened this Jan 1, 2023
@Elwarfalli
Copy link
Author

When I set the parameter as follows:

network structures

network_g:
type: HAT
upscale: 3
in_chans: 1
img_size: 64
window_size: 16
compress_ratio: 3
squeeze_factor: 30
conv_scale: 0.01
overlap_ratio: 0.5
img_range: 1.
depths: [6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6]
embed_dim: 180
num_heads: [6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6]
mlp_ratio: 2
upsampler: 'pixelshuffle'
resi_connection: '1conv'

I got an error:

output = module(*input, **kwargs)

File "C:\Users\Student.conda\envs\hat\lib\site-packages\torch\nn\modules\module.py", line 1194, in _call_impl
return forward_call(*input, **kwargs)
File "e:\hamed\pycode\benchmarks\hat-master\hat\archs\hat_arch.py", line 980, in forward
x = self.conv_first(x)
File "C:\Users\Student.conda\envs\hat\lib\site-packages\torch\nn\modules\module.py", line 1194, in _call_impl
return forward_call(*input, **kwargs)
File "C:\Users\Student.conda\envs\hat\lib\site-packages\torch\nn\modules\conv.py", line 463, in forward
return self._conv_forward(input, self.weight, self.bias)
File "C:\Users\Student.conda\envs\hat\lib\site-packages\torch\nn\modules\conv.py", line 459, in _conv_forward
return F.conv2d(input, weight, bias, self.stride,
RuntimeError: Given groups=1, weight of size [180, 1, 3, 3], expected input[1, 3, 16, 16] to have 1 channels, but got 3 channels instead

Any help, please?

Thank you,

@chxy95
Copy link
Member

chxy95 commented Jan 2, 2023

@Elwarfalli You need modify the data loader for 1-channel images I/O. Create a custom data loader referring to paired_image_dataset.py.

@Elwarfalli
Copy link
Author

Based on my understating, BasicSR paired_image_dataset.py papers the dataset. I have my own grayscale dataset training/validation.

@chxy95
Copy link
Member

chxy95 commented Jan 2, 2023

@Elwarfalli I mean you need to create your own data loader to fit your dataset. Read this file just as the reference.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants