| 66 | |
| 67 | |
| 68 | def completion(gt_points, rec_points, gt_normals=None, rec_normals=None): |
| 69 | gt_points_kd_tree = KDTree(rec_points) |
| 70 | distances, idx = gt_points_kd_tree.query(gt_points, workers=-1) |
| 71 | comp = np.mean(distances) |
| 72 | comp_median = np.median(distances) |
| 73 | |
| 74 | if gt_normals is not None and rec_normals is not None: |
| 75 | normal_dot = np.sum(gt_normals * rec_normals[idx], axis=-1) |
| 76 | normal_dot = np.abs(normal_dot) |
| 77 | |
| 78 | return comp, comp_median, np.mean(normal_dot), np.median(normal_dot) |
| 79 | |
| 80 | return comp, comp_median |
| 81 | |
| 82 | |
| 83 | def compute_iou(pred_vox, target_vox): |