code: def __init__(self, config: FRCNNPreprocessConfig, *args, **kwargs):
      config_input = config.get("input", None)
      assert config_input is not None
      min_size_test = config_input.get("min_size_test", 800)
      max_size_test = config_input.get("max_size_test", 1333)
      self.aug = ResizeShortestEdge(
          [min_size_test, min_size_test], max_size_test
      )
      self.input_format = config_input.get("format", "BGR")
      self.size_divisibility = config.get("size_divisibility", 0)
      self.pad_value = config.get("pad_value", 0)
      self.max_image_size = max_size_test
      config_model = config.get("model", None)
      assert config_model is not None
      self.device = config_model.get("device", "cpu")
      config_pixel_std = config_model.get("pixel_std", [1.0, 1.0, 1.0])
      self.pixel_std = (
          torch.tensor(config_pixel_std)
          .to(self.device)
          .view(len(config_pixel_std), 1, 1)
      )
      config_pixel_mean = config_model.get(
          "pixel_mean", [102.9801, 115.9465, 122.7717]
      )
      self.pixel_mean = (
          torch.tensor(config_pixel_mean)
          .to(self.device)
          .view(len(config_pixel_std), 1, 1)
      )
      self.normalizer = lambda x: (x - self.pixel_mean) / self.pixel_std
  
imports: import os
  import sys
  from dataclasses import dataclass
  from typing import List
  import numpy
  import omegaconf
  import torch
  import torch.nn.functional
  from mmf.common.registry import registry
  from mmf.datasets.processors.processors import BaseProcessor
  from mmf.utils.download import get_image_from_url
  from PIL import Image
label_desc: Use image node_id 1 to create a new FRCNNPreprocess object from inherited base classes: BaseProcessor with example: obj = FRCNNPreprocess(config)