卷积神经网络与3D图像

8

我对将CNN应用于3D图像(即医学数据)很感兴趣。 TensorFlow是否已经包含了这个功能?

4个回答

13

TensorFlow现在在主分支中支持 3D卷积 3D池化

您可以将其与形状为[batch_size,depth,height,width,channels]的5D张量一起使用。


3D转置卷积(反卷积)怎么样? - Kendall Weihe
1
幸运的是,目前有一个pull request正在进行中,将会添加对此的支持。同时请参考这个问题 - Olivier Moindrot
你怎么这么擅长tensorflow的?哈哈,你总是对问题一针见血!谢谢! - Kendall Weihe
哈哈,我使用 TensorFlow 工作,所以随着时间的推移,智慧也随之而来 ;) - Olivier Moindrot
这些链接现在返回404错误,但我不确定如何最好地更新它们。我找到了这个例子:https://gist.github.com/dansileshi/21b52113ce0ecb6c0f56d6f7534bbaca - Chad McGrath

3
不,当前的实现是针对2D图像的(例如nn.conv2d函数)。它们支持多个通道(例如RGB),并且可以将3D图像表示为多通道2D图像(每个z-slice是一个通道),但这并不总是理想的。此外,使用这些方法需要大量的图像数据,而在医学领域通常很难获取。
更新:TensorFlow和Theano(随后是Keras、Lasagne等)现在都支持如上所述的3D操作。需要注意的是,3D操作比类似的2D操作需要更多的计算和内存资源。

它与conv2D有何不同?在我看来,Conv3D是批处理+图像,它创建了批处理+特征图。 在conv2d中,我们有带通道的图像,它创建了kxWxH特征图。 你有x张图片吗?那么就会创建x个特征图。 我错了吗? - Hossein
一个conv2d是一个4维矩阵(图像数量,通道数量,x宽度,y宽度),而conv3d操作则是一个5维矩阵。 - kmader
1
是的,没错,我只是想知道操作是否相同,说实话我不知道如何进行操作。当我们谈论时间步长时,这是什么意思?我们如何对时间维度进行步幅?我知道5帧连续称为时间维度。(图像计数、深度、通道计数、x宽度、y宽度),其中深度为5。表示有5帧,比如200x200x3。那么在这方面步幅有什么意义呢? - Hossein

1

0
如果您想使用卷积神经网络(CNN)处理3D图像,一个可行的替代方案是使用Caffe PR。 您需要将数据转换为HDF5格式。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接