Repository files navigation

IDIR

Code for the MIDL 2022 paper Implicit Neural Representations for Deformable Image Registration. In this work, we register medical images using differentiable deformation vector fields represented in multilayer perceptrons. We show how this allows us to include various regularization terms computed using analytical gradients in PyTorch.

Method overview!

Running the code

This code replicates the experiments that we ran on the DIR-LAB data set. You will need PyTorch to run the code. By default, the code expects a CUDA-enabled GPU. To register inspiration and expiration images for a patient in this set, just run run.py. You can turn the different regularizers on and off by modifying the script, and choose to use either a SIREN or MLP (faster) network. More advanced settings can be changed in models\models.py. As output, you will get the mean and standard deviation of the target registration (TRE) error for the 300 anatomical landmarks in Euclidean distance as well as per axis.

Data

We have used data from the 4D CT DIR-LAB set in our experiments. You can obtain this data from the DIR-LAB website. Note that our script expects filenames to have a standardized naming convention: we assume that for each patient there is an image case{}_T00_s.img and an image case{}_T50_s.img for inspiration and expiration, respectively. Moreover, we use lung masks that we obtain using the excellent scripts provided by Johannes Hofmanninger on his GitHub page. You can of course also use different lung masks or different file formats. As long as you adhere to the file structure below, things should run smoothly. You should set data_dir in run.py.

📦data_dir
┣ 📂Case1Pack
┃ ┣ 📂ExtremePhases
┃ ┃ ┣ 📜Case1_300_T00_xyz.txt
┃ ┃ ┗ 📜Case1_300_T50_xyz.txt
┃ ┣ 📂Images
┃ ┃ ┣ 📜case1_T00_s.img
┃ ┃ ┗ 📜case1_T50_s.img
┃ ┗ 📂Masks
┃ ┃ ┣ 📜case1_T00_s.mhd
┃ ┃ ┗ 📜case1_T00_s.raw
┣ 📂Case2Pack
┃ ┣..
┃..
┣ 📂Case10Pack
┃ ┣ 📂extremePhases
┃ ┃ ┣ 📜Case10_300_T00_xyz.txt
┃ ┃ ┗ 📜Case10_300_T50_xyz.txt
┃ ┣ 📂Images
┃ ┃ ┣ 📜case10_T00_s.img
┃ ┃ ┗ 📜case10_T50_s.img
┃ ┗ 📂Masks
┃ ┃ ┣ 📜case10_T00_s.mhd
┃ ┃ ┗ 📜case10_T00_s.raw

Reference

If you use this code, please cite our MIDL 2022 paper

@inproceedings{wolterink2021implicit,
title={Implicit Neural Representations for Deformable Image Registration},
author={Wolterink, Jelmer M and Zwienenberg, Jesse C and Brune, Christoph},
booktitle={Medical Imaging with Deep Learning 2022}
year={2022}
}

About

Code for the MIDL 2022 paper Implicit Neural Representations for Deformable Image Registration

Resources

Stars

54 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

IDIR

Code for the MIDL 2022 paper Implicit Neural Representations for Deformable Image Registration. In this work, we register medical images using differentiable deformation vector fields represented in multilayer perceptrons. We show how this allows us to include various regularization terms computed using analytical gradients in PyTorch.

Method overview!

Running the code

This code replicates the experiments that we ran on the DIR-LAB data set. You will need PyTorch to run the code. By default, the code expects a CUDA-enabled GPU. To register inspiration and expiration images for a patient in this set, just run run.py. You can turn the different regularizers on and off by modifying the script, and choose to use either a SIREN or MLP (faster) network. More advanced settings can be changed in models\models.py. As output, you will get the mean and standard deviation of the target registration (TRE) error for the 300 anatomical landmarks in Euclidean distance as well as per axis.

Data

