MR图像的前列腺分割,但是2D版本的VNet是存在错误分割问题的,所以今天我将分享如何用Tensorflow实现3D版本的VNet来进行前列腺分割,以此来解决2D版本的VNet中的问题。
1、网络实现
基于Tensorflow实现了3D版本的VNet来进行分割实验(我用的是NVIDA显卡:GTX1080)。
具体实现我已经分享到github上:
https://github.com/junqiangchen/VNet3D。
2、数据集下载和处理
我们使用MICCAI Grand Challenge:Prostate MR Image Segmentation 2012的横向T2加权MR前列腺图像来做为我们的数据。下载地址:https://promise12.grand-challenge.org/download/。
下载完成后,我们需要对图像进行一些预处理操作,首先需要对图像进行线性插值,将图像都插值到相同的尺寸大小,由于计算机硬件限制,我们还需要对图像进行取patch操作(原始图像大小:512x512x64,取完patch后图像大小:128x128x64)。为了方便大家学习,我已经将处理完成的图像分享到百度云盘上。
3、训练结果
下面是模型训练时损失函数变化的情况。
为了更直观看到模型训练时的变化的情况,我们每隔一定次数将预测图像和GroundTruth图像进行显示对比。
0-epoch:GroundTruth图像
0-epoch:预测图像
1000-epoch:GroundTruth图像
1000-epoch:预测图像
10000-epoch:GroundTruth图像
10000-epoch:预测图像
4、结果
训练完模型后,在测试集上进行测试,部分结果如下。
从上面可以看到3D版本的VNet不仅整体分割效果不错,而且没有出现错误分割。感兴趣的朋友可以在github上看到详细的过程,如果大家觉得这个项目还不错,希望大家给个Star并Fork,可以让更多的人学习。如果碰到任何问题,随时留言,我会尽量去回答的。