class_docstr: Test-time augmentation with multiple scales and flipping.
  
  An example configuration is as followed:
  
  .. code-block::
  
      img_scale=[(1333, 400), (1333, 800)],
      flip=True,
      transforms=[
          dict(type='Resize', keep_ratio=True),
          dict(type='RandomFlip'),
          dict(type='Normalize', **img_norm_cfg),
          dict(type='Pad', size_divisor=32),
          dict(type='ImageToTensor', keys=['img']),
          dict(type='Collect', keys=['img']),
      ]
  
  After MultiScaleFLipAug with above configuration, the results are wrapped
  into lists of the same length as followed:
  
  .. code-block::
  
      dict(
          img=[...],
          img_shape=[...],
          scale=[(1333, 400), (1333, 400), (1333, 800), (1333, 800)]
          flip=[False, True, False, True]
          ...
      )
  
  Args:
      transforms (list[dict]): Transforms to apply in each augmentation.
      img_scale (tuple | list[tuple] | None): Images scales for resizing.
      scale_factor (float | list[float] | None): Scale factors for resizing.
      flip (bool): Whether apply flip augmentation. Default: False.
      flip_direction (str | list[str]): Flip augmentation directions,
          options are "horizontal" and "vertical". If flip_direction is list,
          multiple flip augmentations will be applied.
          It has no effect when flip == False. Default: "horizontal".
docstr: Call function to apply test time augment transforms on results.
  
  Args:
      results (dict): Result dict contains the data to transform.
  
  Returns:
     dict[str: list]: The augmented data, where each value is wrapped
         into a list.
docstr_tok: ["Call","function","to","apply","test","time","augment","transforms","on","results",".","Args",":","results","(","dict",")",":","Result","dict","contains","the","data","to","transform",".","Returns",":","dict","[","str",":","list","]",":","The","augmented","data",",","where","each","value","is","wrapped","into","a","list","."]
code: def __call__(self, results):
      """Call function to apply test time augment transforms on results.
  
      Args:
          results (dict): Result dict contains the data to transform.
  
      Returns:
         dict[str: list]: The augmented data, where each value is wrapped
             into a list.
      """
  
      aug_data = []
      flip_args = [(False, None)]
      if self.flip:
          flip_args += [
              (True, direction) for direction in self.flip_direction
          ]
      for scale in self.img_scale:
          for flip, direction in flip_args:
              _results = results.copy()
              _results[self.scale_key] = scale
              _results["flip"] = flip
              _results["flip_direction"] = direction
              data = self.transforms(_results)
              aug_data.append(data)
      # list of dict to dict of list
      aug_data_dict = {key: [] for key in aug_data[0]}
      for data in aug_data:
          for key, val in data.items():
              aug_data_dict[key].append(val)
      return aug_data_dict
  
file_path: insightface/detection/scrfd/mmdet/datasets/pipelines/test_time_aug.py
imports: import warnings
  import mmcv
  from ..builder import PIPELINES
  from .compose import Compose
label_desc: Use image node_id 2 for calling the MultiScaleFlipAug obj's underlying member method code with example usage: obj.__call__(results) and returns: aug_data_dict