上一篇分享了VNet改进模型——AttentionGatedVNet网络,今天将继续分享VNet改进模型NestedVNet(VNet )网络。
1、VNet模型
大家看过我之前的文章,肯定对VNet模型已经非常熟悉了,该结构出自2016年发表的一篇论文《V-Net:Fully Convolutional Neural Networks for Volumetric Medical Image Segmentation》,关于该网络具体的细节可以阅读原文,我这里就不多说了。
2、Nested模块
Nested模块的思想来自2018年发表的论文《UNet : A Nested U-Net Architecture for Medical Image Segmentation》,该文章指出原始Unet网络中的跳跃连接是将解码模块的特征与编码模块的特征直接拼接会存在语义差异,文章通过使用嵌套密连接将解码模块的特征与编码模块的特征进行拼接,这样做的目的是为了减少解码模块的特征与编码模块的特征的语义差异,从而使网络的优化问题变得更简单。
3、NestedVnet(VNet )网络
NestedVnet和VNet的区别在于三点:(1)、在跳跃连接处采用卷积层操作来减少解码特征与编码特征的语义差异;(2)、在跳跃连接处还采用了密连接方式提高梯度传输;(3)、采用深度监督的方式来进行训练, 结构示意图如下所示,跳跃连接部分公式表达如下所示,详细说明可以点击原文链接。
4、NestedVnet肾器官分割训练效果
我是在1080ti显卡上跑的,所以batchsize设置成2,如果大家出现OOM错误,请修改该参数,如果显存比11G还大的话,也可以设置大一些。下面是训练loss结果及精度结果。
5、在测试数据上分割结果
前面也说过,训练是用0-199例数据来训练,测试是在200-209上来测试。在测试的时候,我们直接输入原始图像大小,例如512x512x32,将训练好的模型导入后,将512x512xn(可能是几百)的输入按z方向取32,不断输入到模型中得到最后肾器官分割结果。分割结果如下面视频所示,红色轮廓是金标准结果,黄色轮廓是预测结果。平均dice值为0.8966,相比较VNet结果,结果反而没有那么好。