code: def __call__(self, in_data):
      img, bbox, label = in_data
      _, H, W = img.shape
      img = self.light_head_rcnn.prepare(img)
      _, o_H, o_W = img.shape
      scale = o_H / H
      bbox = transforms.resize_bbox(bbox, (H, W), (o_H, o_W))
  
      # horizontally flip
      img, params = transforms.random_flip(
          img, x_random=True, return_param=True
      )
      bbox = transforms.flip_bbox(
          bbox, (o_H, o_W), x_flip=params["x_flip"]
      )
  
      return img, bbox, label, scale
  
imports: from __future__ import division
  import argparse
  import functools
  import multiprocessing
  import numpy
  import random
  import six
  import chainer
  from chainer.dataset.convert import _concat_arrays
  from chainer.dataset.convert import to_device
  import chainer.links
  from chainer.training import extensions
  from chainercv.chainer_experimental.datasets.sliceable import TransformDataset
  from chainercv.chainer_experimental.training.extensions import make_shift
  from chainercv.datasets import coco_bbox_label_names
  from chainercv.datasets import COCOBboxDataset
  from chainercv.links.model.light_head_rcnn import LightHeadRCNNResNet101
  from chainercv.links.model.light_head_rcnn import LightHeadRCNNTrainChain
  from chainercv.links.model.ssd import GradientScaling
  from chainercv import transforms
  import chainermn
label_desc: Use image node_id 2 for calling the Transform obj's underlying member method code with example usage: obj.__call__(in_data) and returns: img,  bbox,  label,  scale