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')]
code: def __init__(
      self, transforms: List[Union[dict, Callable]] = []
  ) -> None:
      self.transforms = Compose(transforms)
  
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 1 to create a new ProposalBroadcaster object from inherited base classes: BaseTransform with example: obj = ProposalBroadcaster(transforms)