簡體   English   中英

將2D(類數,像素數)輸出的圖像分割模型重塑為3D通道最后一張圖像的正確方法是什么

[英]what is the correct way to reshape image segmentation model output from 2D (num of classes, num of pixels) to 3D channel last images

我正在使用keras和python進行衛星圖像分割。 據我了解,要獲得圖像分割的(像素級)預測,模型會將尺寸(-1,num_classes,height,width)的圖層重塑為(-1,num_classes,height * width)的形狀,然后再應用激活功能,例如softmax或Sigmoid。 我的問題是在此步驟后以通道優先或通道末尾的格式恢復圖像? 示例代碼

o = (Reshape((  num_classes , outputHeight*outputWidth)))(o)
o = (Permute((2, 1)))(o)
o = (Activation('softmax'))(o)

我試圖在最后添加以下圖層到模型

o = (Reshape((outputHeight, outputWidth, num_classes)))(o)

這個對嗎? 這會以與原始順序相同的順序重新定向圖像像素嗎? 另一種選擇是在單個圖像上使用以下代碼。

array.reshape(height, width, num_classes)

我應該使用哪種方法來獲得像素級分割結果?

不,如果你有興趣的圖像分割, 應該壓平,然后重塑你的張量。 而是使用完全卷積模型,例如U-Net 您可以在github上找到很多示例實現,例如, 這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM