在布尔张量掩码中求峰值点(第一个真)的索引

2024-09-29 21:50:16 发布

您现在位置:Python中文网/ 问答频道 /正文

在pytorch中运行detectron2模型后,detectron2将其作为(真/假)张量找到的对象遮罩提供给我。在图像中发现了33个对象,因此我有torch.Size([336831024])

tensor([[False, False, False,  ..., False, False, False],
    [False, False, False,  ..., False, False, False],
    [False, False, False,  ..., False, False, False],
    ...,
    [False, False, False,  ..., False, False, False],
    [False, False, False,  ..., False, False, False],
    [False, False, False,  ..., False, False, False]], device='cuda:0')

到目前为止这很好。但我需要这33个物体的y维(高度)的峰值坐标。(假设对象是阳台,那么我需要阳台的顶部作为(x,y)点)

你知道我怎样才能尽快得到峰点坐标吗 提前谢谢


Tags: 对象模型图像falsesize高度devicetorch
1条回答
网友
1楼 · 发布于 2024-09-29 21:50:16

我已经遍历了每个维度,并检查是否满足了真正的条件,但花了几分钟才找到索引

然后我使用了torch.where方法,它会立即找到满足条件的所有索引

for maskCounter in range(masks.shape[0]):
    print((torch.where(masks[maskCounter] == True)[0][0]).item(), (torch.where(masks[maskCounter] == True)[1][0]).item())

相关问题 更多 >

    热门问题