code: def get_search_params(
      cfg, search_params=None, prefix=None, logger=None
  ):
      if search_params is None:
          search_params = dict()
      for k, v in cfg.items():
          if prefix is not None:
              entire_k = prefix + "." + k
          else:
              entire_k = k
          if isinstance(v, list):
              print_log(f"search `{entire_k}` in {v}.", logger)
              search_params[entire_k] = v
          if isinstance(v, dict):
              search_params = get_search_params(
                  v, search_params, entire_k, logger
              )
      return search_params
  
file_path: mmdetection/tools/analysis_tools/mot/mot_param_search.py
imports: import argparse
  import os
  import os.path
  from itertools import product
  from mmengine.config import Config, DictAction
  from mmengine.dist import get_dist_info
  from mmengine.logging import MMLogger, print_log
  from mmengine.model import is_model_wrapper
  from mmengine.registry import init_default_scope
  from mmengine.runner import Runner
  from mmengine.runner.checkpoint import load_checkpoint
label_desc: Use image node_id 2 for calling a global function with example usage: get_search_params(cfg, search_params, prefix, logger) and returns: search_params