View RichardObi's full-sized avatar
🏓
Feel free to connect.
🏓
Feel free to connect.

Block or report RichardObi

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
RichardObi/README.md

Hi, I'm Richard 👋🏾

Teaching models to create and segment medical scans, and worrying about whether the results can be trusted.

Google ScholarLinkedInX


I build generative models for medical imaging, synthesising MRI, mammograms, and CT, sometimes to sidestep a contrast injection, sometimes just because real data is scarce and locked away. And because fake medical images are only useful if you can trust them, I like to spend a lot of time on how to measure that. 🔬

These days I'm a postdoc working on AI for radiation oncology at TUM in Munich, trying to get vision–language models to help plan cancer treatment. Before that I did my PhD on generative models for breast imaging in sunny Barcelona 🌇, and before that I spent a few years at IBM building AI systems (and accidentally collecting a few patents like this one along the way).


🧰 Things you might find useful

If you're building in medical imaging, some of these might be useful, but if not, reach out to let me know what we should be building together:

🩻 medigan — a model zoo of pretrained generative models for medical iamging. pip install medigan, pick a model, get synthetic mammograms, MRI, x-rays, or endoscopy images. Built so labs can share models instead of locked-away data. → docs here

📏 frd-score — a way to measure whether your synthetic medical images are any good, using radiomic features instead of metrics borrowed from natural image photos. → project page

💉 ccnet & SimulatingDCE — teaching models how contrast flows through breast tissue over time, so we might one day need fewer injections by turning non-contrast MRI into contrast-enhanced MRI → paper

🔒 mammo_dp — Making differential privacy useful with synthetic data - which actually helps a lot when training differentially private cancer classifiers. → paper


🌱 A few things I care about

  • Making good tools open, so the next person doesn't start from zero
  • Helping students and newcomers get their first medical-imaging models running
  • Fair AI that works for everyone, not just the patients who look like the training set — I helped to create a guide to be aware of such potential biases called FUTURE-AI.
  • Bringing people together around shared problems — I organise the MAMA-SYNTH challenge at MICCAI to reduce the reliance on contrast agents 🏁

💬 Come say hi

If any of this is useful to you, or you're stuck on something, open an issue or reach out. I'm always happy to help you get results.


🏓 Also: if you're ever at a conference and want to lose at table tennis, I'm your guy.

Pinned Loading

  1. frd-scorefrd-scorePublic

    Official implementation of the Fréchet Radiomic Distance

    Python 35 2

  2. mediganmediganPublic

    medigan - A Python Library of Pretrained Generative Models for Medical Image Synthesis

    Python 205 23

  3. mammo_dpmammo_dpPublic

    Official repository of "Enhancing the Utility of Privacy-Preserving Cancer Classification using Synthetic Data"

    Python 1 1

  4. pre_post_synthesispre_post_synthesisPublic

    Official repository for "Pre- to Post-Contrast Breast MRI Synthesis for Enhanced Tumour Segmentation"

    Python 13 1

  5. zuzaanto/mammo_gans_iwbi2022zuzaanto/mammo_gans_iwbi2022Public

    Official codebase of IWBI paper:Sharing Generative Models Instead of Private Data: A Simulation Study on Mammography Patch Classification

    Python 9 1

  6. ccnetccnetPublic

    Official repository of "Towards Learning Contrast Kinetics with Multi-Condition Latent Diffusion Models"

    Python 10 3

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 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
View RichardObi's full-sized avatar
🏓
Feel free to connect.
🏓
Feel free to connect.

Block or report RichardObi

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
RichardObi/README.md

Hi, I'm Richard 👋🏾

Teaching models to create and segment medical scans, and worrying about whether the results can be trusted.

Google ScholarLinkedInX


I build generative models for medical imaging, synthesising MRI, mammograms, and CT, sometimes to sidestep a contrast injection, sometimes just because real data is scarce and locked away. And because fake medical images are only useful if you can trust them, I like to spend a lot of time on how to measure that. 🔬