We have used data from the 4D CT DIR-LAB set in our experiments. You can obtain this data from the DIR-LAB website. Note that our script expects filenames to have a standardized naming convention: we assume that for each patient there is an image case{}_T00_s.img and an image case{}_T50_s.img for inspiration and expiration, respectively. Moreover, we use lung masks that we obtain using the excellent scripts provided by Johannes Hofmanninger on his GitHub page. You can of course also use different lung masks or different file formats. As long as you adhere to the file structure below, things should run smoothly. You should set data_dir in run.py.

📦data_dir
┣ 📂Case1Pack
┃ ┣ 📂ExtremePhases
┃ ┃ ┣ 📜Case1_300_T00_xyz.txt
┃ ┃ ┗ 📜Case1_300_T50_xyz.txt
┃ ┣ 📂Images
┃ ┃ ┣ 📜case1_T00_s.img
┃ ┃ ┗ 📜case1_T50_s.img
┃ ┗ 📂Masks
┃ ┃ ┣ 📜case1_T00_s.mhd
┃ ┃ ┗ 📜case1_T00_s.raw
┣ 📂Case2Pack
┃ ┣..
┃..
┣ 📂Case10Pack
┃ ┣ 📂extremePhases
┃ ┃ ┣ 📜Case10_300_T00_xyz.txt
┃ ┃ ┗ 📜Case10_300_T50_xyz.txt
┃ ┣ 📂Images
┃ ┃ ┣ 📜case10_T00_s.img
┃ ┃ ┗ 📜case10_T50_s.img
┃ ┗ 📂Masks
┃ ┃ ┣ 📜case10_T00_s.mhd
┃ ┃ ┗ 📜case10_T00_s.raw

Reference

If you use this code, please cite our MIDL 2022 paper

@inproceedings{wolterink2021implicit,
title={Implicit Neural Representations for Deformable Image Registration},
author={Wolterink, Jelmer M and Zwienenberg, Jesse C and Brune, Christoph},
booktitle={Medical Imaging with Deep Learning 2022}
year={2022}
}

About

Code for the MIDL 2022 paper Implicit Neural Representations for Deformable Image Registration

Resources

Stars

54 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

IDIR

Code for the MIDL 2022 paper Implicit Neural Representations for Deformable Image Registration. In this work, we register medical images using differentiable deformation vector fields represented in multilayer perceptrons. We show how this allows us to include various regularization terms computed using analytical gradients in PyTorch.

Method overview!

Running the code

This code replicates the experiments that we ran on the DIR-LAB data set. You will need PyTorch to run the code. By default, the code expects a CUDA-enabled GPU. To register inspiration and expiration images for a patient in this set, just run run.py. You can turn the different regularizers on and off by modifying the script, and choose to use either a SIREN or MLP (faster) network. More advanced settings can be changed in models\models.py. As output, you will get the mean and standard deviation of the target registration (TRE) error for the 300 anatomical landmarks in Euclidean distance as well as per axis.

Data

We have used data from the 4D CT DIR-LAB set in our experiments. You can obtain this data from the DIR-LAB website. Note that our script expects filenames to have a standardized naming convention: we assume that for each patient there is an image case{}_T00_s.img and an image case{}_T50_s.img for inspiration and expiration, respectively. Moreover, we use lung masks that we obtain using the excellent scripts provided by Johannes Hofmanninger on his GitHub page. You can of course also use different lung masks or different file formats. As long as you adhere to the file structure below, things should run smoothly. You should set data_dir in run.py.

📦data_dir
┣ 📂Case1Pack
┃ ┣ 📂ExtremePhases
┃ ┃ ┣ 📜Case1_300_T00_xyz.txt
┃ ┃ ┗ 📜Case1_300_T50_xyz.txt
┃ ┣ 📂Images
┃ ┃ ┣ 📜case1_T00_s.img
┃ ┃ ┗ 📜case1_T50_s.img
┃ ┗ 📂Masks
┃ ┃ ┣ 📜case1_T00_s.mhd
┃ ┃ ┗ 📜case1_T00_s.raw
┣ 📂Case2Pack
┃ ┣..
┃..
┣ 📂Case10Pack
┃ ┣ 📂extremePhases
┃ ┃ ┣ 📜Case10_300_T00_xyz.txt
┃ ┃ ┗ 📜Case10_300_T50_xyz.txt
┃ ┣ 📂Images
┃ ┃ ┣ 📜case10_T00_s.img
┃ ┃ ┗ 📜case10_T50_s.img
┃ ┗ 📂Masks
┃ ┃ ┣ 📜case10_T00_s.mhd
┃ ┃ ┗ 📜case10_T00_s.raw

