class_docstr: A transform wrapper to apply the wrapped transforms to process both
  `gt_bboxes` and `proposals` without adding any codes. It will do the
  following steps:
  
      1. Scatter the broadcasting targets to a list of inputs of the wrapped
         transforms. The type of the list should be list[dict, dict], which
         the first is the original inputs, the second is the processing
         results that `gt_bboxes` being rewritten by the `proposals`.
      2. Apply ``self.transforms``, with same random parameters, which is
         sharing with a context manager. The type of the outputs is a
         list[dict, dict].
      3. Gather the outputs, update the `proposals` in the first item of
         the outputs with the `gt_bboxes` in the second .
  
  Args:
       transforms (list, optional): Sequence of transform
          object or config dict to be wrapped. Defaults to [].
  
  Note: The `TransformBroadcaster` in MMCV can achieve the same operation as
        `ProposalBroadcaster`, but need to set more complex parameters.
  
  Examples:
      >>> pipeline = [
      >>>     dict(type='LoadImageFromFile'),
      >>>     dict(type='LoadProposals', num_max_proposals=2000),
      >>>     dict(type='LoadAnnotations', with_bbox=True),
      >>>     dict(
      >>>         type='ProposalBroadcaster',
      >>>         transforms=[
      >>>             dict(type='Resize', scale=(1333, 800),
      >>>                  keep_ratio=True),
      >>>             dict(type='RandomFlip', prob=0.5),
      >>>         ]),
      >>>     dict(type='PackDetInputs')]
docstr: Scatter the broadcasting targets to a list of inputs of the wrapped
  transforms.
  
  Args:
      data (dict): The original input data.
  
  Returns:
      list[dict]: A list of input data.
docstr_tok: ["Scatter","the","broadcasting","targets","to","a","list","of","inputs","of","the","wrapped","transforms",".","Args",":","data","(","dict",")",":","The","original","input","data",".","Returns",":","list","[","dict","]",":","A","list","of","input","data","."]
code: def _process_input(self, data: dict) -> list:
      """Scatter the broadcasting targets to a list of inputs of the wrapped
      transforms.
  
      Args:
          data (dict): The original input data.
  
      Returns:
          list[dict]: A list of input data.
      """
      cp_data = copy.deepcopy(data)
      cp_data["gt_bboxes"] = cp_data["proposals"]
      scatters = [data, cp_data]
      return scatters
  
imports: import copy
  from typing import Callable, Dict, List, Optional, Union
  import numpy
  from mmcv.transforms import BaseTransform, Compose
  from mmcv.transforms.utils import cache_random_params, cache_randomness
  from mmdet.registry import TRANSFORMS
label_desc: Use image node_id 3 for calling the ProposalBroadcaster obj's underlying member method code with example usage: obj._process_input(data) and returns: scatters