gpt4 book ai didi

deep-learning - 如何使用空间转换器在pytorch中裁剪图像?

转载 作者:行者123 更新时间:2023-12-03 21:04:18 25 4
gpt4 key购买 nike

空间更改器(mutator)网络的论文声称它可以用来裁剪图像。

给定裁剪区域 (top_left, bottom_right)=(x1,y1,x2,y2),如何将该区域解释为变换矩阵并在 pytorch 中裁剪图像?

这是关于torch(http://torch.ch/blog/2015/09/07/spatial_transformers.html)中的空间更改器(mutator)网络的介绍,在介绍中,它可视化了更改器(mutator)看的边界框,我们如何确定给定变换矩阵的边界框?

[编辑]

刚刚找到第一个问题的答案【给定裁剪区域,找出一个变换矩阵】

enter image description here

最佳答案

原帖中的图片已经提供了一个很好的答案,但提供一些代码可能会很有用。
重要的是,此方法应正确保留梯度。在我的例子中,我有一批 y,x 值代表裁剪位置的中心(在 [-1,1] 范围内)。至于值ab ,这是转换的比例 x 和 y 值,在我的情况下,我使用了 0.5对于每个与较小的输出尺寸(宽度和高度的一半)相结合以保留原始比例,即裁剪。您可以使用 1没有比例变化,但不会有裁剪。

import torch.nn.functional as F

def crop_to_affine_matrix(t):
'Turns (N,2) translate values into (N,2,3) affine transformation matrix'
t = t.reshape(-1,1,2,1).flip(2) # flip x,y order to y,x
t = F.pad(t, (2,0,0,0)).squeeze(1)
t[:,0,0] = a
t[:,1,1] = b
return t

t = torch.zeros(5,2) # center crop positions for batch size 5
F.affine_grid(crop_to_affine_matrix(t), outsize)

关于deep-learning - 如何使用空间转换器在pytorch中裁剪图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55373014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com