MCPcopy Create free account
hub / github.com/Sin3DM/Sin3DM / evaluate_tsdf_prediction

Function evaluate_tsdf_prediction

src/encoding/model.py:491–516  ·  view source on GitHub ↗
(pred_sdf, gt_sdf, sdf_threshold)

Source from the content-addressed store, hash-verified

489
490
491def evaluate_tsdf_prediction(pred_sdf, gt_sdf, sdf_threshold):
492 res = {}
493
494 l1_error = torch.abs(pred_sdf - gt_sdf)
495 rel_error = l1_error / torch.abs(gt_sdf)
496 acc = (pred_sdf * gt_sdf >= 0).float()
497
498 res["mean_tsdf_l1_error"] = l1_error.mean().item()
499 res["mean_tsdf_rel_error"] = rel_error.mean().item()
500 res["mean_tsdf_acc"] = acc.mean().item()
501
502 n = 4
503 unit = sdf_threshold / n
504 threshold_ranges = [i * unit for i in range(n + 1)] + [unit * (n + 1)]
505
506 for i in range(len(threshold_ranges) - 1):
507 lower = threshold_ranges[i]
508 upper = threshold_ranges[i + 1]
509 mask = (gt_sdf.abs() >= lower) & (gt_sdf.abs() < upper)
510
511 res[f"mean_tsdf_l1_error_{i}-{n}-{i + 1}-n"] = l1_error[mask].mean().item()
512 res[f"mean_tsdf_rel_error_{i}-{n}-{i + 1}-n"] = rel_error[mask].mean().item()
513 res[f"mean_tsdf_acc_{i}-{n}-{i + 1}-n"] = acc[mask].mean().item()
514 res[f"mean_tsdf_count_{i}-{n}-{i + 1}-n"] = mask.sum().item()
515
516 return res

Callers 1

evaluateMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected