code: def _compute_matches_between_fragments(self, mod):
      out_dir = osp.join(self.processed_dir, mod, "matches")
      if files_exist([out_dir]):  # pragma: no cover
          return
      makedirs(out_dir)
      ind = 0
      for scene_path in os.listdir(osp.join(self.raw_dir, mod)):
          list_seq = sorted(
              [
                  f
                  for f in os.listdir(
                      osp.join(self.raw_dir, mod, scene_path)
                  )
                  if "seq" in f
              ]
          )
          for seq in list_seq:
              log.info("{}, {}".format(scene_path, seq))
              fragment_dir = osp.join(
                  self.processed_dir, mod, "fragment", scene_path, seq
              )
              list_fragment_path = sorted(
                  [
                      osp.join(fragment_dir, f)
                      for f in os.listdir(fragment_dir)
                      if "fragment" in f
                  ]
              )
              log.info("compute_overlap_and_matches")
  
              for path1 in list_fragment_path:
                  for path2 in list_fragment_path:
                      if path1 < path2:
                          out_path = osp.join(
                              out_dir, "matches{:06d}.npy".format(ind)
                          )
                          data1 = torch.load(path1)
                          data2 = torch.load(path2)
                          match = compute_overlap_and_matches(
                              data1, data2, self.max_dist_overlap
                          )
                          match["path_source"] = path1
                          match["path_target"] = path2
  
                          if (
                              np.max(match["overlap"])
                              > self.min_overlap_ratio
                              and np.max(match["overlap"])
                              < self.max_overlap_ratio
                          ):
                              np.save(out_path, match)
                              ind += 1
  
imports: import json
  import logging
  import numpy
  import os
  import os.path
  from plyfile import PlyData
  import shutil
  import torch
  from torch_geometric.data import Dataset, download_url, extract_zip
  from torch_geometric.data import Data
  from torch_points3d.datasets.registration.detector import RandomDetector
  from torch_points3d.datasets.registration.utils import rgbd2fragment_rough
  from torch_points3d.datasets.registration.utils import rgbd2fragment_fine
  from torch_points3d.datasets.registration.utils import compute_overlap_and_matches
  from torch_points3d.datasets.registration.utils import to_list
  from torch_points3d.datasets.registration.utils import files_exist
  from torch_points3d.datasets.registration.utils import makedirs
  from torch_points3d.datasets.registration.utils import get_urls
  from torch_points3d.datasets.registration.utils import PatchExtractor
label_desc: Use image node_id 7 for calling the Base3DMatch obj's underlying member method code with example usage: obj._compute_matches_between_fragments(mod) without return types