I’m not a native speaker. There may be some grammar or vocabulary misuse. Sorry about that.
I’m doing a master’s degree and researching on MR human brain image super-resolution with DL model. After surveying SR papers, most of them obtain LR images by down-sampling(bicubic or k-space degrade). So I design a supervised 2D CNN-based model(like EDSR) and try to train my model with simulated MR images pair.
Dataset parameters are shown below.
T1 images,matrix size:HR(352,448,448) LR(352,224,224), resolution(HR):0.5x0.5x0.5, n=35.
31 cases are used for training and validation(9:1) and 4 cases are used for testing.
Besides satisfying result, I also have some questions.
1.Because intensity of MR images is not like gray scale(0~255), its maximum is uncertain. I’m confused about normalization. While training, is it better to normalize each 2D image to (0,1) with their own min and max or with min and max of whole volume? Can I train with the former and test with the latter?
Moreover, my adviser asks me to reconstruct real LR image into its corresponding HR image. So I acquire several real LR & HR image pairs and reconstruct the LR images with model trained with simulated dataset. The result is not satisfying(shown below). It seems that my model learns features that reconstruct simulated LR images well but cause artifacts in real SR images.
SR real image by model trained with simulated dataset
2.Is it really possible to train a model with simulated images pair and reconstruct real MR images? If so, what do I possibly do wrong?
Then I wonder if it reconstructs real LR images better with model trained with real LR&HR image pairs. So I acquire 16 cases with the same parameters of the HR images just mentioned to train my model.
14 are used for training and validation. 2 are used for testing.
In order to coregister LR and HR better, I skull-strip these cases with FreeSurfer before applying them to SPM coregister function. However, I get very blurry result shown below.
SR real image by model trained with real image pair dataset
3.If the answer of Q.2 is negative, it means collecting real dataset is the correct direction. What should i do to improve my model or data? Just collect more data? or there’re some tips that I need to pay attention to?
4.I implement my model with Pytorch and Google Colab. I load data into memory and set pin_memory=true, n_worker=2 to accelerate training process. However, it limits my dataset size because Colab only provides 12G memory. Are there other methods to reduce memory cost or accelerating method?
Thanks for reading all my questions. If there’s any thing I didn’t mention that help you to solve my problems, tell me and I’ll update ASAP.