average pairwise 1-IoU for a list of 3D shape volume
(data_list: list)
| 28 | |
| 29 | |
| 30 | def pairwise_IoU_dist(data_list: list): |
| 31 | """average pairwise 1-IoU for a list of 3D shape volume""" |
| 32 | avgv = [] |
| 33 | for i in tqdm(range(len(data_list)), desc='Div'): |
| 34 | data_i = data_list[i] |
| 35 | intersect = torch.logical_and(data_i, data_list).sum(dim=(1, 2, 3)) |
| 36 | union = torch.logical_or(data_i, data_list).sum(dim=(1, 2, 3)) |
| 37 | iou_dist = 1.0 - intersect / union |
| 38 | mask = torch.ones_like(iou_dist, dtype=torch.bool) |
| 39 | mask[i] = False |
| 40 | iou_dist = iou_dist[mask] |
| 41 | avgv.append(torch.mean(iou_dist).item()) |
| 42 | avgv = np.mean(avgv) |
| 43 | return avgv |
| 44 | |
| 45 | |
| 46 | def extract_valid_patches_unfold(voxels: torch.Tensor, patch_size: int, stride=None): |
no test coverage detected