当前位置: 首页 > ai >正文

医学图像分割最新进展

生成式AI在医学图像分割中的应用:

  • 1. 生成对抗网络(GAN)
    GAN 由生成器和判别器组成,核心思想是“以假乱真”地生成图像
  • 2. 扩散模型(DDPM)
    通过加噪再去噪的过程生成图像

少样本学习(FSS)在医学图像分割中的应用:

少样本分割致力于用极少量标注样本识别新类别
使用支持集(含k张已标注图像)指导模型对查询图像进行新类别分割。

  • 支持集是一组已经标注了的图像,每张图像都包含了一些类别的标注信息。在新类别分割的场景中,支持集包含了k张图像,这些图像的类别是模型已知的。支持集的作用是为模型提供关于新类别的视觉和类别信息,以便模型能够学习如何识别和分割这些新类别。
  • 查询图像
    查询图像是模型需要处理的目标图像,这些图像可能包含支持集中未出现过的新类别。在新类别分割任务中,模型需要利用从支持集中学习到的知识,对查询图像中的新类别进行识别和分割。

主流方法:

  • 原型网络:提取支持集原型向量,对查询图像进行相似度匹配。
    原型向量的定义
    原型向量是支持集中每个类别图像特征的平均值。对于每个类别,原型向量是通过计算该类别所有图像特征向量的平均值得到的。
    步骤过程
    1.特征提取:
    在医学图像分割中,首先需要从支持集和查询图像中提取特征。这些特征通常通过预训练的卷积神经网络(如ResNet、VGG等)得到,可以捕获图像的局部和全局特征。
    2.计算原型向量:
    对于支持集中的每个类别,计算其所有图像特征向量的平均值,得到该类别的原型向量。这个原型向量代表了该类别的典型特征。
    3.相似度计算:
    对于查询图像,计算其特征向量与每个类别原型向量之间的相似度。相似度可以通过不同的方法计算,如欧氏距离、余弦相似度等。
    4.分割决策:
    根据相似度,将查询图像中的每个像素分配给最相似的类别原型。这通常涉及到一个后处理步骤,如使用softmax函数将相似度转换为概率,然后根据这些概率进行像素级别的分类。
    在以下在这个示例中,定义了一个原型网络模型,它计算支持集的原型向量,并计算查询图像与原型向量之间的相似度。
import torch
import torch.nn as nn
import torch.nn.functional as Fclass PrototypeNetwork(nn.Module):def __init__(self, feature_dim, num_classes):super(PrototypeNetwork, self).__init__()self.feature_dim = feature_dimself.num_classes = num_classesself.prototypes = nn.Parameter(torch.randn(num_classes, feature_dim))def forward(self, support_features, query_features):# 计算支持集的原型向量support_prototypes = torch.mean(support_features, dim=0, keepdim=True)# 计算查询图像与原型向量之间的相似度similarities = F.cosine_similarity(query_features.unsqueeze(1), support_prototypes, dim=2)# 返回相似度return similarities# 示例用法
feature_dim = 128
num_classes = 5
model = PrototypeNetwork(feature_dim, num_classes)support_features = torch.randn(10, feature_dim)  # 假设有10个支持图像
query_features = torch.randn(1, feature_dim)  # 假设有1个查询图像similarities = model(support_features, query_features)
print(similarities)

以下图片展示了一个用于医学图像分割的少样本学习框架,以下是图片中各部分的详细解释:
在这里插入图片描述

  1. 支持集(Support Set (S))
    • 包含少量已标注的图像,用于训练模型识别新的类别。
    • 这些图像通过一个共享权重的主干网络(Backbone)提取特征。
  2. 查询图像(Query Image (I_q))
    • 是需要进行分割的目标图像,可能包含支持集中未出现过的新类别。
    • 同样通过主干网络提取特征。
  3. 主干网络(Backbone)
    • 用于从输入图像中提取特征映射(Feature Maps)。
    • 图片中标注了“SW”,表示支持集和查询图像通过同一个主干网络,共享权重。
  4. 支持特征映射(Support Feature Maps (f(I_s)))
    • 从支持集图像中提取的特征映射。
    • 通过“MAP”(Masked Average Pooling)操作计算每个类别的原型向量。
  5. 查询特征映射(Query Feature Maps (f(I_q)))
    • 从查询图像中提取的特征映射。
  6. 原型向量(Prototypes)
    • 每个类别的代表向量,通过支持特征映射的平均值计算得到。
    • 这些原型向量用于与查询特征映射进行相似度比较。
  7. 相似度计算(Cosine Similarity)
    • 使用余弦相似度(Cos)计算查询特征映射与每个类别原型向量之间的相似度。
  8. 分割结果
    • 根据相似度,将查询图像中的每个像素分配给最相似的类别原型,从而实现图像分割。
  • 条件网络:根据支持图像生成参数,调节查询图像分割过程。
    条件网络是一种在少样本学习中使用的网络结构,它可以根据支持集中的信息来动态调整查询图像的分割过程。
    以下是一个简化的条件网络示例,使用PyTorch实现
