问题标签 [semantic-segmentation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2072 浏览

python - model.predict() 函数对语义分割的结果是什么意思?

我使用分割模型库进行多类(在我的情况下为 4 类)语义分割。该模型(具有“resnet34”主干的 UNet)使用 3000 个 RGB(224x224x3)图像进行训练。准确率约为 92.80%。

1) 为什么 model.predict() 函数需要 (1,224,224,3) 形状的数组作为输入?即使在Keras 文档中我也没有找到答案。实际上,下面的代码正在运行,我对此没有任何问题,但我想了解原因。

2)predictions是一个 (1,224,224,3) 形状的 numpy 数组。它的数据类型是float32并且包含一些浮点数。这个数组中的数字是什么意思?我如何可视化它们?我的意思是,我假设结果数组将包含每个像素的 4 个类标签(从 0 到 3)之一,然后我将为每个类应用颜色图。换句话说,结果应该是一个预测图,但我没有得到它。为了更好地理解我对预测图的意思,请访问Jeremy Jordan 关于语义分割的博客

3)我最终想做的就像Github:mrgloom - Semantic Segmentation Categorical Crossentropy Examplevisualy_inspect_result函数中所做的。

0 投票
1 回答
181 浏览

amazon-web-services - 亚马逊 AWS 和 S3 实例的语义分割

这可能是一个简单的问题,但我现在已经被困了一段时间。我想在亚马逊 AWS 上训练 FCN。为此,我想将此示例中使用的过程(https://github.com/awslabs/amazon-sagemaker-examples/blob/master/introduction_to_amazon_algorithms/semantic_segmentation_pascalvoc/semantic_segmentation_pascalvoc.ipynb)与我自己的数据集一起使用。

与该过程相反,我将我的训练和注释图像(如 .png)保存在一个 S3 存储桶中,其中包含四个文件夹(Training、TrainingAnnotation、Validation、ValidationAnnotation)。Training 和 Annotation 文件夹中的文件具有相同的名称。

我用以下代码训练了我的模型:

错误消息是:

ValueError:训练作业 ss-notebook-demo-2019-07-15-06-42-25-784 出错:失败原因:ClientError:训练通道为空。

有人知道本准则有什么问题吗?

谢谢

西蒙

0 投票
1 回答
290 浏览

tensorflow - 将keras层UpSampling2D部署到tensorRT

Kears/TensorFlow 层UpSampling2D()无法部署到 TensorRT(已知行为)。

我试图通过用UpSampling2D()其他具有并行行为的 Keras 层替换该层来找到解决方案。

理论上Conv2DTranspose()应该通过设置特定的权重并在训练中固定层的权重来完成这项工作。

我正在寻找有关如何做到这一点的帮助。

0 投票
1 回答
56 浏览

machine-learning - 在执行语义分割任务时,我应该减去图像均值吗?为什么或者为什么不?

对于语义分割任务中的图像,我应该减去图像均值还是除以 255?为什么或者为什么不?

0 投票
3 回答
3440 浏览

python - 使用 TensorRT 部署语义分割网络(U-Net)(不支持上采样)

我正在尝试使用 TensorRT 部署经过训练的 U-Net。该模型是使用 Keras 训练的(使用 Tensorflow 作为后端)。代码和这个很相似:https ://github.com/zhixuhao/unet/blob/master/model.py

当我将模型转换为 UFF 格式时,使用如下代码:

我会收到以下警告:

我试图通过用上采样(双线性插值)和转置卷积替换上采样层来避免这种情况。但是转换器会给我带来类似的错误。我检查了https://docs.nvidia.com/deeplearning/sdk/tensorrt-support-matrix/index.html似乎还不支持所有这些操作。

我想知道这个问题是否有任何解决方法?TensorRT 是否有任何其他格式/框架喜欢并支持上采样?或者是否可以用其他一些支持的操作来替换它?

我还在某处看到可以添加自定义操作来替换 TensorRT 不支持的操作。虽然我不太确定工作流程会如何。如果有人可以指出自定义图层的示例,那也将非常有帮助。

先感谢您!

0 投票
1 回答
1046 浏览

keras - 添加层到 resnet[keras] 的顶部:ValueError: Input 0 is incompatible with layer conv2d_transpose_1: expected ndim=4, found ndim=2

我们导入了一个在 ImageNet 上预训练的 ResNet50 模型,并希望在其顶部添加一些反卷积层以实现语义分割。

我们使用 google colaboratory 和 Keras 和 Tensorflow 作为后端。

我们收到以下错误:

“ValueError:输入 0 与层 conv2d_transpose_1 不兼容:预期 ndim=4,发现 ndim=2”

看起来我们的 resnet 模型的输出(没有最后两层)是一个单维向量,但我们希望它是一个三维向量。

这是弹出后“resnet_model.summary()”的最终输出部分

我们如何解决这个问题?

0 投票
1 回答
2909 浏览

python - 图像预处理和数据增强应该如何用于语义分割?

我有一个不平衡的小数据集,其中包含 4116 个 224x224x3 (RGB) 航拍图像。由于数据集不够大,我很可能会遇到过拟合问题。图像预处理和数据增强有助于解决这个问题,如下所述。

“过度拟合是由于要学习的样本太少,导致您无法训练可以泛化到新数据的模型。给定无限数据,您的模型将暴露于手头数据分布的每个可能方面:您永远不会过拟合。数据增强采用从现有训练样本中生成更多训练数据的方法,通过大量随机变换来增强样本,从而产生看起来可信的图像。”

Deep Learning with Python by François Chollet,第 138-139 页,5.2.5 使用数据增强

我已阅读Medium - Image Data Preprocessing for Neural Networks并查看了斯坦福的CS230 - 数据预处理CS231 - 数据预处理课程。它在SO question中再次突出显示,我知道没有“一刀切”的解决方案。这就是迫使我问这个问题的原因:

“因为我们想要实现高空间分辨率,所以没有使用翻译增强。”

参考:Researchgate - 使用深度卷积神经网络对城市遥感图像中的小物体进行语义分割和不确定性建模



我知道我将使用Keras - ImageDataGenerator 类,但不知道在小对象任务的语义分割中使用哪些技术和哪些参数。有人可以启发我吗?提前致谢。:)

