繁体   English   中英

在 Python 中使用 U-net 与 3 通道输入图像进行图像分割

[英]Using U-net in Python with 3-channel input images for image segmentation

我正在使用unet进行图像分割,使用此处概述的代码。

我的输入图像是 256x256x3。 而相应的分割掩码为 256x256。

我已将输入的大小更改为 Unet:

def unet(pretrained_weights = None,input_size = (256,256,3)):

并为 output 获得一个具有 256x256x1 层的网络

conv2d_144 (Conv2D)             (None, 256, 256, 1)  2           conv2d_143[0][0]  

这里查看完整的架构。

当我尝试运行 using.fit_generator 时,出现以下错误:

ValueError: Error when checking target: expected conv2d_144 to have shape (256, 256, 1) but got array with shape (256, 256, 3)

我能做些什么来解决这个问题? 请让我知道我可以提供哪些额外信息!

谢谢!

PS:我在输出中有三个类,这可能是原因吗?

您必须决定是否需要图像的 RGB 或灰度输入:将图像转换为灰度或更改转换层。 另一种选择是将 256x256x3 输入展平为一维并将其用作输入。

实际上,我已经通过一次性编码我的分割掩码并将最后一层的激活 function 更改为 softmax 来修复它,并使用过滤器大小来匹配类的数量!

https://github.com/Mkeel1ng/MULTI-CHANNEL-UNET

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM