class_docstr: Auto augmentation.
  
  This data augmentation is proposed in `Learning Data Augmentation
  Strategies for Object Detection <https://arxiv.org/pdf/1906.11172>`_.
  
  TODO: Implement 'Shear', 'Sharpness' and 'Rotate' transforms
  
  Args:
      policies (list[list[dict]]): The policies of auto augmentation. Each
          policy in ``policies`` is a specific augmentation policy, and is
          composed by several augmentations (dict). When AutoAugment is
          called, a random policy in ``policies`` will be selected to
          augment images.
  
  Examples:
      >>> replace = (104, 116, 124)
      >>> policies = [
      >>>     [
      >>>         dict(type='Sharpness', prob=0.0, level=8),
      >>>         dict(
      >>>             type='Shear',
      >>>             prob=0.4,
      >>>             level=0,
      >>>             replace=replace,
      >>>             axis='x')
      >>>     ],
      >>>     [
      >>>         dict(
      >>>             type='Rotate',
      >>>             prob=0.6,
      >>>             level=10,
      >>>             replace=replace),
      >>>         dict(type='Color', prob=1.0, level=6)
      >>>     ]
      >>> ]
      >>> augmentation = AutoAugment(policies)
      >>> img = np.ones(100, 100, 3)
      >>> gt_bboxes = np.ones(10, 4)
      >>> results = dict(img=img, gt_bboxes=gt_bboxes)
      >>> results = augmentation(results)
class_docstr_tok: ["Auto","augmentation",".","This","data","augmentation","is","proposed","in","`","Learning","Data","Augmentation","Strategies","for","Object","Detection","<","https",":","\/\/arxiv.org\/pdf\/1906.11172",">","`","_",".","TODO",":","Implement","'Shear","'",",","'Sharpness","'","and","'Rotate","'","transforms","Args",":","policies","(","list","[","list","[","dict","]","]",")",":","The","policies","of","auto","augmentation",".","Each","policy","in","``","policies","``","is","a","specific","augmentation","policy",",","and","is","composed","by","several","augmentations","(","dict",")",".","When","AutoAugment","is","called",",","a","random","policy","in","``","policies","``","will","be","selected","to","augment","images",".","Examples",":",">",">",">","replace","=","(","104",",","116",",","124",")",">",">",">","policies","=","[",">",">",">","[",">",">",">","dict","(","type='Sharpness","'",",","prob=0.0",",","level=8",")",",",">",">",">","dict","(",">",">",">","type='Shear","'",",",">",">",">","prob=0.4",",",">",">",">","level=0",",",">",">",">","replace=replace",",",">",">",">","axis=","'","x","'",")",">",">",">","]",",",">",">",">","[",">",">",">","dict","(",">",">",">","type='Rotate","'",",",">",">",">","prob=0.6",",",">",">",">","level=10",",",">",">",">","replace=replace",")",",",">",">",">","dict","(","type='Color","'",",","prob=1.0",",","level=6",")",">",">",">","]",">",">",">","]",">",">",">","augmentation","=","AutoAugment","(","policies",")",">",">",">","img","=","np.ones","(","100",",","100",",","3",")",">",">",">","gt_bboxes","=","np.ones","(","10",",","4",")",">",">",">","results","=","dict","(","img=img",",","gt_bboxes=gt_bboxes",")",">",">",">","results","=","augmentation","(","results",")"]
code: def __call__(self, results):
      transform = np.random.choice(self.transforms)
      return transform(results)
  
imports: import copy
  import cv2
  import mmcv
  import numpy
  from ..builder import PIPELINES
  from .compose import Compose
label_desc: Use image node_id 2 for calling the AutoAugment obj's underlying member method code with example usage: obj.__call__(results) and returns: transform