weixin_44022013 2020-03-30 22:01 采纳率: 50%
浏览 1638

用Unet进行MRI脑肿瘤(Brats18数据)分割得到一种奇怪的结果,请问我可能是哪里出错了吗?

问题是自己的结果与预测相差太大了,没找到具体原因,想请大佬帮帮忙,帮我看下哪里可能有问题,以下是我怀疑有问题的某些具体步骤,小白感激不尽!!!

label标签有4种,分别是0(背景),1,2,4。

我首先对4种模态(T1,T2,T1ce,Flair)同一z轴位置的切片做成一个(4,240,240)的.npy文件,unet输入和输出的都是(1,4,240,240),在unet的最后一层输出用了softmax进行多标签分类。

不知道做法对不对,我是这样进行onehot:把label中像素为标签4的值变成3,用一个(4,240,240)的张量,它每个通道的矩阵元素根据是否为具体某一标签(例如元素2)变成0-1,这样一个通道只与一个标签有关。

损失函数用到是MutiDiceloss,就是每个标签Diceloss之和。

在dataset中我没有用transforms.compose代码中的transforms.ToTensor(),也包括其他数据增强代码。

优化函数用的是带momentum的SGD

计算评价指标Dice要用到的混淆矩阵时,我用下面代码将unet输出结果变成了一个通道240x240的标签图(每个像素的值是其最大概率的通道数值0,1,2,3)

pred=outputs.contiguous().view(-1, args.num_classes).max(1)[1].view(b, h, w)

原图像:
图片说明
标签:
图片说明

预测输出结果:
图片说明

  • 写回答

1条回答 默认 最新

  • zqbnqsdsmd 2020-03-31 22:29
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 matlab实现基于主成分变换的图像融合。
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