医疗图像之基于Attention Unet的皮肤疾病病灶区域分割

  第一步:准备数据

皮肤疾病病灶区域分割数据,总共1279张

第二步:搭建模型

Attention Unet主要的中心思想就是提出来Attention gate模块,使用soft-attention替代hard-attention,将attention集成到Unet的跳跃连接和上采样模块中,实现空间上的注意力机制。通过attention机制来抑制图像中的无关信息,突出局部的重要特征

 Attention Unet的模型结构和Unet十分相像,只是增加了Attention Gate模块来对skip connection和upsampling层做attention机制。

在Attention Gate模块中,g和xl分别为skip connection的输出和下一层的输出,如图

需要注意的是,在计算Wg和Wx后,对两者进行相加。但是,此时g的维度和xl的维度并不相等,则需要对g做下采样或对xl做上采样。(我倾向于对xl做上采样,因为在原本的Unet中,在Decoder就需要对下一层做上采样,所以,直接使用这个上采样结果可以减少网络计算)。

Wg和Wx经过相加,ReLU激活,1x1x1卷积,Sigmoid激活,生成一个权重信息,将这个权重与原始输入xl相乘,得到了对xl的attention激活。这就是Attenton Gate的思想。

Attenton Gate还有一个比较重要的特点是:这个权重可以经由网络学习!因为soft-attention是可微的,可以微分的attention就可以通过神经网络算出梯度并且前向传播和后向反馈来学习得到attention的权重。以此来学习更重要的特征。

第三步:代码

1)损失函数为:交叉熵损失函数+dice损失

2)网络代码:

class AttU_Net(nn.Module):
    def __init__(self,img_ch=3,output_ch=1):
        super(AttU_Net,self).__init__()
        
        self.Maxpool = nn.MaxPool2d(kernel_size=2,stride=2)

        self.Conv1 = conv_block(ch_in=img_ch,ch_out=64)
        self.Conv2 = conv_block(ch_in=64,ch_out=128)
        self.Conv3 = conv_block(ch_in=128,ch_out=256)
        self.Conv4 = conv_block(ch_in=256,ch_out=512)
        self.Conv5 = conv_block(ch_in=512,ch_out=1024)

        self.Up5 = up_conv(ch_in=1024,ch_out=512)
        self.Att5 = Attention_block(F_g=512,F_l=512,F_int=256)
        self.Up_conv5 = conv_block(ch_in=1024, ch_out=512)

        self.Up4 = up_conv(ch_in=512,ch_out=256)
        self.Att4 = Attention_block(F_g=256,F_l=256,F_int=128)
        self.Up_conv4 = conv_block(ch_in=512, ch_out=256)
        
        self.Up3 = up_conv(ch_in=256,ch_out=128)
        self.Att3 = Attention_block(F_g=128,F_l=128,F_int=64)
        self.Up_conv3 = conv_block(ch_in=256, ch_out=128)
        
        self.Up2 = up_conv(ch_in=128,ch_out=64)
        self.Att2 = Attention_block(F_g=64,F_l=64,F_int=32)
        self.Up_conv2 = conv_block(ch_in=128, ch_out=64)

        self.Conv_1x1 = nn.Conv2d(64,output_ch,kernel_size=1,stride=1,padding=0)


    def forward(self,x):
        # encoding path
        x1 = self.Conv1(x)

        x2 = self.Maxpool(x1)
        x2 = self.Conv2(x2)
        
        x3 = self.Maxpool(x2)
        x3 = self.Conv3(x3)

        x4 = self.Maxpool(x3)
        x4 = self.Conv4(x4)

        x5 = self.Maxpool(x4)
        x5 = self.Conv5(x5)

        # decoding + concat path
        d5 = self.Up5(x5)
        x4 = self.Att5(g=d5,x=x4)
        d5 = torch.cat((x4,d5),dim=1)        
        d5 = self.Up_conv5(d5)
        
        d4 = self.Up4(d5)
        x3 = self.Att4(g=d4,x=x3)
        d4 = torch.cat((x3,d4),dim=1)
        d4 = self.Up_conv4(d4)

        d3 = self.Up3(d4)
        x2 = self.Att3(g=d3,x=x2)
        d3 = torch.cat((x2,d3),dim=1)
        d3 = self.Up_conv3(d3)

        d2 = self.Up2(d3)
        x1 = self.Att2(g=d2,x=x1)
        d2 = torch.cat((x1,d2),dim=1)
        d2 = self.Up_conv2(d2)

        d1 = self.Conv_1x1(d2)

        return d1

第四步:统计一些指标(训练过程中的loss和miou)

第五步:搭建GUI界面

第五步:整个工程的内容

有训练代码和训练好的模型以及训练过程,提供数据,提供GUI界面代码

代码见:医疗图像之基于Attention Unet的皮肤疾病病灶区域分割

有问题可以私信或者留言,有问必答

e0420b8919fe4c1cb3d1e3dd52176a8a.png

### 回答1: 皮肤病变分割是医学图像处理领域中的一项重要任务,其目的是将医学图像中的正常皮肤和病变区域分离开来,帮助医生进行疾病诊断和治疗。 ResNet和UNet是两个常用的深度学习模型,可以分别用于图像分类和图像分割任务。基于ResNet-UNet皮肤病变分割方法结合了两个模型的优势,能够更精确地分隔病变区域。 具体而言,该方法首先使用ResNet网络对输入的医学图像进行特征提取和分类,从而分辨出图像中的正常皮肤和病变区域。然后,使用UNet网络对病变区域进行分割,并生成对应的分割掩模。最后,将掩模应用到原始医学图像中,即可得到分割后的皮肤病变图像。 相较于传统的图像处理方法和其他分割模型,ResNet-UNet皮肤病变分割任务中表现出了更好的效果。这得益于它的深度学习模型结构、预训练权重参数和数据增强等特点,使得该方法能够更准确地识别和分割出皮肤病变区域,为临床医学提供更可靠的诊断依据。 ### 回答2: 皮肤病变分割是一个重要的医学领域问题,它的解决可以帮助医生更好地了解和诊断皮肤病变的情况。传统的皮肤病变分割方法主要基于人工标注和手动提取,效率低、精度差,不能满足人们对高效、准确、自动化的需求。 目前,基于深度学习皮肤病变分割方法备受关注。其中,resnet unet是一种常用的深度学习框架,它通过堆叠潜在的瓶颈模块,构建一个全卷积网络,可以高效地实现图像分割和识别。 针对皮肤病变分割应用场景,使用resnet unet网络可以有效提高皮肤病变分割的精度和效率。具体实现过程可以分为以下几步: 1.准备数据集:收集相关的皮肤图像数据,将其标注并分为训练集、验证集和测试集。 2.建立 resnet unet 网络:根据皮肤图像的分辨率,构建合适的 resnet unet 网络结构,采用双线性插值、dropout、BN神经元优化等方法,对模型进行优化。 3.训练模型:使用训练集和验证集进行模型训练,采用交叉熵损失函数,通过反向传播算法进行模型参数调节。 4.模型评估:使用测试集对模型进行评估,计算预测结果与真实标签之间的差异,从而评估模型的准确率和召回率。 5.应用模型:将训练好的模型应用到实际的皮肤病变图像分割场景中。 总之,基于resnet unet皮肤病变分割方法,可以有效地提高医生对皮肤病变的准确诊断率,进而提高皮肤病患者的治疗效果和生活质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值