code: def match_visualizer(
      pcd1, keypoints1, pcd2, keypoints2, inliers, t=2, radius=0.1
  ):
      """
      display the match using Open3D draw_geometries.
      input :
      -pcd: open3d point cloud
      -keypoints : the keypoints (open3d point cloud)
      -t: float a translation at the x axis
      condition : keypoints1 and keypoints2 have the same size
      """
  
      colors = []
      open3d.geometry.PointCloud(keypoints1)
      keypoints2_copy = open3d.geometry.PointCloud(keypoints2)
      T_trans = np.eye(4)
      T_trans[0, 3] = t
      list_displayed = [pcd1, pcd2]
      pcd2.transform(T_trans)
  
      keypoints2_copy.transform(T_trans)
      kp1 = np.asarray(keypoints1.points)
      kp2 = np.asarray(keypoints2_copy.points)
  
      if len(kp1) != len(kp2):
          raise Exception("number of points is different")
      for i in range(len(kp1)):
          assert inliers is not None
          col = inliers[i] * np.asarray([0, 1, 0]) + (
              1 - inliers[i]
          ) * np.asarray([1, 0, 0])
          colors.append(list(col))
          p1 = kp1[i]
          p2 = kp2[i]
          sphere1 = create_sphere(p1, colors[-1], radius)
          sphere2 = create_sphere(p2, colors[-1], radius)
          line = create_line(p1, p2, col.reshape(1, 3))
          list_displayed.append(line)
          list_displayed.append(sphere1)
          list_displayed.append(sphere2)
  
      open3d.visualization.draw_geometries(list_displayed)
  
imports: import open3d
  import torch
  import numpy
  import hydra
  import logging
  from omegaconf import OmegaConf
  import os
  import sys
  import pandas
  import time
  from torch_points3d.models.model_factory import instantiate_model
  from torch_points3d.datasets.dataset_factory import instantiate_dataset, get_dataset_class
  from torch_points3d.models.base_model import BaseModel
  from torch_points3d.datasets.base_dataset import BaseDataset
  from torch_points3d.utils.registration import estimate_transfo, teaser_pp_registration, fast_global_registration, get_matches
  from torch_points3d.metrics.registration_metrics import compute_hit_ratio, compute_transfo_error, compute_scaled_registration_error
  from torch_points3d.metrics.colored_tqdm import Coloredtqdm
  from torch_points3d.metrics.model_checkpoint import ModelCheckpoint
label_desc: Use image node_id 4 for calling a global function with example usage: match_visualizer(pcd1, keypoints1, pcd2, keypoints2, inliers, t, radius) without return types