These days I'm a postdoc working on AI for radiation oncology at TUM in Munich, trying to get vision–language models to help plan cancer treatment. Before that I did my PhD on generative models for breast imaging in sunny Barcelona 🌇, and before that I spent a few years at IBM building AI systems (and accidentally collecting a few patents like this one along the way).


🧰 Things you might find useful

If you're building in medical imaging, some of these might be useful, but if not, reach out to let me know what we should be building together:

🩻 medigan — a model zoo of pretrained generative models for medical iamging. pip install medigan, pick a model, get synthetic mammograms, MRI, x-rays, or endoscopy images. Built so labs can share models instead of locked-away data. → docs here

📏 frd-score — a way to measure whether your synthetic medical images are any good, using radiomic features instead of metrics borrowed from natural image photos. → project page

💉 ccnet & SimulatingDCE — teaching models how contrast flows through breast tissue over time, so we might one day need fewer injections by turning non-contrast MRI into contrast-enhanced MRI → paper

🔒 mammo_dp — Making differential privacy useful with synthetic data - which actually helps a lot when training differentially private cancer classifiers. → paper


🌱 A few things I care about

  • Making good tools open, so the next person doesn't start from zero
  • Helping students and newcomers get their first medical-imaging models running
  • Fair AI that works for everyone, not just the patients who look like the training set — I helped to create a guide to be aware of such potential biases called FUTURE-AI.
  • Bringing people together around shared problems — I organise the MAMA-SYNTH challenge at MICCAI to reduce the reliance on contrast agents 🏁

💬 Come say hi

If any of this is useful to you, or you're stuck on something, open an issue or reach out. I'm always happy to help you get results.


🏓 Also: if you're ever at a conference and want to lose at table tennis, I'm your guy.

Pinned Loading

  1. frd-scorefrd-scorePublic

    Official implementation of the Fréchet Radiomic Distance

    Python 35 2

  2. mediganmediganPublic

    medigan - A Python Library of Pretrained Generative Models for Medical Image Synthesis

    Python 205 23

  3. mammo_dpmammo_dpPublic

    Official repository of "Enhancing the Utility of Privacy-Preserving Cancer Classification using Synthetic Data"

    Python 1 1

  4. pre_post_synthesispre_post_synthesisPublic

    Official repository for "Pre- to Post-Contrast Breast MRI Synthesis for Enhanced Tumour Segmentation"

    Python 13 1

  5. zuzaanto/mammo_gans_iwbi2022zuzaanto/mammo_gans_iwbi2022Public

    Official codebase of IWBI paper:Sharing Generative Models Instead of Private Data: A Simulation Study on Mammography Patch Classification

    Python 9 1

  6. ccnetccnetPublic

    Official repository of "Towards Learning Contrast Kinetics with Multi-Condition Latent Diffusion Models"

    Python 10 3

, '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
View RichardObi's full-sized avatar
🏓
Feel free to connect.
🏓
Feel free to connect.

Block or report RichardObi

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
RichardObi/README.md

Hi, I'm Richard 👋🏾

Teaching models to create and segment medical scans, and worrying about whether the results can be trusted.

Google ScholarLinkedInX


I build generative models for medical imaging, synthesising MRI, mammograms, and CT, sometimes to sidestep a contrast injection, sometimes just because real data is scarce and locked away. And because fake medical images are only useful if you can trust them, I like to spend a lot of time on how to measure that. 🔬

These days I'm a postdoc working on AI for radiation oncology at TUM in Munich, trying to get vision–language models to help plan cancer treatment. Before that I did my PhD on generative models for breast imaging in sunny Barcelona 🌇, and before that I spent a few years at IBM building AI systems (and accidentally collecting a few patents like this one along the way).


🧰 Things you might find useful

If you're building in medical imaging, some of these might be useful, but if not, reach out to let me know what we should be building together:

🩻 medigan — a model zoo of pretrained generative models for medical iamging. pip install medigan, pick a model, get synthetic mammograms, MRI, x-rays, or endoscopy images. Built so labs can share models instead of locked-away data. → docs here

📏 frd-score — a way to measure whether your synthetic medical images are any good, using radiomic features instead of metrics borrowed from natural image photos. → project page

💉 ccnet & SimulatingDCE — teaching models how contrast flows through breast tissue over time, so we might one day need fewer injections by turning non-contrast MRI into contrast-enhanced MRI → paper

🔒 mammo_dp — Making differential privacy useful with synthetic data - which actually helps a lot when training differentially private cancer classifiers. → paper


🌱 A few things I care about

  • Making good tools open, so the next person doesn't start from zero
  • Helping students and newcomers get their first medical-imaging models running
  • Fair AI that works for everyone, not just the patients who look like the training set — I helped to create a guide to be aware of such potential biases called FUTURE-AI.
  • Bringing people together around shared problems — I organise the MAMA-SYNTH challenge at MICCAI to reduce the reliance on contrast agents 🏁

💬 Come say hi

If any of this is useful to you, or you're stuck on something, open an issue or reach out. I'm always happy to help you get results.


🏓 Also: if you're ever at a conference and want to lose at table tennis, I'm your guy.

Pinned Loading

  1. frd-scorefrd-scorePublic

    Official implementation of the Fréchet Radiomic Distance

    Python 35 2

  2. mediganmediganPublic

    medigan - A Python Library of Pretrained Generative Models for Medical Image Synthesis

    Python 205 23

  3. mammo_dpmammo_dpPublic

    Official repository of "Enhancing the Utility of Privacy-Preserving Cancer Classification using Synthetic Data"

    Python 1 1

  4. pre_post_synthesispre_post_synthesisPublic

    Official repository for "Pre- to Post-Contrast Breast MRI Synthesis for Enhanced Tumour Segmentation"

    Python 13 1

  5. zuzaanto/mammo_gans_iwbi2022zuzaanto/mammo_gans_iwbi2022Public

    Official codebase of IWBI paper:Sharing Generative Models Instead of Private Data: A Simulation Study on Mammography Patch Classification

    Python 9 1

  6. ccnetccnetPublic

    Official repository of "Towards Learning Contrast Kinetics with Multi-Condition Latent Diffusion Models"

    Python 10 3

, '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 > 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
View RichardObi's full-sized avatar
🏓
Feel free to connect.
🏓
Feel free to connect.

Block or report RichardObi

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
RichardObi/README.md

Hi, I'm Richard 👋🏾

Teaching models to create and segment medical scans, and worrying about whether the results can be trusted.

Google ScholarLinkedInX


I build generative models for medical imaging, synthesising MRI, mammograms, and CT, sometimes to sidestep a contrast injection, sometimes just because real data is scarce and locked away. And because fake medical images are only useful if you can trust them, I like to spend a lot of time on how to measure that. 🔬

These days I'm a postdoc working on AI for radiation oncology at TUM in Munich, trying to get vision–language models to help plan cancer treatment. Before that I did my PhD on generative models for breast imaging in sunny Barcelona 🌇, and before that I spent a few years at IBM building AI systems (and accidentally collecting a few patents like this one along the way).


🧰 Things you might find useful

If you're building in medical imaging, some of these might be useful, but if not, reach out to let me know what we should be building together:

🩻 medigan — a model zoo of pretrained generative models for medical iamging. pip install medigan, pick a model, get synthetic mammograms, MRI, x-rays, or endoscopy images. Built so labs can share models instead of locked-away data. → docs here

📏 frd-score — a way to measure whether your synthetic medical images are any good, using radiomic features instead of metrics borrowed from natural image photos. → project page

