Skip to content

Commit 29e9e46

Browse files
committed
transforms: Add auto feature
1 parent ca03d0f commit 29e9e46

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

datasets/transforms.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,12 +101,24 @@ class RandomResizedCrop(torchvision.transforms.RandomResizedCrop):
101101
1. ratio로 종횡비를 조절
102102
2. scale로 면적의 일정 비율을 자름 (비율 단위: 면적, 길이가 아님!)
103103
3. size로 최종 출력 크기 조절
104+
Args:
105+
size: 최종 출력 크기
106+
scale: 원본 이미지에서 자를 면적의 비율 (auto = (원본 이미지에 대한 size의 crop 비율, 1.0))
107+
ratio: 자를 영역의 종횡비 (auto = size의 종횡비로 일치시킴)
104108
"""
105109

106-
def __init__(self, size: Union[int, Sequence], scale: Tuple[float, float], ratio: Tuple[float, float]):
110+
def __init__(
111+
self, size: Union[int, Sequence], scale: Union[Tuple[float, float], str], ratio: Union[Tuple[float, float], str]
112+
):
113+
if ratio == 'auto':
114+
ratio = (size[1] / size[0], size[1] / size[0])
115+
107116
super().__init__(size, scale, ratio)
108117

109118
def forward(self, data: dict):
119+
if self.scale == 'auto':
120+
self.scale = ((self.size[0] * self.size[1]) / (data['target'].size()[-2] * data['target'].size()[-1]), 1.0)
121+
110122
data['target'].unsqueeze_(dim=0)
111123

112124
i, j, h, w = self.get_params(data['image'], self.scale, self.ratio)

0 commit comments

Comments
 (0)