今天我将分享如何用Tensorflow实现VNet模型,并实现基于MR图像的前列腺分割的例子。
1、VNet模型
大家看过我之前的文章,肯定对UNet模型已经非常熟悉了,其实VNet模型可以看做是从UNet模型演变过来的,网络模型结构如下所示。该结构出自2016年发表的一篇论文《V-Net:Fully Convolutional Neural Networks for Volumetric Medical Image Segmentation》,关于该网络具体的细节可以阅读原文,我这里就不多说了。
2、数据集
我们使用MICCAI Grand Challenge:Prostate MR Image Segmentation 2012的横向T2加权MR前列腺图像来做为我们的数据。下载地址:https://promise12.grand-challenge.org/download/
3、网络实现
我用Tensorflow实现了2D版本的VNet来进行分割实验(由于我的NVIDA显卡是GTX1080,原文中使用的是NVIDA显卡是 Tesla K40)。具体实现我已经分享到github上:https://github.com/junqiangchen/VNet。
4、结果
由于数据集很小只有50例病人图像,所以数据增强是必须的图像预处理步骤。下面是模型训练时损失函数变化的情况。
对增强后的图像分成训练集和测试集,训练完模型后,在测试集上进行测试,部分结果如下。
从上面可以看到整体分割效果还是不错的,感兴趣朋友们就自己动手试一试吧。如果大家觉得这个项目还不错,希望大家给个Star并Fork,可以让更多的人学习。如果碰到任何问题,随时留言,我会尽量去回答的。