DDMR / README.md
andreped's picture
Merge branch 'master' into huggingface
9089216 unverified
|
raw
history blame
5.04 kB
metadata
title: 'DDMR: Deep Deformation Map Registration of CT/MRIs'
colorFrom: indigo
colorTo: indigo
sdk: docker
app_port: 7860
emoji: 🧠
pinned: false
license: mit
app_file: demo/app.py
drawing

DDMR: Deep Deformation Map Registration

Learning deep abdominal CT registration through adaptive loss weighting and synthetic data generation

⚠️WARNING: Under construction

DDMR was developed by SINTEF Health Research. The corresponding manuscript describing the framework has been published in PLOS ONE and the manuscript is openly available here.

💻 Getting started

  1. Setup virtual environment:
virtualenv -ppython3 venv --clear
source venv/bin/activate
  1. Install requirements:
pip install git+https://github.com/jpdefrutos/DDMR

🤖 How to use

Use the following CLI command to register images

ddmr --fixed path/to/fixed_image.nii.gz --moving path/to/moving_image.nii.gz --outputdir path/to/output/dir -a <anatomy> --model <model> --gpu <gpu-number> --original-resolution

where:

  • anatomy: is the type of anatomy you want to register: B (brain) or L (liver)
  • model: is the model you want to use:
    • BL-N (baseline with NCC)
    • BL-NS (baseline with NCC and SSIM)
    • SG-ND (segmentation guided with NCC and DSC)
    • SG-NSD (segmentation guided with NCC, SSIM, and DSC)
    • UW-NSD (uncertainty weighted with NCC, SSIM, and DSC)
    • UW-NSDH (uncertainty weighted with NCC, SSIM, DSC, and HD).
  • gpu: is the GPU number you want to the model to run on, if you have multiple and want to use only one GPU
  • original-resolution: (flag) whether to upsample the registered image to the fixed image resolution (disabled if the flag is not present)

Use ddmr --help to see additional options like using precomputed segmentations to crop the images to the desired ROI, or debugging.

🤖 How to use

Use the following CLI command to register images

ddmr --fixed path/to/fixed_image.nii.gz --moving path/to/moving_image.nii.gz --outputdir path/to/output/dir -a <anatomy> --model <model> --gpu <gpu-number> --original-resolution

where:

  • anatomy: is the type of anatomy you want to register: B (brain) or L (liver)
  • model: is the model you want to use:
    • BL-N (baseline with NCC)
    • BL-NS (baseline with NCC and SSIM)
    • SG-ND (segmentation guided with NCC and DSC)
    • SG-NSD (segmentation guided with NCC, SSIM, and DSC)
    • UW-NSD (uncertainty weighted with NCC, SSIM, and DSC)
    • UW-NSDH (uncertainty weighted with NCC, SSIM, DSC, and HD).
  • gpu: is the GPU number you want to the model to run on, if you have multiple and want to use only one GPU
  • original-resolution: (flag) whether to upsample the registered image to the fixed image resolution (disabled if the flag is not present)

Use ddmr --help to see additional options like using precomputed segmentations to crop the images to the desired ROI, or debugging.

🏋️‍♂️ Training

Use the "MultiTrain" scripts to launch the trainings, providing the neccesary parameters. Those in the COMET folder accepts a .ini configuration file (see COMET/train_config_files for example configurations).

For instance:

python TrainingScripts/Train_3d.py

🔍 Evaluate

Use Evaluate_network to test the trained models. On the Brain folder, use "Evaluate_network__test_fixed.py" instead.

For instance:

python EvaluationScripts/evaluation.py

✨ How to cite

Please, consider citing our paper, if you find the work useful:

@article{perezdefrutos2022ddmr,
    title = {Learning deep abdominal CT registration through adaptive loss weighting and synthetic data generation},
    author = {Pérez de Frutos, Javier AND Pedersen, André AND Pelanis, Egidijus AND Bouget, David AND Survarachakan, Shanmugapriya AND Langø, Thomas AND Elle, Ole-Jakob AND Lindseth, Frank},
    journal = {PLOS ONE},
    publisher = {Public Library of Science},
    year = {2023},
    month = {02},
    volume = {18},
    doi = {10.1371/journal.pone.0282110},
    url = {https://doi.org/10.1371/journal.pone.0282110},
    pages = {1-14},
    number = {2}
}

⭐ Acknowledgements

This project is based on VoxelMorph library, and its related publication:

@article{balakrishnan2019voxelmorph,
    title={VoxelMorph: A Learning Framework for Deformable Medical Image Registration}, 
    author={Balakrishnan, Guha and Zhao, Amy and Sabuncu, Mert R. and Guttag, John and Dalca, Adrian V.},
    journal={IEEE Transactions on Medical Imaging}, 
    year={2019},
    volume={38},
    number={8},
    pages={1788-1800},
    doi={10.1109/TMI.2019.2897538}
}