问题标签 [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.
tensorflow - 语义分割性能:多类与二类
我们正在为 PC 和移动平台开发一个语义分割应用程序。最初我们尝试了谷歌当前最先进的 DeeplabV3+ 框架。使用的数据集是 Pascal VOC,来自官方模型动物园的模型在精度方面(张量流)。模型在 PC 和移动端(转换为 coreml 和 tflite)的性能不能满足我们的要求。即使我们尝试了不同的模型优化和量化技术,我们也无法在两者之间取得很好的平衡性能和准确性。
然而,我们实际上只关心单个类的分割(在 PASCAL VOC 中)。但是模型计算每个类标签的分割掩码,这在我们的例子中似乎是多余的。所以,如果我们训练网络只有一个类(额外的背景),它会在速度方面提高性能吗?
tensorflow - 如何调整从 Deeplab v3 获得的分割掩码?
Deeplab v3 返回一个缩小/调整大小的图像及其对应的掩码。如何调整图像的大小及其相应的蒙版以更好地适应我的规范。
python - 损失函数正在减少,但度量函数保持不变?
我正在研究医学图像分割。我有两节课。0 级作为背景,1 级作为病变。由于数据集高度不平衡,我使用损失函数作为(1 - 加权骰子系数)和度量函数作为骰子系数。我已将数据集从 0-255 标准化为 0-1。我正在使用带有 tensorflow 后端的 keras 来训练模型。在训练 UNet++ 模型时,我的损失函数随着每个时期而减少,但我的指标保持不变。我无法理解为什么指标是恒定的,因为损失正在按预期减少?另外,我无法理解,为什么损失大于 1,因为骰子系数返回的值介于 0 和 1 之间?
这是我的损失函数:
而且,这是度量函数:
训练损失与时代:
这是示例代码:
python - Tensorflow:获取 4D 张量的最大条目
我有一个名为“标签”的张量,形状为 [-1, 256, 256, 10],其中包括大小为 256x256 的标记图像,从中我得到最后一个维度的三个最大条目,其中包含“tf.math.top_k”。
现在我想提取三个最大的条目,并使其每个都成为形状 [-1,256,256,1] 的张量,以将其显示为张量板中的图像。
该代码似乎有效,只是它没有给我每个批次的最大条目,而只是批次中的最后一个元素。
最终目标是找到“标签”的最后三个最大条目,并在 tensorflow 中将它们显示为大小为 [-1,256,256,1] 的图像。
amazon-web-services - 在标签中找到注释值 21。这大于类数
从项目来看,这似乎是一个非常明显的问题,对吧?
但对于我的一生,我发誓我有 21 个标签和 21 个课程。
所以,作为一个健全的检查,我想我会问!
- 我有大量训练图像 (640,640)
- 我浏览了它们并使用 DataTurks 来注释数据。
- 从那里我创建了一组 PNG 掩码,其中我使用 255 作为空白空间,然后使用棕褐色
Int
作为相应的数字来制作一个 NP 数组,然后转换为 png。 - 然后我按照这个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 中吗?
任何见解都会非常有帮助!谢谢。
tensorflow - Deeplab 到 TensorRT 的转换
将 Deeplab Tensorflow 模型转换为 TensorRT 模型会显着增加推理时间,我在代码中做错了什么?
在这里,我正在将 Tensorflow 图转换为 TensorRT 图并保存这个新的 TRT 模型:
在另一个脚本中,我再次加载这个 TRT 模型并用它进行语义分割预测,但它慢了大约 7 到 8 倍!这是第二个脚本:
任何想法我应该如何以加快推理的方式正确执行转换?
keras - 如何在迁移学习中添加连接?
我正在使用迁移学习进行语义分割。
直到这一步它工作正常。现在如何将此串联添加到网络中。
image-processing - PyTorch 在加载图像/掩码文件以进行图像分割时如何处理标签?
我正在使用 PyTorch 开始一个图像分割项目。我在一个文件夹和 2 个子文件夹中有一个缩减的数据集 - “图像”用于存储图像,“掩码”用于蒙版图像。图像和蒙版是具有 3 个通道和 256x256 像素的 .png 文件。因为它是图像分割,所以必须逐个像素地进行标记。为简单起见,我目前只使用 2 个类。到目前为止,我实现了以下目标:
我能够通过以下方式将我的文件加载到“图像”或“掩码”类中
并将数据转换为张量
此“train_dataset”中的每个张量具有以下形状:
现在我需要将加载的数据输入 CNN 模型,并为此探索了 PyTorch DataLoader
我使用以下代码检查生成的张量的形状
并得到
形状似乎正确。但是,第一个问题是我得到了同一个文件夹的张量,由一些具有相同值 [0, 0] 的“y”张量表示。我希望它们都是 [1, 0]: 1 代表图像,0 代表蒙版。
第二个问题是,虽然当标签是整个图像时文档很清楚,但不清楚如何将其应用于像素级别的标签,我确信标签不正确。
正确标记此数据集的替代方法是什么?
谢谢你