') + ')', 'gi');
if (regex.test(text)) {
found = true;
var frag = document.createDocumentFragment();
var parts = text.split(regex);
parts.forEach(function(part, i) {
if (i % 2 === 0) {
frag.appendChild(document.createTextNode(part));
} else {
var span = document.createElement('span');
span.className = 'userscript-highlight';
span.textContent = part;
frag.appendChild(span);
}
});
node.parentNode.replaceChild(frag, node);
}
});
} else if (node.nodeType === 1 && node.childNodes) { // element
var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];
if (!skipTags.includes(node.tagName)) {
Array.from(node.childNodes).forEach(highlight);
}
}
}
highlight(document.body);
// Re-highlight on dynamic content
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(m) {
m.addedNodes.forEach(function(node) {
if (node.nodeType === 1 || node.nodeType === 3) highlight(node);
});
});
});
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); }
})();
(function(){
try {
var __m = "*";
var __re = new RegExp('^' + ".*" + ', 'i');
if (__m === '*' || __re.test(location.href)) {
// Strip utm_, fbclid, gclid, etc. from all links on page
(function() {
var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',
'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',
'ref', 'ref_src', 'source', 'medium', 'campaign'];
function cleanUrl(url) {
try {
var u = new URL(url, window.location.origin);
var changed = false;
trackingParams.forEach(function(p) {
if (u.searchParams.has(p)) {
u.searchParams.delete(p);
changed = true;
}
});
return changed ? u.toString() : url;
} catch (e) {
return url;
}
}
function cleanLinks() {
document.querySelectorAll('a[href]').forEach(function(a) {
var clean = cleanUrl(a.href);
if (clean !== a.href) a.href = clean;
});
}
cleanLinks();
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(m) {
m.addedNodes.forEach(function(node) {
if (node.nodeType === 1) {
if (node.tagName === 'A') cleanLinks();
node.querySelectorAll('a[href]').forEach(function(a) {
var clean = cleanUrl(a.href);
if (clean !== a.href) a.href = clean;
});
}
});
});
});
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); }
})();
(function(){
try {
var __m = "youtube.com";
var __re = new RegExp('^' + "youtube\\.com" + ', 'i');
if (__m === '*' || __re.test(location.href)) {
// Auto-enable theater mode on YouTube
(function() {
function tryTheater() {
var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]');
if (btn && !btn.classList.contains('activated')) {
btn.click();
}
}
// Try immediately
tryTheater();
// Try after navigation (SPA)
var lastUrl = location.href;
setInterval(function() {
if (location.href !== lastUrl) {
lastUrl = location.href;
setTimeout(tryTheater, 500);
}
}, 1000);
// Also try on player load
var observer = new MutationObserver(tryTheater);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); }
})();
(function(){
try {
var __m = "*";
var __re = new RegExp('^' + ".*" + ', 'i');
if (__m === '*' || __re.test(location.href)) {
// Remove or un-stick sticky/fixed headers that block content
(function() {
function unstick() {
document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) {
if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {
el.style.position = 'static';
el.style.top = 'auto';
el.style.zIndex = 'auto';
}
});
}
unstick();
var observer = new MutationObserver(unstick);
observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });
})();
}
} catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); }
})();
})();
GitHub - ge-xing/DiffUNet: DiffUNet · GitHub
Repository files navigation Diff-UNet: A Diffusion Embedded Network for Robust 3D Medical Image Segmentation
We devise a Multi-granularity Boundary Aggregation (MBA) module to introduce boundary features into the diffusion model for leveraging boundary information to improve the 3D segmentation accuracy.
%offering feature supplementation and boundary perception.
We propose a Monte Carlo Diffusion (MC-Diff) module, obtaining an uncertainty map during the diffusion training stage to guide the computation of segmentation loss and improve the segmentation on uncertain pixels.
%and increasing focus on uncertain pixels.
During the diffusion inference stage, we design a Progressive Uncertainty-driven REfinement (PURE) strategy to fuse segmentation results from different inference steps for further boosting 3D medical image segmentation. %the robustness of predictions.
torch 2.1.2 CUDA 12.2 monai dynamic_network_architectures batchgenerator https://codalab.lisn.upsaclay.fr/competitions/13238#learn_the_details-overview
The data should be placed in "./data/raw_data/AIIB23_Train_T1/"
run the preprocessing script to generate the normalized and resampled data
python 1_preprocessing_aiib2023.py After running the script, the preprocessed data will be saved in "./data/fullres/train/"
train the model
python 2_train_diffunet_aiib2023.py The trained model will be saved in "./logs/diffunet/model/"
Meanwhile, you can use tensorboard to monitor the training process.
tensorboard --logdir ./logs/diffunet/ inference using the trained model
python 3_predict_aiib2023.py the inference results will be saved in "./prediction_results/diffunet/"
compute the metrics
python 4_compute_metrics_aiib2023.py --pred=diffunet https://arxiv.org/pdf/2305.19369
The data should be placed in "./data/raw_data/ASNR-MICCAI-BraTS2023-GLI-Challenge-TrainingData/"
run the preprocessing script to generate the normalized and resampled data
python 1_rename_mri_data_brats2023.py
python 2_preprocessing_brats2023.py train the model
python 3_train_diffunet_brats2023.py inference using the trained model
python 4_predict_brats2023.py compute the metrics
python 5_compute_metrics_brats2023.py --pred=diffunet To simplify the running process, rather than predict the boundary information, we directly use the segmentation labels in the current version. In the future, we will continue to release more related codes.
You can’t perform that action at this time.