💉 ccnet & SimulatingDCE — teaching models how contrast flows through breast tissue over time, so we might one day need fewer injections by turning non-contrast MRI into contrast-enhanced MRI → paper

🔒 mammo_dp — Making differential privacy useful with synthetic data - which actually helps a lot when training differentially private cancer classifiers. → paper


🌱 A few things I care about

  • Making good tools open, so the next person doesn't start from zero
  • Helping students and newcomers get their first medical-imaging models running
  • Fair AI that works for everyone, not just the patients who look like the training set — I helped to create a guide to be aware of such potential biases called FUTURE-AI.
  • Bringing people together around shared problems — I organise the MAMA-SYNTH challenge at MICCAI to reduce the reliance on contrast agents 🏁

💬 Come say hi

If any of this is useful to you, or you're stuck on something, open an issue or reach out. I'm always happy to help you get results.


🏓 Also: if you're ever at a conference and want to lose at table tennis, I'm your guy.

Pinned Loading

  1. frd-scorefrd-scorePublic

    Official implementation of the Fréchet Radiomic Distance

    Python 35 2

  2. mediganmediganPublic

    medigan - A Python Library of Pretrained Generative Models for Medical Image Synthesis

    Python 205 23

  3. mammo_dpmammo_dpPublic

    Official repository of "Enhancing the Utility of Privacy-Preserving Cancer Classification using Synthetic Data"

    Python 1 1

  4. pre_post_synthesispre_post_synthesisPublic

    Official repository for "Pre- to Post-Contrast Breast MRI Synthesis for Enhanced Tumour Segmentation"

    Python 13 1

  5. zuzaanto/mammo_gans_iwbi2022zuzaanto/mammo_gans_iwbi2022Public

    Official codebase of IWBI paper:Sharing Generative Models Instead of Private Data: A Simulation Study on Mammography Patch Classification

    Python 9 1

  6. ccnetccnetPublic

    Official repository of "Towards Learning Contrast Kinetics with Multi-Condition Latent Diffusion Models"

    Python 10 3

, '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
View RichardObi's full-sized avatar
🏓
Feel free to connect.
🏓
Feel free to connect.

Block or report RichardObi

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
RichardObi/README.md

Hi, I'm Richard 👋🏾

Teaching models to create and segment medical scans, and worrying about whether the results can be trusted.

Google ScholarLinkedInX


I build generative models for medical imaging, synthesising MRI, mammograms, and CT, sometimes to sidestep a contrast injection, sometimes just because real data is scarce and locked away. And because fake medical images are only useful if you can trust them, I like to spend a lot of time on how to measure that. 🔬

These days I'm a postdoc working on AI for radiation oncology at TUM in Munich, trying to get vision–language models to help plan cancer treatment. Before that I did my PhD on generative models for breast imaging in sunny Barcelona 🌇, and before that I spent a few years at IBM building AI systems (and accidentally collecting a few patents like this one along the way).


🧰 Things you might find useful

If you're building in medical imaging, some of these might be useful, but if not, reach out to let me know what we should be building together:

🩻 medigan — a model zoo of pretrained generative models for medical iamging. pip install medigan, pick a model, get synthetic mammograms, MRI, x-rays, or endoscopy images. Built so labs can share models instead of locked-away data. → docs here

📏 frd-score — a way to measure whether your synthetic medical images are any good, using radiomic features instead of metrics borrowed from natural image photos. → project page

💉 ccnet & SimulatingDCE — teaching models how contrast flows through breast tissue over time, so we might one day need fewer injections by turning non-contrast MRI into contrast-enhanced MRI → paper

🔒 mammo_dp — Making differential privacy useful with synthetic data - which actually helps a lot when training differentially private cancer classifiers. → paper


🌱 A few things I care about

  • Making good tools open, so the next person doesn't start from zero
  • Helping students and newcomers get their first medical-imaging models running
  • Fair AI that works for everyone, not just the patients who look like the training set — I helped to create a guide to be aware of such potential biases called FUTURE-AI.
  • Bringing people together around shared problems — I organise the MAMA-SYNTH challenge at MICCAI to reduce the reliance on contrast agents 🏁