Reference

If you use this code, please cite our MIDL 2022 paper

@inproceedings{wolterink2021implicit,
title={Implicit Neural Representations for Deformable Image Registration},
author={Wolterink, Jelmer M and Zwienenberg, Jesse C and Brune, Christoph},
booktitle={Medical Imaging with Deep Learning 2022}
year={2022}
}

About

Code for the MIDL 2022 paper Implicit Neural Representations for Deformable Image Registration

Resources

Stars

54 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

IDIR

Code for the MIDL 2022 paper Implicit Neural Representations for Deformable Image Registration. In this work, we register medical images using differentiable deformation vector fields represented in multilayer perceptrons. We show how this allows us to include various regularization terms computed using analytical gradients in PyTorch.

Method overview!

Running the code

This code replicates the experiments that we ran on the DIR-LAB data set. You will need PyTorch to run the code. By default, the code expects a CUDA-enabled GPU. To register inspiration and expiration images for a patient in this set, just run run.py. You can turn the different regularizers on and off by modifying the script, and choose to use either a SIREN or MLP (faster) network. More advanced settings can be changed in models\models.py. As output, you will get the mean and standard deviation of the target registration (TRE) error for the 300 anatomical landmarks in Euclidean distance as well as per axis.

Data

We have used data from the 4D CT DIR-LAB set in our experiments. You can obtain this data from the DIR-LAB website. Note that our script expects filenames to have a standardized naming convention: we assume that for each patient there is an image case{}_T00_s.img and an image case{}_T50_s.img for inspiration and expiration, respectively. Moreover, we use lung masks that we obtain using the excellent scripts provided by Johannes Hofmanninger on his GitHub page. You can of course also use different lung masks or different file formats. As long as you adhere to the file structure below, things should run smoothly. You should set data_dir in run.py.

📦data_dir
┣ 📂Case1Pack
┃ ┣ 📂ExtremePhases
┃ ┃ ┣ 📜Case1_300_T00_xyz.txt
┃ ┃ ┗ 📜Case1_300_T50_xyz.txt
┃ ┣ 📂Images
┃ ┃ ┣ 📜case1_T00_s.img
┃ ┃ ┗ 📜case1_T50_s.img
┃ ┗ 📂Masks
┃ ┃ ┣ 📜case1_T00_s.mhd
┃ ┃ ┗ 📜case1_T00_s.raw
┣ 📂Case2Pack
┃ ┣..
┃..
┣ 📂Case10Pack
┃ ┣ 📂extremePhases
┃ ┃ ┣ 📜Case10_300_T00_xyz.txt
┃ ┃ ┗ 📜Case10_300_T50_xyz.txt
┃ ┣ 📂Images
┃ ┃ ┣ 📜case10_T00_s.img
┃ ┃ ┗ 📜case10_T50_s.img
┃ ┗ 📂Masks
┃ ┃ ┣ 📜case10_T00_s.mhd
┃ ┃ ┗ 📜case10_T00_s.raw

Reference

If you use this code, please cite our MIDL 2022 paper

@inproceedings{wolterink2021implicit,
title={Implicit Neural Representations for Deformable Image Registration},
author={Wolterink, Jelmer M and Zwienenberg, Jesse C and Brune, Christoph},
booktitle={Medical Imaging with Deep Learning 2022}
year={2022}
}

About

Code for the MIDL 2022 paper Implicit Neural Representations for Deformable Image Registration

Resources

Stars

