【问题标题】:DeepLabV3, segmentation and classification/detection on coralDeepLabV3,珊瑚的分割和分类/检测
【发布时间】:2020-08-09 09:27:42
【问题描述】:

我正在尝试使用 DeepLabV3 在 Coral 上进行图像分割和对象检测/分类。

我能够在珊瑚上使用 DeepLabV3 成功运行 semantic_segmentation.py 示例,但这仅显示了一个对象被分割的图像。

我看到它为颜色分配了标签 - 我如何将我根据模型的标签信息制作的 labels.txt 文件与这些颜色相关联? (我怎么知道哪个颜色对应哪个标签)。

当我尝试运行 engine = DetectionEngine(args.model)

使用 deeplab 模型,我得到了错误

ValueError: 检测模型应该有 4 个输出张量!这个模型 有 1 个。

我猜这种方式是错误的做法?

谢谢!

【问题讨论】:

    标签: tensorflow image-segmentation google-coral deeplab


    【解决方案1】:

    我相信您已经就相同的问题与我们联系过。我只是想把答案贴在这里供其他人参考:

    “检测模型通常有 4 个输出张量来指定位置、类别、分数、数量和检测。您可以在此处阅读更多信息。相反,分割模型只有一个输出张量,所以如果您以同样的方式对待它,您很可能会尝试访问错误的内存区域。如果您想在同一个图像上执行所有三个任务,我的建议是创建 3 个不同的引擎并将图像输入每个引擎。唯一的问题是每次切换模型时,模型加载到 TPU 上可能会出现数据传输瓶颈。我们这里有一个示例,说明如何在单个 TPU 上运行 2 个模型,您应该能够将其修改为采用 3 个模型。”

    在最后一个注释上,我刚刚看到你添加了:

    如何将我根据模型的标签信息制作的 labels.txt 文件与这些颜色相关联

    我只是不认为这是您可以为分段模型做的事情,但也许我只是对您的查询感到困惑?

    以对象检测模型为例,有 4 个输出张量,第二个张量为您提供与某个类关联的 id 数组,您可以将其映射到标签文件。分割模型只给出对象周围的像素。

    [编辑] 道歉,看起来我是对分割模型感到困惑的人。 引用我的大学:) "你有兴趣知道标签的名字,你可以从Semantic_segmentation.py的结果数组中找到该标签对应的整数。其中result是每个像素的分类数据。

    例如;

    如果您在以 bird.jpg 作为输入的情况下打印结果数组,您会发现很少有像素值为 3,这是 pascal_voc_segmentation_labels.txt 中对应的第 4 个标签(因为索引从 0 开始)。”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-09
      • 2021-11-19
      • 2011-11-05
      • 2013-11-04
      相关资源
      最近更新 更多