如何解释 deepmask getTopScores 函数的输出

Posted

技术标签:

【中文标题】如何解释 deepmask getTopScores 函数的输出【英文标题】:How to interpret the output of deepmask getTopScores function 【发布时间】:2017-06-20 00:36:13 【问题描述】:

我正在使用 facebookresearch 的 deepmask 来分割图像。我正在尝试修改computeProposals.lua 模块来分割我自己的图像。关键函数是getTopProps。在下面的代码块中,它用于查找与***提案相关的掩码。

-- get top propsals
local masks,_ = infer:getTopProps(.2,h,w)

推断类来自InferDeepMask.lua 模块。 getTopProps 返回两件事:掩码和分数。分数来自 Infer:getTopScores() 函数。

问题:如何解释 getTopScores 函数的输出?

代码注释:

-- each line contains: the score value, the scaleNb and position(of M(:))

示例输出(转换为 numpy 数组):

[[  0.9942829    2.          26.           6.        ]
 [  0.9942829    3.          26.           6.        ]
 [  0.98620307   2.           1.          29.        ]
 [  0.98620307   3.           1.          29.        ]
 [  0.97150999   2.          19.           8.        ]
 [  0.97150999   3.          19.           8.        ]
 [  0.97141284   2.          18.           8.        ]
 [  0.97141284   3.          18.           8.        ]
 [  0.9639107    2.          15.          11.        ]
 [  0.9639107    3.          15.          11.        ]]

第一列显然是一个分数。什么是scaleNb,M(:)的位置是什么?它们不是蒙版上的像素位置。

NB 每个面具的形状都是 (336, 448)

谢谢!

【问题讨论】:

【参考方案1】:

通过查看代码:

分数不言自明

scaleNb 是采用的刻度的索引,即循环for k = 1,nScales do 中的索引k,其中包含不同刻度值的表由for scale = -3,2,.25 do table.insert(self.scales,scale) 行创建

M(:) 是棘手的部分。如果我正确理解代码,pos 是一个包含 nScales 的张量,并且每次选择规模为 k 的对象时,张量的 k-th 元素都会递增(它们按分数排序)。 temp(这是用于计算 xy 值的变量,这些值形成了他们所谓的 M(:)local temp=sortedIds[pos[scale]][scale] 行给出。 那包含什么?它似乎包含在已检测到的比例尺上的掩码位置。请看以下代码:

local sc=sc:view(h*w) local sS,sIds=torch.sort(sc,true) local sz = sS:size(1) sortedScores:narrow(2,s,1):narrow(1,1,sz):copy(sS) sortedIds:narrow(2,s,1):narrow(1,1,sz):copy(sIds)

sortedIds 似乎包含当前正在评估的分数的x,y 位置。

【讨论】:

【参考方案2】:

我相信(但尚未证明)输出是这样的:

    分数值 - 一个介于 0 和 1 之间的值,用于描述这是一个多么好的面具。 scaleNb - 一个值,表示用于生成遮罩的边界框的粗略大小。 & 4. position(of M(:)) - 将边界框的位置与原始图像的较小版本相关联的某种方式。

【讨论】:

以上是关于如何解释 deepmask getTopScores 函数的输出的主要内容,如果未能解决你的问题,请参考以下文章

[ZZ] 深度学习三巨头之一来清华演讲了,你只需要知道这7点

JavaScript解释器如何解释代码?

如何解释箱线图?

将 json 解释为字符串,如何将其解释为 json? [复制]

代码案例详解!如何让机器学习模型自解释!⛵

如何解释 TensorFlow 输出?