code: def get_metrics(self, verbose=False):
      metrics = super().get_metrics(verbose)
      if self._stage != "train":
          metrics["{}_hit_ratio".format(self._stage)] = float(
              self._hit_ratio.value()[0]
          )
          metrics["{}_feat_match_ratio".format(self._stage)] = float(
              self._feat_match_ratio.value()[0]
          )
          metrics["{}_trans_error".format(self._stage)] = float(
              self._trans_error.value()[0]
          )
          metrics["{}_rot_error".format(self._stage)] = float(
              self._rot_error.value()[0]
          )
          metrics["{}_rre".format(self._stage)] = float(
              self._rre.value()[0]
          )
          metrics["{}_rte".format(self._stage)] = float(
              self._rte.value()[0]
          )
          metrics["{}_sr_err".format(self._stage)] = float(
              self._sr_err.value()[0]
          )
      return metrics
  
imports: from typing import Dict, Any
  import torchnet
  import torch
  from .base_tracker import BaseTracker
  from .registration_metrics import compute_accuracy
  from .registration_metrics import compute_hit_ratio
  from .registration_metrics import compute_transfo_error
  from .registration_metrics import compute_scaled_registration_error
  from torch_points3d.models import model_interface
  from torch_points3d.utils.registration import estimate_transfo, fast_global_registration, get_matches
label_desc: Use image node_id 4 for calling the FragmentRegistrationTracker obj's underlying member method code with example usage: obj.get_metrics(verbose) and returns: metrics