Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 如何在Pytorch中有效地找到两个点集之间的对应关系,而无需嵌套for循环?_Image Processing_Computer Vision_Pytorch_Tensor - Fatal编程技术网

Image processing 如何在Pytorch中有效地找到两个点集之间的对应关系,而无需嵌套for循环?

Image processing 如何在Pytorch中有效地找到两个点集之间的对应关系,而无需嵌套for循环?,image-processing,computer-vision,pytorch,tensor,Image Processing,Computer Vision,Pytorch,Tensor,我现在有两个点集(张量)A和B,形状像 A.size()>>(50,3),例如:[[0,0,0],[0,1,2],…,[1,1,1]] B.大小()>>(10,3) 其中,第一个尺寸表示点数,第二个尺寸表示坐标(x、y、z) 在某种程度上,这个问题也可以简化为“寻找两个张量之间的公共元素”。有没有一种不使用嵌套循环的快速方法可以做到这一点?您可以使用以下方法快速计算所有50x10距离: d2=((A[:,无,:]-B[无,…])**2)和(dim=2) 获得所有成对距离后,如果距离不超过阈值,

我现在有两个点集(张量)A和B,形状像

A.size()>>(50,3),例如:[[0,0,0],[0,1,2],…,[1,1,1]]

B.大小()>>(10,3)

其中,第一个尺寸表示点数,第二个尺寸表示坐标(x、y、z)


在某种程度上,这个问题也可以简化为“寻找两个张量之间的公共元素”。有没有一种不使用嵌套循环的快速方法可以做到这一点?

您可以使用以下方法快速计算所有50x10距离:

d2=((A[:,无,:]-B[无,…])**2)和(dim=2)
获得所有成对距离后,如果距离不超过阈值,则可以选择“相似”距离:

(d2
返回“相似”点的
a-idx、b-idx

如果要精确匹配点,可以执行以下操作:

((a[:,None,:]==b[None,…]).all(dim=2)).nonzero()

您可以使用以下方法快速计算所有50x10距离:

d2=((A[:,无,:]-B[无,…])**2)和(dim=2)
获得所有成对距离后,如果距离不超过阈值,则可以选择“相似”距离:

(d2
返回“相似”点的
a-idx、b-idx

如果要精确匹配点,可以执行以下操作:

((a[:,None,:]==b[None,…]).all(dim=2)).nonzero()

所谓公共元素,是指(x,y,z)的公共集吗?所谓公共元素,是指(x,y,z)的公共集吗?非常感谢!这是一个非常简单有效的答案,非常有效。非常感谢!这是一个非常简单有效的答案,效果非常理想