MCPcopy Create free account
hub / github.com/InternRobotics/G2VLM / forward

Method forward

data/transforms.py:79–106  ·  view source on GitHub ↗

Args: img (PIL Image): Image to be resized. img_num (int): Number of images, used to change max_tokens. Returns: PIL Image or Tensor: Rescaled image with divisible dimensions.

(self, img, img_num=1)

Source from the content-addressed store, hash-verified

77 return new_width, new_height
78
79 def forward(self, img, img_num=1):
80 """
81 Args:
82 img (PIL Image): Image to be resized.
83 img_num (int): Number of images, used to change max_tokens.
84 Returns:
85 PIL Image or Tensor: Rescaled image with divisible dimensions.
86 """
87 if isinstance(img, torch.Tensor):
88 height, width = img.shape[-2:]
89 else:
90 width, height = img.size
91
92 scale = min(self.max_size / max(width, height), 1.0)
93 scale = max(scale, self.min_size / min(width, height))
94 new_width, new_height = self._apply_scale(width, height, scale)
95
96 # Ensure the number of pixels does not exceed max_pixels
97 if new_width * new_height > self.max_pixels / img_num:
98 scale = self.max_pixels / img_num / (new_width * new_height)
99 new_width, new_height = self._apply_scale(new_width, new_height, scale)
100
101 # Ensure longest edge does not exceed max_size
102 if max(new_width, new_height) > self.max_size:
103 scale = self.max_size / max(new_width, new_height)
104 new_width, new_height = self._apply_scale(new_width, new_height, scale)
105
106 return F.resize(img, (new_height, new_width), self.interpolation, antialias=self.antialias)
107
108_RESNET_MEAN = [0.485, 0.456, 0.406]
109_RESNET_STD = [0.229, 0.224, 0.225]

Callers

nothing calls this directly

Calls 2

_apply_scaleMethod · 0.95
resizeMethod · 0.80

Tested by

no test coverage detected