以可变的方式对给定索引矩阵的矩阵重映射变换进行矢量化

时间:2018-06-01 22:55:50

标签: python numpy scipy keras keras-layer

我正在研究图像识别系统,作为FCN的一部分,我需要转换图像。我正在使用python,Keras和tensorflow后端。

假设我有形状图像(512,512,3)和形状矩阵(512,512,2),图像中的每个像素都保存x和y坐标,这些像素应该位于变换图像中。请参阅下面的一个小频道。

img = [[0, 1, 2],   coords = [[2, 1, 0],    out = [[7, 6, 0],
       [3, 4, 5],             [1, 1, 0],           [5, 4, 3],
       [6, 7, 8]]             [1, 0, 2]],          [0, 0, 8]]

                             [[1, 1, 1],
                              [2, 1, 1],
                              [0, 0, 2]]

# Image img, channel 1 would yield output out given coordinates from coords

请注意,某些像素将映射到同一坐标。在示例中,我选择了像素"覆盖"最新的,但这根本不重要。但是,未写入的像素应为0。

我使用for循环进行了一个简单的实现,但是你预计它会超级慢并且也不可微分。有没有办法将这个问题矢量化?

0 个答案:

没有答案