54 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

IDIR

Code for the MIDL 2022 paper Implicit Neural Representations for Deformable Image Registration. In this work, we register medical images using differentiable deformation vector fields represented in multilayer perceptrons. We show how this allows us to include various regularization terms computed using analytical gradients in PyTorch.

Method overview!

Running the code

This code replicates the experiments that we ran on the DIR-LAB data set. You will need PyTorch to run the code. By default, the code expects a CUDA-enabled GPU. To register inspiration and expiration images for a patient in this set, just run run.py. You can turn the different regularizers on and off by modifying the script, and choose to use either a SIREN or MLP (faster) network. More advanced settings can be changed in models\models.py. As output, you will get the mean and standard deviation of the target registration (TRE) error for the 300 anatomical landmarks in Euclidean distance as well as per axis.

Data

We have used data from the 4D CT DIR-LAB set in our experiments. You can obtain this data from the DIR-LAB website. Note that our script expects filenames to have a standardized naming convention: we assume that for each patient there is an image case{}_T00_s.img and an image case{}_T50_s.img for inspiration and expiration, respectively. Moreover, we use lung masks that we obtain using the excellent scripts provided by Johannes Hofmanninger on his GitHub page. You can of course also use different lung masks or different file formats. As long as you adhere to the file structure below, things should run smoothly. You should set data_dir in run.py.

📦data_dir
┣ 📂Case1Pack
┃ ┣ 📂ExtremePhases
┃ ┃ ┣ 📜Case1_300_T00_xyz.txt
┃ ┃ ┗ 📜Case1_300_T50_xyz.txt
┃ ┣ 📂Images
┃ ┃ ┣ 📜case1_T00_s.img
┃ ┃ ┗ 📜case1_T50_s.img
┃ ┗ 📂Masks
┃ ┃ ┣ 📜case1_T00_s.mhd
┃ ┃ ┗ 📜case1_T00_s.raw
┣ 📂Case2Pack
┃ ┣..
┃..
┣ 📂Case10Pack
┃ ┣ 📂extremePhases
┃ ┃ ┣ 📜Case10_300_T00_xyz.txt
┃ ┃ ┗ 📜Case10_300_T50_xyz.txt
┃ ┣ 📂Images
┃ ┃ ┣ 📜case10_T00_s.img
┃ ┃ ┗ 📜case10_T50_s.img
┃ ┗ 📂Masks
┃ ┃ ┣ 📜case10_T00_s.mhd
┃ ┃ ┗ 📜case10_T00_s.raw

Reference

If you use this code, please cite our MIDL 2022 paper

@inproceedings{wolterink2021implicit,
title={Implicit Neural Representations for Deformable Image Registration},
author={Wolterink, Jelmer M and Zwienenberg, Jesse C and Brune, Christoph},
booktitle={Medical Imaging with Deep Learning 2022}
year={2022}
}

About

Code for the MIDL 2022 paper Implicit Neural Representations for Deformable Image Registration

Resources

Stars

54 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

IDIR

Code for the MIDL 2022 paper Implicit Neural Representations for Deformable Image Registration. In this work, we register medical images using differentiable deformation vector fields represented in multilayer perceptrons. We show how this allows us to include various regularization terms computed using analytical gradients in PyTorch.

Method overview!

Running the code

This code replicates the experiments that we ran on the DIR-LAB data set. You will need PyTorch to run the code. By default, the code expects a CUDA-enabled GPU. To register inspiration and expiration images for a patient in this set, just run run.py. You can turn the different regularizers on and off by modifying the script, and choose to use either a SIREN or MLP (faster) network. More advanced settings can be changed in models\models.py. As output, you will get the mean and standard deviation of the target registration (TRE) error for the 300 anatomical landmarks in Euclidean distance as well as per axis.

Data

