首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用caffe模型提取memnet热图?

如何用caffe模型提取memnet热图?
EN

Stack Overflow用户
提问于 2017-01-23 13:21:54
回答 1查看 848关注 0票数 1

我想通过使用Khosla等人的memnet caffemodel提取记忆分数和记忆热图。在链接查看prototxt模型时,我可以理解最终的内部产品输出应该是可记忆性评分,但是如何获得给定输入图像的可记忆性图呢?这里一些例子。

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-23 17:36:06

正如他们在论文1中所描述的那样,CNN (MemNet)为记忆输出一个真实值的输出。因此,他们制作的公开可得网络计算了这个单一的记忆分数,给出了一个输入图像,而不是一个热图。

在论文的第五节中,他们描述了如何使用经过训练的CNN来预测记忆热图:

为了生成可记忆的地图,我们只需放大图像并将MemNet应用于图像的重叠区域。我们这样做的多尺度图像和平均结果的可记忆性地图。

让我们考虑这里的两个重要步骤:

问题1:让CNN与任何输入大小一起工作。

为了使CNN在任意大小的图像上工作,它们使用了2.卷积层可以应用于任意大小的图像,从而产生较小或更大的输出,而内部积层具有固定的输入和输出大小。要使内部产品层与任何输入大小一起工作,您可以像应用卷积内核一样应用它。对于输出为4096的FC层,您可以将其解释为带有4096个特征映射的1x1卷积。

要在Caffe中做到这一点,您可以直接遵循净外科教程。创建一个新的.prototxt文件,用Convolution层替换InnerProduct层。现在,Caffe将不再识别.caffemodel中的权重,因为层类型不再匹配。因此,您将旧的net及其参数加载到Python中,加载新的网络,并将旧的参数分配给新的网络,并将其保存为一个新的.caffemodel文件。

现在,我们可以通过网络运行任意维度的图像(大于或等于227x227)。

问题2:生成热图

正如在论文1中所解释的,您将这个从问题1到同一图像的完全卷积网络在不同的尺度上应用。MemNet是一个经过重新训练的AlexNet,因此默认的输入维度是227x227。他们提到,451x451输入提供了8x8输出,这意味着应用层的步幅为28。所以一个简单的例子可以是:

  • 1级: 227x227→1x1。(我想他们肯定用这个秤。)
  • 等级2: 283→2x2。(胡乱猜测)
  • 等级3: 339x339→4x4。(胡乱猜测)
  • 4级: 451x451→8x8。(本文中提到了这个比额表。)

结果如下:

因此,您只需对这些输出进行平均值,就可以得到最终的8x8热图。从上面的图像中,应该清楚地知道如何平均不同规模的输出:您将不得不将低分辨率输出的平均值提高到8x8,然后才是平均值。

从论文中,我假设他们使用非常高分辨率的刻度,所以他们的热图将与最初的图像大小大致相同。他们写道,它需要一个“正常”的GPU 1。这是一个相当长的时间,这也表明他们很可能把输入的图像提升到相当高的维度。

书目:

1: A. Khosla、A. S. Raju、A. Torralba和A. Oliva,“大规模理解和预测图像记忆”,载于: ICCV,2015年。[PDF]

2: J. Long,E. Shelhamer和T. Darrell,“语义分割的完全卷积网络”,载于: CVPR,2015。[PDF]

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41807416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档