fpramunno / InDI-implementation

Unofficial Pytorch implementation of the Inversion by Direct Iteration: An Alternative to Denoising Diffusion for Image Restoration (InDI)) by Delbracio et al 2023
MIT License
12 stars 2 forks source link

How do the results compare to other methods, such as U-Net? #3

Closed chagelo closed 3 months ago

chagelo commented 3 months ago

I run this code, but very slowly. One epoch cost almost one hour, batch_size 4 is too large on 3090, 24GB.

So I want to know the result is better or worse compare to other method, such as Unet. And my task is medical image denoising.

fpramunno commented 3 months ago

Hi, so for comparison you should read the paper and you can see https://arxiv.org/abs/2303.11435. Short answer it should be better than a simple Unet. For the speed, it depends by a lot of factors: image size, training dataset size, ... . In addition, an hint is to reduce the image_size parameters when you define the model, it is not strictly related to the image size of your image, but it controls the channels of the convolutional layers.

chagelo commented 3 months ago

Thank you! After modifying the model's image_size parameter, it works fine. And I' am doing the supervised denoising using ddpm, but get worse result than Unet.🥲

Francesco Pio Ramunno @.***> 于2024年7月22日周一 16:28写道:

Hi, so for comparison you should read the paper and you can see https://arxiv.org/abs/2303.11435. Short answer it should be better than a simple Unet. For the speed, it depends by a lot of factors: image size, training dataset size, ... . In addition, an hint is to reduce the image_size parameters when you define the model, it is not strictly related to the image size of your image, but it controls the channels of the convolutional layers.

— Reply to this email directly, view it on GitHub https://github.com/fpramunno/InDI-implementation/issues/3#issuecomment-2242382801, or unsubscribe https://github.com/notifications/unsubscribe-auth/AL4OCSJL3ZGTXXZ6RLOYC53ZNS7CXAVCNFSM6AAAAABLHZQIXGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENBSGM4DEOBQGE . You are receiving this because you authored the thread.Message ID: @.***>

fpramunno commented 3 months ago

Which gets worse results, ddpm or indi?

chagelo commented 3 months ago

DDPM gets worse results, about 0.5 psnr less than Unet

Francesco Pio Ramunno @.***> 于2024年7月22日周一 16:55写道:

Which gets worse results, ddpm or indi?

— Reply to this email directly, view it on GitHub https://github.com/fpramunno/InDI-implementation/issues/3#issuecomment-2242436209, or unsubscribe https://github.com/notifications/unsubscribe-auth/AL4OCSJRHOUSPL4MECMEPJTZNTCJVAVCNFSM6AAAAABLHZQIXGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENBSGQZTMMRQHE . You are receiving this because you authored the thread.Message ID: @.***>

fpramunno commented 3 months ago

Also here it can depends by multiple factors. Are you aware of the Perception–Distortion trade-off? PSNR and others pixel level metrics like SSIM tends to prefer blurry output (it is also stated in the Palette paper https://arxiv.org/abs/2111.05826), so use perceptual metrics like lpips or similar. In addition the model size should be conisdered as an hyperparameter lowering this parameter improves the speed but with a cost of output quality. A fair comparison would be to use the exact same Unet for the basic approac and the DDPM/INDI approach.

chagelo commented 3 months ago

Thank you for the suggestions, I'll calculate the perceptual metrics. However, my dataset is medical images, I'm not sure if it's suitable to use perceptual metric in medical image low-level vision tasks.

Francesco Pio Ramunno @.***> 于2024年7月22日周一 17:07写道:

Also here it can depends by multiple factors. Are you aware of the Perception–Distortion trade-off? PSNR and others pixel level metrics like SSIM tends to prefer blurry output (it is also stated in the Palette paper https://arxiv.org/abs/2111.05826), so use perceptual metrics like lpips or similar. In addition the model size should be conisdered as an hyperparameter lowering this parameter improves the speed but with a cost of output quality. A fair comparison would be to use the exact same Unet for the basic approac and the DDPM/INDI approach.

— Reply to this email directly, view it on GitHub https://github.com/fpramunno/InDI-implementation/issues/3#issuecomment-2242460819, or unsubscribe https://github.com/notifications/unsubscribe-auth/AL4OCSJUSLGKCOPH4EUO2T3ZNTDU7AVCNFSM6AAAAABLHZQIXGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENBSGQ3DAOBRHE . You are receiving this because you authored the thread.Message ID: @.***>

fpramunno commented 3 months ago

That's really dependent on your data, anyway it is always useful to have several metrics of different nature!

chagelo commented 3 months ago

OK. And very grateful.

Francesco Pio Ramunno @.***> 于2024年7月22日周一 17:56写道:

That's really dependent on your data, anyway it is always useful to have several metrics of different nature!

— Reply to this email directly, view it on GitHub https://github.com/fpramunno/InDI-implementation/issues/3#issuecomment-2242560235, or unsubscribe https://github.com/notifications/unsubscribe-auth/AL4OCSJJKN27OR2RHENF7C3ZNTJNZAVCNFSM6AAAAABLHZQIXGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENBSGU3DAMRTGU . You are receiving this because you authored the thread.Message ID: @.***>

fpramunno commented 3 months ago

No problem at all, for any question just ask! :)