【问题标题】:SegNet results of train set (test via test_segmentation.py)训练集的 SegNet 结果(通过 test_segmentation.py 测试)
【发布时间】:2016-10-10 10:46:31
【问题描述】:

我在自己的数据集(Segnet tutorial)上运行 SegNet。我通过test_segmentation.py 看到了很好的结果。 我的问题是我想看到真正的净结果,而不是 test_segmentation 自己的着色(通过类)。 例如,如果我用 2 个类训练了网络,那么在训练之后我不仅会看到 2 种颜色(正如我们在类中看到的那样),而且我们会看到真正的网络颜色分割([0.22,0.19,0.3.. ..) 如网络所见,更亮和更暗] 我希望我能很好地解释自己。感谢您的帮助。

【问题讨论】:

    标签: python-2.7 neural-network caffe conv-neural-network


    【解决方案1】:

    您可以使用 python 脚本来实现您想要的。看看this script

    命令out = out['argmax'] 提取原始输出,因此您可以根据需要获得具有“更亮和更暗”值的分割图。

    【讨论】:

    • 它不正确。您应该看到图像的原样。不采取最大/平均/等。争论。在这里查看我的答案。
    【解决方案2】:

    当您说“真正的”净颜色分割时,我会假设您指的是概率图。实际上,最后一层将为每个班级提供一张地图;如果您检查 inference.py 中的函数 predict,它们会采用 argmax;那是概率最高的通道(代表类别)。如果你想得到这些地图,你只需要得到数据而不计算 argmax;类似:

    predicted = net.blobs['prob'].data
    

    【讨论】:

    • 是的。您必须从“prob”中获取数据,但如果您想看到与图像矩阵中相同的像素,您必须在cmincmax 范围内。在这里查看我的答案。
    【解决方案3】:

    我解决了。解决方案是在 scipy 保存方法中将 cmincmax 的范围从 0 到 1。例如:scipy.misc.toimage(output, cmin=0.0, amax=1).save(/path/.../image.png)

    【讨论】:

      猜你喜欢
      • 2019-03-02
      • 1970-01-01
      • 2013-03-04
      • 1970-01-01
      • 2020-05-18
      • 2017-11-01
      • 2013-06-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多