We have used data from the 4D CT DIR-LAB set in our experiments. You can obtain this data from the DIR-LAB website. Note that our script expects filenames to have a standardized naming convention: we assume that for each patient there is an image case{}_T00_s.img and an image case{}_T50_s.img for inspiration and expiration, respectively. Moreover, we use lung masks that we obtain using the excellent scripts provided by Johannes Hofmanninger on his GitHub page. You can of course also use different lung masks or different file formats. As long as you adhere to the file structure below, things should run smoothly. You should set data_dir in run.py.

📦data_dir
┣ 📂Case1Pack
┃ ┣ 📂ExtremePhases
┃ ┃ ┣ 📜Case1_300_T00_xyz.txt
┃ ┃ ┗ 📜Case1_300_T50_xyz.txt
┃ ┣ 📂Images
┃ ┃ ┣ 📜case1_T00_s.img
┃ ┃ ┗ 📜case1_T50_s.img
┃ ┗ 📂Masks
┃ ┃ ┣ 📜case1_T00_s.mhd
┃ ┃ ┗ 📜case1_T00_s.raw
┣ 📂Case2Pack
┃ ┣..
┃..
┣ 📂Case10Pack
┃ ┣ 📂extremePhases
┃ ┃ ┣ 📜Case10_300_T00_xyz.txt
┃ ┃ ┗ 📜Case10_300_T50_xyz.txt
┃ ┣ 📂Images
┃ ┃ ┣ 📜case10_T00_s.img
┃ ┃ ┗ 📜case10_T50_s.img
┃ ┗ 📂Masks
┃ ┃ ┣ 📜case10_T00_s.mhd
┃ ┃ ┗ 📜case10_T00_s.raw

Reference

If you use this code, please cite our MIDL 2022 paper

@inproceedings{wolterink2021implicit,
title={Implicit Neural Representations for Deformable Image Registration},
author={Wolterink, Jelmer M and Zwienenberg, Jesse C and Brune, Christoph},
booktitle={Medical Imaging with Deep Learning 2022}
year={2022}
}

About

Code for the MIDL 2022 paper Implicit Neural Representations for Deformable Image Registration

Resources

Stars

54 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

IDIR

Code for the MIDL 2022 paper Implicit Neural Representations for Deformable Image Registration. In this work, we register medical images using differentiable deformation vector fields represented in multilayer perceptrons. We show how this allows us to include various regularization terms computed using analytical gradients in PyTorch.

Method overview!

Running the code

This code replicates the experiments that we ran on the DIR-LAB data set. You will need PyTorch to run the code. By default, the code expects a CUDA-enabled GPU. To register inspiration and expiration images for a patient in this set, just run run.py. You can turn the different regularizers on and off by modifying the script, and choose to use either a SIREN or MLP (faster) network. More advanced settings can be changed in models\models.py. As output, you will get the mean and standard deviation of the target registration (TRE) error for the 300 anatomical landmarks in Euclidean distance as well as per axis.

Data

We have used data from the 4D CT DIR-LAB set in our experiments. You can obtain this data from the DIR-LAB website. Note that our script expects filenames to have a standardized naming convention: we assume that for each patient there is an image case{}_T00_s.img and an image case{}_T50_s.img for inspiration and expiration, respectively. Moreover, we use lung masks that we obtain using the excellent scripts provided by Johannes Hofmanninger on his GitHub page. You can of course also use different lung masks or different file formats. As long as you adhere to the file structure below, things should run smoothly. You should set data_dir in run.py.

📦data_dir
┣ 📂Case1Pack
┃ ┣ 📂ExtremePhases
┃ ┃ ┣ 📜Case1_300_T00_xyz.txt
┃ ┃ ┗ 📜Case1_300_T50_xyz.txt
┃ ┣ 📂Images
┃ ┃ ┣ 📜case1_T00_s.img
┃ ┃ ┗ 📜case1_T50_s.img
┃ ┗ 📂Masks
┃ ┃ ┣ 📜case1_T00_s.mhd
┃ ┃ ┗ 📜case1_T00_s.raw
┣ 📂Case2Pack
┃ ┣..
┃..
┣ 📂Case10Pack
┃ ┣ 📂extremePhases
┃ ┃ ┣ 📜Case10_300_T00_xyz.txt
┃ ┃ ┗ 📜Case10_300_T50_xyz.txt
┃ ┣ 📂Images
┃ ┃ ┣ 📜case10_T00_s.img
┃ ┃ ┗ 📜case10_T50_s.img
┃ ┗ 📂Masks
┃ ┃ ┣ 📜case10_T00_s.mhd
┃ ┃ ┗ 📜case10_T00_s.raw

