code: def register_open_3d_ml(register: FlashRegistry):
      if _TOPIC_POINTCLOUD_AVAILABLE:
          CONFIG_PATH = os.path.join(
              os.path.dirname(open3d.__file__), "_ml3d/configs"
          )
  
          def get_collate_fn(model) -> Callable:
              batcher_name = model.cfg.batcher
              if batcher_name == "DefaultBatcher":
                  batcher = DefaultBatcher()
              elif batcher_name == "ConcatBatcher":
                  batcher = ConcatBatcher(
                      torch, model.__class__.__name__
                  )
              elif batcher_name == "ObjectDetectBatchCollator":
                  return ObjectDetectBatchCollator
              return batcher.collate_fn
  
          @register(
              parameters=PointPillars.__init__, providers=_OPEN3D_ML
          )
          @catch_url_error
          def pointpillars_kitti(
              *args, pretrained: bool = True, **kwargs
          ) -> PointPillars:
              cfg = _ml3d.utils.Config.load_from_file(
                  os.path.join(CONFIG_PATH, "pointpillars_kitti.yml")
              )
              cfg.model.device = "cpu"
              model = PointPillars(**cfg.model)
              if pretrained:
                  weight_url = os.path.join(
                      ROOT_URL, "pointpillars_kitti_202012221652utc.pth"
                  )
                  model.load_state_dict(
                      pl_load(weight_url, map_location="cpu")[
                          "model_state_dict"
                      ],
                  )
              model.cfg.batcher = "ObjectDetectBatchCollator"
              return model, 384, get_collate_fn(model)
  
          @register(
              parameters=PointPillars.__init__, providers=_OPEN3D_ML
          )
          def pointpillars(*args, **kwargs) -> PointPillars:
              model = PointPillars(*args, **kwargs)
              model.cfg.batcher = "ObjectDetectBatch"
              return model, get_collate_fn(model)
  
file_path: lightning-flash/src/flash/pointcloud/detection/open3d_ml/backbones.py
imports: import os
  from abc import ABC
  from typing import Callable
  import torch
  from pytorch_lightning.utilities.cloud_io import load
  from flash.core.registry import FlashRegistry
  from flash.core.utilities.imports import _TOPIC_POINTCLOUD_AVAILABLE
  from flash.core.utilities.providers import _OPEN3D_ML
  from flash.core.utilities.url_error import catch_url_error
label_desc: Use image node_id 1 for calling a global function with example usage: register_open_3d_ml(register) and returns: batcher, model,  int,  get_collate_fn, model,  get_collate_fn, ObjectDetectBatchCollator