首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BraTS18——多模态MR图像脑肿瘤分割挑战赛续6

BraTS18——多模态MR图像脑肿瘤分割挑战赛续6

作者头像
医学处理分析专家
发布2020-06-29 15:43:56
4830
发布2020-06-29 15:43:56
举报

今天将继续分享从网络结构上进行改进提出GAVNet模型来分割脑肿瘤。为了方便大家学习理解整个分割流程,我将整个流程步骤进行了整理,并给出每个步骤的结果,希望对大家有所帮助。

一、GridAttention模块介绍

在论文《Attention Guided Network for Retinal Image Segmentation》中,作者提到Unet跳跃连接模块不能有效地利用结构信息,可能会影响图像细分效果,因此将GridAttention模块替换Unet的跳跃连接模块来有效地保存结构信息。GridAttention模块结构如下所示。

作者公开的代码是pytorch版本,复现的tensorflow实现代码如下所示。

def gridattentionblock(theta_x, phi_g, in_channels, scope=None):
    with tf.name_scope(scope):
        kernal = (1, 1, 1, in_channels, in_channels)
        thetaW = weight_xavier_init(shape=kernal, n_inputs=kernal[0] * kernal[1] * kernal[2] * kernal[3],
                                    n_outputs=kernal[-1], activefunction='relu', variable_name=scope + 'thetaW')
        thetaB = bias_variable([kernal[-1]], variable_name=scope + 'thetaB')
        convtheta = conv3d(theta_x, thetaW) + thetaB

        phiW = weight_xavier_init(shape=kernal, n_inputs=kernal[0] * kernal[1] * kernal[2] * kernal[3],
                                  n_outputs=kernal[-1], activefunction='relu', variable_name=scope + 'phiW')
        phiB = bias_variable([kernal[-1]], variable_name=scope + 'phiB')
        convphi = conv3d(phi_g, phiW) + phiB

        f = resnet_Add(convtheta, convphi)
        f = tf.nn.relu(f)

        psiW = weight_xavier_init(shape=kernal, n_inputs=kernal[0] * kernal[1] * kernal[2] * kernal[3],
                                  n_outputs=kernal[-1], activefunction='relu', variable_name=scope + 'psiW')
        psiB = bias_variable([kernal[-1]], variable_name=scope + 'psiB')
        convpsi = conv3d(f, psiW) + psiB
        sofmax_psi_f = tf.nn.softmax(convpsi)
        return sofmax_psi_f

二、脑肿瘤图像分析与预处理

(1)、多模态MR脑肿瘤图像分析。

分析的过程基本上跟上一篇一致,这里就不多言了,直接从数据处理开始。

(2)、准备脑肿瘤分割数据。

首先将4个模态序列的MR原始图像进行合并生成4个通道的三维图像,原始图像大小都是(240x240x155x1),合并后大小是(240x240x155x4);

其次对Mask图像进行one-hot操作,将原始图像大小都是(240x240x155x1),生成大小是(240x240x155x4):通道0中非零值区域是背景区域,通道1中非零值是坏疽区域,通道2中非零值是浮肿区域,通道3中非零值是增强肿瘤区域;

最后对图像和Mask进行分块——取Patch操作,生成若干个(128,128,64)大小的图像和Mask,判断并输出非零的Mask和对应的图像。

三、脑肿瘤分割

(1)、搭建GAVNet3d模型,与VNet3d模型不同之处就是将拼接模块换成GA模块,网络输入大小是(128x128x64)。

(2)、loss采用的是多类Focalloss,具体实现可以点击原文链接查看具体代码。

(3)、训练的损失函数和精度如下图所示。

(4)、脑肿瘤分割推理过程:首先将原始flair,T1,T2,T1ce图像一起读取进来并进行z-score标准化操作,然后将四个模态图像合并成4通道三维图像(240x240x155x4),输入到网络中去,网络输入大小是(240x240x48x4),在z方向上分块输入并拼接最终得到(240x240x155)分割结果。

(5)、进行了结果测试,左边是金标准图像,右边是预测结果图像,如下所示。

了大家更好的学习,我把GAVNet网络代码分享到github上:

https://github.com/junqiangchen/VNetFamily

如果大家觉得这个项目还不错,希望大家给个Star并Fork,可以让更多的人学习。如果碰到任何问题,随时留言,我会尽量去回答的。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 最新医学影像技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档