【发布时间】:2017-03-12 15:49:36
【问题描述】:
我正在尝试从 Recurrent models of visual attention paper (https://arxiv.org/abs/1406.6247) 中实现 glimpse sensor。
基本上,我需要从二维 numpy 数组中提取一个矩形裁剪。对单个输入执行此操作没有问题,但我似乎无法弄清楚如何使用批处理执行此操作。
所以输入是:
- 图像 - 样本 x 高 x 宽数组
- 位置 - 样本 x 2 数组 - 每个样本图像的 x、y 坐标集
输出应该是某个大小的每个样本裁剪区域(例如 100x100),其中裁剪的左上角由相应的位置条目指定,因此它应该是样本 x 100 x 100。现在我忽略了所有极端情况,因此可以假设裁剪完全包含在图像中,并且位置已经采用可用于 numpy 索引的格式。
对于单个图像,任务很简单:
image[location[0]:location[0]+100, location[1]:location[1]+100]
但将其应用于批处理有点困难。正在做
image[:, location[:,0]:location[:,0]+100, location[:,1]:location[:,1]+100]
不起作用,因为切片不接受 numpy 数组。
为任意作物大小提供全套索引似乎对我也不起作用。
另一种选择是循环遍历批处理并分别从每个图像中提取裁剪,但我不确定这会有多有效。
那么,这种索引在 numpy 中是否可能不使用循环?
【问题讨论】:
标签: python numpy deep-learning