💬 Come say hi

If any of this is useful to you, or you're stuck on something, open an issue or reach out. I'm always happy to help you get results.


🏓 Also: if you're ever at a conference and want to lose at table tennis, I'm your guy.

Pinned Loading

  1. frd-scorefrd-scorePublic

    Official implementation of the Fréchet Radiomic Distance

    Python 35 2

  2. mediganmediganPublic

    medigan - A Python Library of Pretrained Generative Models for Medical Image Synthesis

    Python 205 23

  3. mammo_dpmammo_dpPublic

    Official repository of "Enhancing the Utility of Privacy-Preserving Cancer Classification using Synthetic Data"

    Python 1 1

  4. pre_post_synthesispre_post_synthesisPublic

    Official repository for "Pre- to Post-Contrast Breast MRI Synthesis for Enhanced Tumour Segmentation"

    Python 13 1

  5. zuzaanto/mammo_gans_iwbi2022zuzaanto/mammo_gans_iwbi2022Public

    Official codebase of IWBI paper:Sharing Generative Models Instead of Private Data: A Simulation Study on Mammography Patch Classification

    Python 9 1

  6. ccnetccnetPublic

    Official repository of "Towards Learning Contrast Kinetics with Multi-Condition Latent Diffusion Models"

    Python 10 3

, '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
View RichardObi's full-sized avatar
🏓
Feel free to connect.
🏓
Feel free to connect.

Block or report RichardObi

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
RichardObi/README.md

Hi, I'm Richard 👋🏾

Teaching models to create and segment medical scans, and worrying about whether the results can be trusted.

Google ScholarLinkedInX


I build generative models for medical imaging, synthesising MRI, mammograms, and CT, sometimes to sidestep a contrast injection, sometimes just because real data is scarce and locked away. And because fake medical images are only useful if you can trust them, I like to spend a lot of time on how to measure that. 🔬

These days I'm a postdoc working on AI for radiation oncology at TUM in Munich, trying to get vision–language models to help plan cancer treatment. Before that I did my PhD on generative models for breast imaging in sunny Barcelona 🌇, and before that I spent a few years at IBM building AI systems (and accidentally collecting a few patents like this one along the way).


🧰 Things you might find useful

If you're building in medical imaging, some of these might be useful, but if not, reach out to let me know what we should be building together:

🩻 medigan — a model zoo of pretrained generative models for medical iamging. pip install medigan, pick a model, get synthetic mammograms, MRI, x-rays, or endoscopy images. Built so labs can share models instead of locked-away data. → docs here

📏 frd-score — a way to measure whether your synthetic medical images are any good, using radiomic features instead of metrics borrowed from natural image photos. → project page

💉 ccnet & SimulatingDCE — teaching models how contrast flows through breast tissue over time, so we might one day need fewer injections by turning non-contrast MRI into contrast-enhanced MRI → paper

🔒 mammo_dp — Making differential privacy useful with synthetic data - which actually helps a lot when training differentially private cancer classifiers. → paper


🌱 A few things I care about

  • Making good tools open, so the next person doesn't start from zero
  • Helping students and newcomers get their first medical-imaging models running
  • Fair AI that works for everyone, not just the patients who look like the training set — I helped to create a guide to be aware of such potential biases called FUTURE-AI.
  • Bringing people together around shared problems — I organise the MAMA-SYNTH challenge at MICCAI to reduce the reliance on contrast agents 🏁

💬 Come say hi

If any of this is useful to you, or you're stuck on something, open an issue or reach out. I'm always happy to help you get results.


🏓 Also: if you're ever at a conference and want to lose at table tennis, I'm your guy.