import torch
import torch.nn as nn
import torch.nn.functional as Fclass ConditionalNetwork(nn.Module):def __init__(self, feature_dim, num_classes):super(ConditionalNetwork, self).__init__()self.feature_dim = feature_dimself.num_classes = num_classesself.param_generator = nn.Linear(feature_dim, num_classes * (feature_dim + 1))  # 生成参数def forward(self, support_features, query_features):# 从支持特征生成参数params = self.param_generator(support_features).view(-1, self.num_classes, self.feature_dim + 1)# 应用参数到查询特征query_features = query_features.unsqueeze(1).expand(-1, self.num_classes, -1)out = torch.cat((query_features, params[:, :, :-1]), dim=-1)out = F.relu(out)out = out * params[:, :, -1].unsqueeze(-1)  # 应用权重# 分割决策out = out.max(dim=1)[0]return out# 示例用法
feature_dim = 128
num_classes = 5
model = ConditionalNetwork(feature_dim, num_classes)support_features = torch.randn(10, feature_dim)  # 假设有10个支持图像
query_features = torch.randn(1, feature_dim)  # 假设有1个查询图像segmentation = model(support_features, query_features)
print(segmentation)

以下展示了框架各部分的详细解释:
在这里插入图片描述
其中包含两个主要部分:条件分支(黄色部分)和分割分支(粉色部分)。这个框架利用支持集(Support Set)中的图像来指导和调整查询图像的分割过程。

  1. 支持集

    • 包含少量已标注的图像,这些图像用于训练模型识别新的类别或结构。
    • 支持集中的图像通过条件分支(Model_C)来生成条件参数。
  2. 查询图像

    • 是需要进行分割的目标图像
    • 查询图像通过分割分支(Model_S)来进行处理。
  3. 条件分支

    • 包含模型 (Model_C),用于从支持集中的图像生成条件参数θ
    • 这些参数反映了支持集中图像的特征和类别信息,用于调整分割分支的行为。
  4. 分割分支

    • 包含模型 (Model_S),负责处理查询图像并生成分割结果。
    • 分割分支接收来自条件分支的参数θ,并使用这些参数来调整其内部权重或结构,以更好地适应查询图像的分割任务。
  5. 参数传递

    • 从条件分支生成的参数θ被传递到分割分支,用于调整分割模型的行为。
    • 这种调整使得分割模型能够根据支持集中的信息来优化其对查询图像的分割性能。
  6. 分割结果

    • 分割分支根据调整后的模型参数生成最终的分割结果,即图像中不同结构或类别的分割图。

参考:[1]https://link.zhihu.com/?target=https%3A//arxiv.org/abs/2505.09274 [2]https://zhuanlan.zhihu.com/p/1908090620846776898

http://www.xdnf.cn/news/13149.html

相关文章:

  • 苹果签名应用掉签频繁原因排查,以及如何避免
  • WebRTC 中 ICE 流程优化:SRS 轻量级部署与 NAT 类型检测实战
  • 项目管理三要素有哪些?如何实现项目管理的三要素平衡
  • 题单:归并排序
  • DSP——时钟树讲解
  • 使用联邦学习进行CIFAR-10分类任务
  • 消防车辆管理系统:为消防公车筑牢安全与效率防线
  • 磐维数据库的权限使用
  • spark数据处理练习题番外篇【下】
  • 统计学核心概念与现实应用精解(偏机器学习)
  • ios 26官宣:car play升级提升车载体验
  • 丝杆升降机的物联网与大数据应用的具体例子
  • React 19 新特性
  • VSCode中PHP使用Xdebug
  • IP 地址查询在证券交易中的应用方式
  • spark数据处理练习题番外篇【上】
  • ffmpeg windows 32位编译
  • 如何安全地准备 iPhone 以旧换新(分步说明)
  • 深度解析qemu-guest-agent:架构原理、核心场景与部署实践
  • 【笔记】NVIDIA AI Workbench 安装记录
  • Docker加入用户组
  • 【解决串口数据丢包问题】下位机环形缓冲区+上位机串口生产者-消费者不定长接收(基于keil5和Labview)
  • 数字艺术品的“身份证”危机:当NFT遇见法律红绿灯
  • 延伸大疆AI能力:Coovally一键训练模型,直通无人机部署
  • COCO数据集转YOLO数据集
  • 一体系数据平台的进化:基于阿里云 EMR Serverless Spark的持续演进
  • docker 安装 milvus standalone 版本 + attu
  • 工业路由器赋能仓库消防预警,智慧消防物联网解决方案
  • 用户体验升级:表单失焦调用接口验证,错误信息即时可视化
  • Siri在WWDC中的缺席显得格外刺眼