Home

Awesome

Diffusion Reconstruction of Ultrasound Images with Informative Uncertainty

The structure of the repository is:

├── <DRUS-v2>  
│   ├── <configs> 
│   ├── <exp>  
│   │   ├──<image_samples>  
│   │   ├──<logs>             # the fined-tuned diffusion models, can be downloaded from:
│   │   │   ├──<vitro>        # https://uncloud.univ-nantes.fr/index.php/s/BRbDYsq2CNjJgoR
│   │   │   ├──<vivo>         # https://uncloud.univ-nantes.fr/index.php/s/FJAtmeN6QXaj6yD
│   │   │   ├──<CAROTIDcross> # https://uncloud.univ-nantes.fr/index.php/s/e53P2LboafkzimH
│   │   ├──<slurms>           # the job example/template if use HPC
│   ├── <functions>
│   ├── <guided_diffusion>
│   ├── <runners>  
│   ├── main.py
│   │ 
├── <Observation_SVDresults> 
│   ├── <Observation> 
│   │   ├──<01_simulation>    # the simulated fetus measurements (for discussion)
│   │   ├──<02_picmus>        # PICMUS measurements (for experiments)
│   ├── <SVD>                 # can be downloaded from: 
│   │   ├──<01_simulation>    # https://drive.google.com/drive/folders/1mCMaL6OR9mLvoRaQxmeWGLnUADYU32KF?usp=sharing
│   │   ├──<02_picmus>        # https://drive.google.com/drive/folders/10KwoH5G-s8Gk_aCj7WxTZ_L3596u44dI?usp=sharing
│   ├──compute_discussionSimu_Hty.m  # the script for computing the fetus measurements
│   ├──compute_mainDRUS_svdBH.m      # the script for computing the PICMUS DRUS SVD(BH)
│   ├──compute_mainDRUS_By.m         # the script for computing the PICMUS DRUS measurements
│   ├──compute_mainDeno_By.m         # the script for computing the PICMUS Deno measurements
├── environment.yml 

Fine-tuning

The ultrasound datasets and the code for fine-tuning can be found in this repository.

Results in the paper

All the results and the scripts for showing the results is here.

Reproduction steps

  1. compute the measurements and the SVD results of the inverse problem model matrix using the scripts in <Observation_SVDresults>
  2. edit DRUS-v2/runners/diffusion.py for a specific task
  3. do restoration on HPC using slurm or as follows:
python main.py --ni --config {CONFIG.yml} --doc {MODELFOLDER} --ckpt {CKPT} --timesteps {STEPS} --deg {DEG} --image_folder {SAVEDIR} --matlab_path {MATLABPATH}

where

For example

python main.py --ni --config imagenet_256_3c.yml --doc vitro  --ckpt model006000.pt   --timesteps 50 --deg DRUS --image_folder vitroDRUS --matlab_path /home/.../Observation_SVDresults/

References and Acknowledgements

@misc{zhang2023diffusion_v2,
    title={Diffusion Reconstruction of Ultrasound Images with Informative Uncertainty}, 
    author={Yuxin Zhang and Clément Huneau and Jérôme Idier and Diana Mateus},
    year={2023},
    eprint={2310.20618},
    archivePrefix={arXiv},
}
@misc{zhang2023diffusion_v1,
    title={Ultrasound Image Reconstruction with Denoising Diffusion Restoration Models}, 
    author={Yuxin Zhang and Clément Huneau and Jérôme Idier and Diana Mateus},
    year={2023},
    eprint={2307.15990},
    archivePrefix={arXiv},
}
@inproceedings{kawar2022denoising,
    title={Denoising Diffusion Restoration Models},
    author={Bahjat Kawar and Michael Elad and Stefano Ermon and Jiaming Song},
    booktitle={Advances in Neural Information Processing Systems},
    year={2022}
}

This implementation is based on / inspired by: