code: def vg_aug(self, results):
      gt_bboxes = results["gt_bboxes"]
      if isinstance(gt_bboxes, BaseBoxes):
          gt_bboxes = gt_bboxes.tensor
      gt_labels = results["gt_bboxes_labels"]
      text = results["text"].lower().strip()
      if not text.endswith("."):
          text = text + ". "
  
      phrases = results["phrases"]
      # TODO: add neg
      positive_label_list = np.unique(gt_labels).tolist()
      label_to_positions = {}
      for label in positive_label_list:
          label_to_positions[label] = phrases[label]["tokens_positive"]
  
      results["gt_bboxes"] = gt_bboxes
      results["gt_bboxes_labels"] = gt_labels
  
      results["text"] = text
      results["tokens_positive"] = label_to_positions
      return results
  
file_path: mmdetection/mmdet/datasets/transforms/text_transformers.py
imports: import json
  from mmcv.transforms import BaseTransform
  from mmdet.registry import TRANSFORMS
  from mmdet.structures.bbox import BaseBoxes
  import random
  import re
  import numpy
label_desc: Use image node_id 3 for calling the RandomSamplingNegPos obj's underlying member method code with example usage: obj.vg_aug(results) and returns: results