MR图像的前列腺分割,但是2D版本的VNet是存在错误分割问题的,所以今天我将分享如何用Tensorflow实现3D版本的VNet来进行前列腺分割,以此来解决2D版本的VNet中的问题。

1、网络实现

    基于Tensorflow实现了3D版本的VNet来进行分割实验(我用的是NVIDA显卡:GTX1080)。

Tensorflow入门教程(二十)——基于VNet3D的前列腺分割案例_github


具体实现我已经分享到github上:

​https://github.com/junqiangchen/VNet3D。​

2、数据集下载和处理

Tensorflow入门教程(二十)——基于VNet3D的前列腺分割案例_2d_02

   我们使用MICCAI Grand Challenge:Prostate MR Image Segmentation 2012的横向T2加权MR前列腺图像来做为我们的数据。下载地址:​https://promise12.grand-challenge.org/download/。​

    下载完成后,我们需要对图像进行一些预处理操作,首先需要对图像进行线性插值,将图像都插值到相同的尺寸大小,由于计算机硬件限制,我们还需要对图像进行取patch操作(原始图像大小:512x512x64,取完patch后图像大小:128x128x64)。为了方便大家学习,我已经将处理完成的图像分享到百度云盘上。

3、训练结果

   下面是模型训练时损失函数变化的情况。

Tensorflow入门教程(二十)——基于VNet3D的前列腺分割案例_github_03

   为了更直观看到模型训练时的变化的情况,我们每隔一定次数将预测图像和GroundTruth图像进行显示对比。

0-epoch:GroundTruth图像

Tensorflow入门教程(二十)——基于VNet3D的前列腺分割案例_github_040-epoch:预测图像

Tensorflow入门教程(二十)——基于VNet3D的前列腺分割案例_3d_05

1000-epoch:GroundTruth图像

Tensorflow入门教程(二十)——基于VNet3D的前列腺分割案例_3d_06

1000-epoch:预测图像

Tensorflow入门教程(二十)——基于VNet3D的前列腺分割案例_2d_07

10000-epoch:GroundTruth图像

Tensorflow入门教程(二十)——基于VNet3D的前列腺分割案例_2d_08

10000-epoch:预测图像

Tensorflow入门教程(二十)——基于VNet3D的前列腺分割案例_2d_09

4、结果

 训练完模型后,在测试集上进行测试,部分结果如下。

Tensorflow入门教程(二十)——基于VNet3D的前列腺分割案例_2d_10

Tensorflow入门教程(二十)——基于VNet3D的前列腺分割案例_github_11

从上面可以看到3D版本的VNet不仅整体分割效果不错,而且没有出现错误分割。感兴趣的朋友可以在github上看到详细的过程,如果大家觉得这个项目还不错,希望大家给个Star并Fork,可以让更多的人学习。如果碰到任何问题,随时留言,我会尽量去回答的。