问题标签 [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 回答
183 浏览

python - 如何使用python对相同颜色的图像区域进行分组并获取其坐标而忽略背景颜色

输入图像

我需要将该区域分组为绿色并获取其坐标,例如此输出图像。如何在python中做到这一点?

请参阅附图以获得更好的清晰度

0 投票
1 回答
235 浏览

tensorflow - 语义分割性能:多类与二类

我们正在为 PC 和移动平台开发一个语义分割应用程序。最初我们尝试了谷歌当前最先进的 DeeplabV3+ 框架。使用的数据集是 Pascal VOC,来自官方模型动物园的模型在精度方面(张量流)。模型在 PC 和移动端(转换为 coreml 和 tflite)的性能不能满足我们的要求。即使我们尝试了不同的模型优化和量化技术,我们也无法在两者之间取得很好的平衡性能和准确性。

然而,我们实际上只关心单个类的分割(在 PASCAL VOC 中)。但是模型计算每个类标签的分割掩码,这在我们的例子中似乎是多余的。所以,如果我们训练网络只有一个类(额外的背景),它会在速度方面提高性能吗?

0 投票
1 回答
806 浏览

python - OpenCV GrabCut 在 GC_INIT_WITH_MASK 模式下不更新掩码

我遵循这个 opencv 教程并使用我自己的图像和掩码来改进使用 opencv 抓取算法的分割,但结果掩码与初始掩码相同。

代码:

初始掩码:

在此处输入图像描述

图片:

在此处输入图像描述

谢谢!

0 投票
1 回答
2700 浏览

tensorflow - 如何调整从 Deeplab v3 获得的分割掩码?

Deeplab v3 返回一个缩小/调整大小的图像及其对应的掩码。如何调整图像的大小及其相应的蒙版以更好地适应我的规范。

0 投票
2 回答
1331 浏览

python - 损失函数正在减少,但度量函数保持不变?

我正在研究医学图像分割。我有两节课。0 级作为背景,1 级作为病变。由于数据集高度不平衡,我使用损失函数作为(1 - 加权骰子系数)和度量函数作为骰子系数。我已将数据集从 0-255 标准化为 0-1。我正在使用带有 tensorflow 后端的 keras 来训练模型。在训练 UNet++ 模型时,我的损失函数随着每个时期而减少,但我的指标保持不变。我无法理解为什么指标是恒定的,因为损失正在按预期减少?另外,我无法理解,为什么损失大于 1,因为骰子系数返回的值介于 0 和 1 之间?

这是我的损失函数:

而且,这是度量函数:

训练损失与时代:

训练损失与时代

这是示例代码:

0 投票
0 回答
115 浏览

python - Tensorflow:获取 4D 张量的最大条目

我有一个名为“标签”的张量,形状为 [-1, 256, 256, 10],其中包括大小为 256x256 的标记图像,从中我得到最后一个维度的三个最大条目,其中包含“tf.math.top_k”。

现在我想提取三个最大的条目,并使其每个都成为形状 [-1,256,256,1] 的张量,以将其显示为张量板中的图像。

该代码似乎有效,只是它没有给我每个批次的最大条目,而只是批次中的最后一个元素。

最终目标是找到“标签”的最后三个最大条目,并在 tensorflow 中将它们显示为大小为 [-1,256,256,1] 的图像。

0 投票
1 回答
213 浏览

amazon-web-services - 在标签中找到注释值 21。这大于类数

从项目来看,这似乎是一个非常明显的问题,对吧?

但对于我的一生,我发誓我有 21 个标签和 21 个课程。

所以,作为一个健全的检查,我想我会问!

  1. 我有大量训练图像 (640,640)
  2. 我浏览了它们并使用 DataTurks 来注释数据。
  3. 从那里我创建了一组 PNG 掩码,其中我使用 255 作为空白空间,然后使用棕褐色Int作为相应的数字来制作一个 NP 数组,然后转换为 png。
  4. 然后我按照这个sagemaker 示例进行分段,它似乎在我运行之前有效ss_model.fit

这是我开始遇到一些错误的地方。完整的日志可以在这个 Gist中看到

跳出来的第一个错误是:

label maps not provided, using defaults.

这很奇怪,因为我相信我已经在 S3 中正确加载了它们<bucket>/label_map/train_label_map.json

该标签映射看起来像这样:要点(也许它失败了,因为它不是有效的 JSON,但是我正在复制另一个 sagemaker 示例如何使用它?)

跳出的第二个错误是标题中的错误。

现在可能是我的面具完全错了(我对 ML 还是很陌生),但它们看起来像这样,但 640x640:

其中 255 为空,2 为注释。

这个错误可能是因为我没有包含255: "null"在 label_map 中吗?

任何见解都会非常有帮助!谢谢。

0 投票
3 回答
1376 浏览

tensorflow - Deeplab 到 TensorRT 的转换

将 Deeplab Tensorflow 模型转换为 TensorRT 模型会显着增加推理时间,我在代码中做错了什么?

在这里,我正在将 Tensorflow 图转换为 TensorRT 图并保存这个新的 TRT 模型:

在另一个脚本中,我再次加载这个 TRT 模型并用它进行语义分割预测,但它慢了大约 7 到 8 倍!这是第二个脚本:

任何想法我应该如何以加快推理的方式正确执行转换?

0 投票
1 回答
275 浏览

keras - 如何在迁移学习中添加连接?

我正在使用迁移学习进行语义分割。

直到这一步它工作正常。现在如何将此串联添加到网络中。

0 投票
1 回答
3632 浏览

image-processing - PyTorch 在加载图像/掩码文件以进行图像分割时如何处理标签?

我正在使用 PyTorch 开始一个图像分割项目。我在一个文件夹和 2 个子文件夹中有一个缩减的数据集 - “图像”用于存储图像,“掩码”用于蒙版图像。图像和蒙版是具有 3 个通道和 256x256 像素的 .png 文件。因为它是图像分割,所以必须逐个像素地进行标记。为简单起见,我目前只使用 2 个类。到目前为止,我实现了以下目标:

我能够通过以下方式将我的文件加载到“图像”或“掩码”类中

并将数据转换为张量

此“train_dataset”中的每个张量具有以下形状:

现在我需要将加载的数据输入 CNN 模型,并为此探索了 PyTorch DataLoader

我使用以下代码检查生成的张量的形状

并得到

形状似乎正确。但是,第一个问题是我得到了同一个文件夹的张量,由一些具有相同值 [0, 0] 的“y”张量表示。我希望它们都是 [1, 0]: 1 代表图像,0 代表蒙版。

第二个问题是,虽然当标签是整个图像时文档很清楚,但不清楚如何将其应用于像素级别的标签,我确信标签不正确。

正确标记此数据集的替代方法是什么?

谢谢你