上一篇分享了VNet改进模型NestedVNet(VNet++)网络,今天继续分享VNet改进模型DualAttentionVNet(DAVNet)。
1、VNet模型
大家看过我之前的文章,肯定对VNet模型已经非常熟悉了,该结构出自2016年发表的一篇论文《V-Net:Fully Convolutional Neural Networks for Volumetric Medical Image Segmentation》,关于该网络具体的细节可以阅读原文,我这里就不多说了。
2、PositionAttention和ChannelAttention模块
PositionAttention和ChannelAttention模块的设计来自2019年发表的论文《Dual Attention Network for Scene Segmentation》,其中PositionAttention模块引入了自注意机制来捕获特征图中任意两点位置的空间依赖性;ChannelAttention模块也引入自注意机制来捕获通任意两通道图的通道依赖性,并对所有通道图加权求和来更新每个通道图。具体模块实现细节,可以阅读原文,这里就不多说了。
3、DualAttentionVNet(DAVNet)网络
《Dual Attention Network for Scene Segmentation》文章中结合了PositionAttention和ChannelAttention模块,在空间和通道维度上来捕获全局特征依赖性,如下图所示,基础网络是孔洞残差网络输出得到特征图,然后再经过两个并行的PositionAttention模块和ChannelAttention模块,最后将两个Attention模块的输出进行融合,从而得到更好的特征表达。采用该思想,在VNet的跳跃连接部分先加入并行的PositionAttention和ChannelAttention模块,然后将两个模块输出结果融合输出。
4、DualAttentionVNet肾器官分割训练效果
我是在1080ti显卡上跑的,所以batchsize设置成2,如果大家出现OOM错误,请修改该参数,如果显存比11G还大的话,也可以设置大一些。下面是训练loss结果及精度结果。
5、在测试数据上分割结果
前面也说过,训练是用0-199例数据来训练,测试是在200-209上来测试。在测试的时候,我们直接输入原始图像大小,例如512x512x32,将训练好的模型导入后,将512x512xn(可能是几百)的输入按z方向取32,不断输入到模型中得到最后肾器官分割结果。分割结果如下面视频所示,红色轮廓是金标准结果,蓝色轮廓是预测结果。平均dice值为0.94482,相比较VNet结果,结果没有明显提升。