code: def pair_evaluation(
      path_descr_source, path_descr_target, gt_trans, list_tau, res_path
  ):
      """
      save matches (indices)
      """
  
      data_source = np.load(path_descr_source)
      data_target = np.load(path_descr_target)
  
      feat_s = data_source["feat"]
      feat_t = data_target["feat"]
  
      if len(data_source["feat"]) != len(data_source["keypoints"]):
          # Sampled features using keypoints.
          feat_s = feat_s[data_source["keypoints"]]
          feat_t = feat_t[data_target["keypoints"]]
  
      kp_source, kp_target = compute_matches(
          feat_s,
          feat_t,
          data_source["pcd"][data_source["keypoints"]],
          data_target["pcd"][data_target["keypoints"]],
      )
  
      dist = compute_dists(kp_source, kp_target, gt_trans)
  
      n_s = osp.split(path_descr_source)[-1].split(".")[0]
      n_t = osp.split(path_descr_target)[-1].split(".")[0]
  
      frac_correct = compute_mean_correct_matches(dist, list_tau)
  
      dico = dict(
          kp_source=kp_source,
          kp_target=kp_target,
          dist=dist,
          list_tau1=list_tau,
          frac_correct=frac_correct,
          name_source=n_s,
          name_target=n_t,
      )
      print(n_s, n_t, frac_correct)
      return dico
  
file_path: torch-points3d/scripts/test_registration_scripts/descriptor_matcher.py
imports: import pandas
  import hydra
  import numpy
  from sklearn.neighbors import KDTree
  import os
  import os.path
  from omegaconf import OmegaConf
  import sys
  import matplotlib.pyplot
label_desc: Use image node_id 5 for calling a global function with example usage: pair_evaluation(path_descr_source, path_descr_target, gt_trans, list_tau, res_path) and returns: dico