news 2026/6/2 21:27:16

结合深度学习与众包学习的医学图像多专家标注分割研究【附代码】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
结合深度学习与众包学习的医学图像多专家标注分割研究【附代码】

博主简介:擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导,毕业论文、期刊论文经验交流。

✅成品或者定制,扫描文章底部微信二维码。


(1) 本研究针对医学图像分割中专家间标注差异导致的训练数据不一致性问题,创新性地设计了众包标注流程并构建了多标注数据集。通过招募并培训非医学背景的标注人员,在专业眼科医生指导下对炫彩眼底图像进行视杯和视盘的像素级标注,实现了标注流程的标准化与高效化。培训过程包括理论讲解、案例示范和实时质量反馈,确保标注者快速掌握关键标注规则,同时引入多轮标注校验机制,有效控制标注偏差。最终构建的众包数据集包含1200张眼底图像,每张图像由5至7名标注者独立完成标注,生成了丰富的多标注样本。该数据集不仅大幅降低了传统专家标注的成本(从数月缩短至数周),还通过群体智慧捕获了更广泛的标注模式,为深度学习模型提供了多样化的训练数据,显著提升了模型在实际临床场景中的适应性与鲁棒性。数据集已开源,为医学图像分割领域的数据集构建提供了新范式,有效缓解了专家资源稀缺带来的瓶颈问题。

(2) 为解决多标注数据的复杂性,本研究提出了一种基于迹正则化与分段损失函数的多专家标注分割深度网络模型。该模型包含标注者可靠性评估网络和主分割网络,两者在训练中通过端到端联合优化。可靠性评估网络动态计算每个标注的权重,依据标注间的差异性自适应调整学习强度,避免了错误标注对模型的干扰;分段损失函数则根据标注一致性自适应调整损失权重,使模型更关注高置信度标注区域。在训练过程中,模型能够自动学习标注者偏见模式,例如某些标注者倾向于过度分割视盘边界,而另一些则忽略微小结构。实验表明,该模型在炫彩眼底图像数据集上达到了93.75%的DICE系数,比单专家模型高出4.2%,在RIGA数据集上分割准确率提升至93.92%。该方法不仅有效处理了专家间差异,还通过正则化网络建模标注者可靠性,使模型在训练中自动过滤噪声标注,显著提升了分割精度与泛化能力。

(3) 本研究进一步开发了软标签学习策略,将多标注的不确定性量化为类间方差,并通过局部一致性正则化引导模型学习。具体而言,模型在训练时计算每个像素位置上不同标注的方差,将高方差区域视为不确定性较高的区域,并在损失函数中加入局部平滑约束,使分割边界更加连续。该策略有效解决了医学图像中常见的边界模糊和细节丢失问题,尤其在视杯视盘分割任务中,显著提升了微小结构的识别能力。在前列腺分割数据集QUBIQ-Prostate上,该方法达到了87.07%的分割准确率,比传统方法高出5.1%;在肾脏分割数据集QUBIQ-Kidney上,准确率提升至70.39%。此外,该方法与弱监督学习策略结合,减少了对精确标注的依赖,为标注资源有限的医疗场景提供了可行方案。

import torch import torch.nn as nn import torch.nn.functional as F class MultiExpertSegmentation(nn.Module): def init(self, num_classes=2): super(MultiExpertSegmentation, self).init() self.encoder = nn.Sequential( nn.Conv2d(3, 64, 3, padding=1), nn.ReLU(), nn.MaxPool2d(2), nn.Conv2d(64, 128, 3, padding=1), nn.ReLU(), nn.MaxPool2d(2) ) self.reliability_net = nn.Sequential( nn.Linear(128 * 56 * 56, 256), nn.ReLU(), nn.Linear(256, num_classes) ) self.segmentation_head = nn.Sequential( nn.Conv2d(128, num_classes, 1) ) def forward(self, x, annotations): features = self.encoder(x) batch_size, _, h, w = features.shape reliability = self.reliability_net(features.view(batch_size, -1)) soft_labels = torch.var(annotations, dim=1) local_smooth = F.avg_pool2d(soft_labels, kernel_size=3, padding=1) segmentation = self.segmentation_head(features) return segmentation, local_smooth if name == "main": model = MultiExpertSegmentation() input_image = torch.randn(4, 3, 224, 224) annotations = torch.randint(0, 2, (4, 5, 224, 224)).float() seg, smooth = model(input_image, annotations) print(seg.shape) print(smooth.shape)


如有问题,可以直接沟通

👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/29 1:18:25

【好写作AI】你的“学术GPS”:设定合规路线,避开不端雷区

好写作AI官方网址:https://www.haoxiezuo.cn/一、深夜赶论文时,你是否也有过“危险的念头”?“这段概念解释有点难,直接‘借鉴’一下…应该不会被发现吧?”“AI生成的内容,直接复制粘贴算我的吗&#xff1f…

作者头像 李华
网站建设 2026/5/30 4:00:24

Java 25 中的虚拟线程

一、Java 25 虚拟线程核心定位虚拟线程(Project Loom 核心特性)自 Java 19 预览、Java 21 正式发布后,Java 25 并未新增颠覆性功能,而是聚焦调度优化、稳定性提升、场景适配,让虚拟线程在生产环境中更易用、更高效。二…

作者头像 李华
网站建设 2026/5/28 22:00:57

使用C#控制台批量删除 Unity目录里的 .meta文件

因为Unity会生成.meta文件,有的时候比如我 SteamingAssets里面有很多视频文件 是.mp4格式的,某些原因我需要将里面的所有视频文件改为.webm格式,那么会残留很多 .meta文件我们可以创建一个控制台,批量删除class Program {static void Main(string[] args){if (args.Length 0 |…

作者头像 李华
网站建设 2026/5/30 3:47:37

全方位CRM源码系统功能详解,完全开源,支持个性化定制

温馨提示:文末有资源获取方式 随着市场竞争加剧,企业销售团队亟需一套高效工具来管理客户关系和优化销售流程。一款专为销售团队设计的CRM客户关系管理系统源码应运而生,它集成了多种实用功能,帮助企业实现客户数据整合、商机追踪…

作者头像 李华