Pinned Loading

  1. frd-scorefrd-scorePublic

    Official implementation of the Fréchet Radiomic Distance

    Python 35 2

  2. mediganmediganPublic

    medigan - A Python Library of Pretrained Generative Models for Medical Image Synthesis

    Python 205 23

  3. mammo_dpmammo_dpPublic

    Official repository of "Enhancing the Utility of Privacy-Preserving Cancer Classification using Synthetic Data"

    Python 1 1

  4. pre_post_synthesispre_post_synthesisPublic

    Official repository for "Pre- to Post-Contrast Breast MRI Synthesis for Enhanced Tumour Segmentation"

    Python 13 1

  5. zuzaanto/mammo_gans_iwbi2022zuzaanto/mammo_gans_iwbi2022Public

    Official codebase of IWBI paper:Sharing Generative Models Instead of Private Data: A Simulation Study on Mammography Patch Classification

    Python 9 1

  6. ccnetccnetPublic

    Official repository of "Towards Learning Contrast Kinetics with Multi-Condition Latent Diffusion Models"

    Python 10 3

, '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
View RichardObi's full-sized avatar
🏓
Feel free to connect.
🏓
Feel free to connect.

Block or report RichardObi

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
RichardObi/README.md

Hi, I'm Richard 👋🏾

Teaching models to create and segment medical scans, and worrying about whether the results can be trusted.

Google ScholarLinkedInX


I build generative models for medical imaging, synthesising MRI, mammograms, and CT, sometimes to sidestep a contrast injection, sometimes just because real data is scarce and locked away. And because fake medical images are only useful if you can trust them, I like to spend a lot of time on how to measure that. 🔬

These days I'm a postdoc working on AI for radiation oncology at TUM in Munich, trying to get vision–language models to help plan cancer treatment. Before that I did my PhD on generative models for breast imaging in sunny Barcelona 🌇, and before that I spent a few years at IBM building AI systems (and accidentally collecting a few patents like this one along the way).


🧰 Things you might find useful

If you're building in medical imaging, some of these might be useful, but if not, reach out to let me know what we should be building together:

🩻 medigan — a model zoo of pretrained generative models for medical iamging. pip install medigan, pick a model, get synthetic mammograms, MRI, x-rays, or endoscopy images. Built so labs can share models instead of locked-away data. → docs here

📏 frd-score — a way to measure whether your synthetic medical images are any good, using radiomic features instead of metrics borrowed from natural image photos. → project page

💉 ccnet & SimulatingDCE — teaching models how contrast flows through breast tissue over time, so we might one day need fewer injections by turning non-contrast MRI into contrast-enhanced MRI → paper

🔒 mammo_dp — Making differential privacy useful with synthetic data - which actually helps a lot when training differentially private cancer classifiers. → paper


🌱 A few things I care about

  • Making good tools open, so the next person doesn't start from zero
  • Helping students and newcomers get their first medical-imaging models running
  • Fair AI that works for everyone, not just the patients who look like the training set — I helped to create a guide to be aware of such potential biases called FUTURE-AI.
  • Bringing people together around shared problems — I organise the MAMA-SYNTH challenge at MICCAI to reduce the reliance on contrast agents 🏁

💬 Come say hi

If any of this is useful to you, or you're stuck on something, open an issue or reach out. I'm always happy to help you get results.


🏓 Also: if you're ever at a conference and want to lose at table tennis, I'm your guy.

Pinned Loading

  1. frd-scorefrd-scorePublic

    Official implementation of the Fréchet Radiomic Distance

    Python 35 2

  2. mediganmediganPublic

    medigan - A Python Library of Pretrained Generative Models for Medical Image Synthesis

    Python 205 23

  3. mammo_dpmammo_dpPublic

    Official repository of "Enhancing the Utility of Privacy-Preserving Cancer Classification using Synthetic Data"

    Python 1 1

  4. pre_post_synthesispre_post_synthesisPublic

    Official repository for "Pre- to Post-Contrast Breast MRI Synthesis for Enhanced Tumour Segmentation"

    Python 13 1

  5. zuzaanto/mammo_gans_iwbi2022zuzaanto/mammo_gans_iwbi2022Public

    Official codebase of IWBI paper:Sharing Generative Models Instead of Private Data: A Simulation Study on Mammography Patch Classification

    Python 9 1

  6. ccnetccnetPublic

    Official repository of "Towards Learning Contrast Kinetics with Multi-Condition Latent Diffusion Models"

    Python 10 3