0 投票
2 回答
552 浏览

ios - 如何使用分割模型输出张量?

我正在尝试在 iOS 上运行分段模型,我对如何正确使用输出张量有几个问题。

这里是我正在使用的模型的链接: https ://www.tensorflow.org/lite/models/segmentation/overview

当我运行这个模型时,我得到了尺寸为:1 x 257 x 257 x 21 的输出张量。为什么我得到 21 作为最后一个维度?看起来我们正在获得每个像素的类分数。我们是否需要在这里找到 argmax 才能得到正确的类值?

但为什么只有 21 节课?我在想它应该包含更多。在哪里我可以找到哪个值对应于某个类的信息。在 ImageClassification 示例中,我们有一个包含 1001 个类的 label.txt。

基于 ImageClassification 示例,我尝试解析张量:首先将其转换为大小为 1 387 029 (21 x 257 x 257) 的浮点数组,然后使用以下代码逐像素创建图像:

这是我得到的结果:

在此处输入图像描述

你可以看到质量不是很好。我错过了什么?

CoreML 的分割模型(https://developer.apple.com/machine-learning/models/)在同一个例子中效果更好:

在此处输入图像描述

0 投票
3 回答
385 浏览

tensorflow - 为什么用 unet 重塑和置换进行分割?

我正在用unet做图像语义分割工作。我对像素分类的最后一层感到困惑。Unet代码是这样的:

我可以在不使用这样的 Permute 的情况下进行重塑吗?

更新:

使用直接reshape方式时,我发现训练结果不正确:

我的groundtruth是这样生成的:

为什么直接reshape不起作用?

0 投票
0 回答
172 浏览

python - Keras 中的 IOU 度量实现

我已经这样实现了 IOU:

并像这样使用它:

但即使我提供gtpr相同的图像(cityscapes 500 验证图像集),Total IOU 也不合理:

我知道某些类没有出现在某些图像中,但是文章如何报告 MioU 超过 70%?