code: def build_matcher(opts, *args, **kwargs):
      matcher_name = getattr(opts, "matcher.name", None)
      # We registered the base class using a special `name` (i.e., `__base__`)
      # in order to access the arguments defined inside those classes. However, these classes are not supposed to
      # be used. Therefore, we raise an error for such cases
      if matcher_name == "__base__":
          logger.error(
              "__base__ can't be used as a projection name. Please check."
          )
  
      matcher = MATCHER_REGISTRY[matcher_name](opts, *args, **kwargs)
      return matcher
  
imports: import argparse
  from cvnets.matcher_det.base_matcher import BaseMatcher
  from utils import logger
  from utils.registry import Registry
label_desc: Use image node_id 2 for calling a global function with example usage: build_matcher(opts) and returns: matcher