, '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
View RichardObi's full-sized avatar
🏓
Feel free to connect.
🏓
Feel free to connect.

Block or report RichardObi

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
RichardObi/README.md

Hi, I'm Richard 👋🏾

Teaching models to create and segment medical scans, and worrying about whether the results can be trusted.

Google ScholarLinkedInX


I build generative models for medical imaging, synthesising MRI, mammograms, and CT, sometimes to sidestep a contrast injection, sometimes just because real data is scarce and locked away. And because fake medical images are only useful if you can trust them, I like to spend a lot of time on how to measure that. 🔬

These days I'm a postdoc working on AI for radiation oncology at TUM in Munich, trying to get vision–language models to help plan cancer treatment. Before that I did my PhD on generative models for breast imaging in sunny Barcelona 🌇, and before that I spent a few years at IBM building AI systems (and accidentally collecting a few patents like this one along the way).


🧰 Things you might find useful

If you're building in medical imaging, some of these might be useful, but if not, reach out to let me know what we should be building together:

🩻 medigan — a model zoo of pretrained generative models for medical iamging. pip install medigan, pick a model, get synthetic mammograms, MRI, x-rays, or endoscopy images. Built so labs can share models instead of locked-away data. → docs here

📏 frd-score — a way to measure whether your synthetic medical images are any good, using radiomic features instead of metrics borrowed from natural image photos. → project page

💉 ccnet & SimulatingDCE — teaching models how contrast flows through breast tissue over time, so we might one day need fewer injections by turning non-contrast MRI into contrast-enhanced MRI → paper

🔒 mammo_dp — Making differential privacy useful with synthetic data - which actually helps a lot when training differentially private cancer classifiers. → paper


🌱 A few things I care about

  • Making good tools open, so the next person doesn't start from zero
  • Helping students and newcomers get their first medical-imaging models running
  • Fair AI that works for everyone, not just the patients who look like the training set — I helped to create a guide to be aware of such potential biases called FUTURE-AI.
  • Bringing people together around shared problems — I organise the MAMA-SYNTH challenge at MICCAI to reduce the reliance on contrast agents 🏁

💬 Come say hi

If any of this is useful to you, or you're stuck on something, open an issue or reach out. I'm always happy to help you get results.


🏓 Also: if you're ever at a conference and want to lose at table tennis, I'm your guy.

Pinned Loading

  1. frd-scorefrd-scorePublic

    Official implementation of the Fréchet Radiomic Distance

    Python 35 2

  2. mediganmediganPublic

    medigan - A Python Library of Pretrained Generative Models for Medical Image Synthesis

    Python 205 23

  3. mammo_dpmammo_dpPublic

    Official repository of "Enhancing the Utility of Privacy-Preserving Cancer Classification using Synthetic Data"

    Python 1 1

  4. pre_post_synthesispre_post_synthesisPublic

    Official repository for "Pre- to Post-Contrast Breast MRI Synthesis for Enhanced Tumour Segmentation"

    Python 13 1

  5. zuzaanto/mammo_gans_iwbi2022zuzaanto/mammo_gans_iwbi2022Public

    Official codebase of IWBI paper:Sharing Generative Models Instead of Private Data: A Simulation Study on Mammography Patch Classification

    Python 9 1

  6. ccnetccnetPublic

    Official repository of "Towards Learning Contrast Kinetics with Multi-Condition Latent Diffusion Models"

    Python 10 3