Reference

If you use this code, please cite our MIDL 2022 paper

@inproceedings{wolterink2021implicit,
title={Implicit Neural Representations for Deformable Image Registration},
author={Wolterink, Jelmer M and Zwienenberg, Jesse C and Brune, Christoph},
booktitle={Medical Imaging with Deep Learning 2022}
year={2022}
}

About

Code for the MIDL 2022 paper Implicit Neural Representations for Deformable Image Registration

Resources

Stars

54 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

IDIR

Code for the MIDL 2022 paper Implicit Neural Representations for Deformable Image Registration. In this work, we register medical images using differentiable deformation vector fields represented in multilayer perceptrons. We show how this allows us to include various regularization terms computed using analytical gradients in PyTorch.

Method overview!

Running the code

This code replicates the experiments that we ran on the DIR-LAB data set. You will need PyTorch to run the code. By default, the code expects a CUDA-enabled GPU. To register inspiration and expiration images for a patient in this set, just run run.py. You can turn the different regularizers on and off by modifying the script, and choose to use either a SIREN or MLP (faster) network. More advanced settings can be changed in models\models.py. As output, you will get the mean and standard deviation of the target registration (TRE) error for the 300 anatomical landmarks in Euclidean distance as well as per axis.

Data

We have used data from the 4D CT DIR-LAB set in our experiments. You can obtain this data from the DIR-LAB website. Note that our script expects filenames to have a standardized naming convention: we assume that for each patient there is an image case{}_T00_s.img and an image case{}_T50_s.img for inspiration and expiration, respectively. Moreover, we use lung masks that we obtain using the excellent scripts provided by Johannes Hofmanninger on his GitHub page. You can of course also use different lung masks or different file formats. As long as you adhere to the file structure below, things should run smoothly. You should set data_dir in run.py.

📦data_dir
┣ 📂Case1Pack
┃ ┣ 📂ExtremePhases
┃ ┃ ┣ 📜Case1_300_T00_xyz.txt
┃ ┃ ┗ 📜Case1_300_T50_xyz.txt
┃ ┣ 📂Images
┃ ┃ ┣ 📜case1_T00_s.img
┃ ┃ ┗ 📜case1_T50_s.img
┃ ┗ 📂Masks
┃ ┃ ┣ 📜case1_T00_s.mhd
┃ ┃ ┗ 📜case1_T00_s.raw
┣ 📂Case2Pack
┃ ┣..
┃..
┣ 📂Case10Pack
┃ ┣ 📂extremePhases
┃ ┃ ┣ 📜Case10_300_T00_xyz.txt
┃ ┃ ┗ 📜Case10_300_T50_xyz.txt
┃ ┣ 📂Images
┃ ┃ ┣ 📜case10_T00_s.img
┃ ┃ ┗ 📜case10_T50_s.img
┃ ┗ 📂Masks
┃ ┃ ┣ 📜case10_T00_s.mhd
┃ ┃ ┗ 📜case10_T00_s.raw

Reference

If you use this code, please cite our MIDL 2022 paper

@inproceedings{wolterink2021implicit,
title={Implicit Neural Representations for Deformable Image Registration},
author={Wolterink, Jelmer M and Zwienenberg, Jesse C and Brune, Christoph},
booktitle={Medical Imaging with Deep Learning 2022}
year={2022}
}

About

Code for the MIDL 2022 paper Implicit Neural Representations for Deformable Image Registration

Resources

Stars

54 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages