Spaces:
Running
Running
change padding
Browse files- modules/dataset_loader.py +10 -19
modules/dataset_loader.py
CHANGED
@@ -345,29 +345,20 @@ def resize_and_pad(image, target, new_size=(1333, 800)):
|
|
345 |
scale = min(new_size[0] / original_size[0], new_size[1] / original_size[1])
|
346 |
new_scaled_size = (int(original_size[0] * scale), int(original_size[1] * scale))
|
347 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
348 |
# Resize image to new scaled size
|
349 |
image = F.resize(image, (new_scaled_size[1], new_scaled_size[0]))
|
350 |
|
351 |
-
# Calculate padding to center the image
|
352 |
-
pad_left = (new_size[0] - new_scaled_size[0]) // 2
|
353 |
-
pad_top = (new_size[1] - new_scaled_size[1]) // 2
|
354 |
-
pad_right = new_size[0] - new_scaled_size[0] - pad_left
|
355 |
-
pad_bottom = new_size[1] - new_scaled_size[1] - pad_top
|
356 |
-
|
357 |
# Pad the resized image to make it exactly the desired size
|
358 |
-
|
359 |
-
|
360 |
-
# Adjust bounding boxes
|
361 |
-
target['boxes'] = resize_boxes(target['boxes'], original_size, new_scaled_size)
|
362 |
-
target['boxes'][:, 0::2] += pad_left
|
363 |
-
target['boxes'][:, 1::2] += pad_top
|
364 |
-
|
365 |
-
# Adjust keypoints if they exist in the target
|
366 |
-
if 'keypoints' in target:
|
367 |
-
for i in range(len(target['keypoints'])):
|
368 |
-
target['keypoints'][i] = resize_keypoints(target['keypoints'][i], original_size, new_scaled_size)
|
369 |
-
target['keypoints'][i][:, 0] += pad_left
|
370 |
-
target['keypoints'][i][:, 1] += pad_top
|
371 |
|
372 |
return image, target
|
373 |
|
|
|
345 |
scale = min(new_size[0] / original_size[0], new_size[1] / original_size[1])
|
346 |
new_scaled_size = (int(original_size[0] * scale), int(original_size[1] * scale))
|
347 |
|
348 |
+
target['boxes'] = resize_boxes(target['boxes'], (image.size[0],image.size[1]), (new_scaled_size))
|
349 |
+
if 'area' in target:
|
350 |
+
target['area'] = (target['boxes'][:, 3] - target['boxes'][:, 1]) * (target['boxes'][:, 2] - target['boxes'][:, 0])
|
351 |
+
|
352 |
+
if 'keypoints' in target:
|
353 |
+
for i in range(len(target['keypoints'])):
|
354 |
+
target['keypoints'][i] = resize_keypoints(target['keypoints'][i], (image.size[0],image.size[1]), (new_scaled_size))
|
355 |
+
|
356 |
# Resize image to new scaled size
|
357 |
image = F.resize(image, (new_scaled_size[1], new_scaled_size[0]))
|
358 |
|
|
|
|
|
|
|
|
|
|
|
|
|
359 |
# Pad the resized image to make it exactly the desired size
|
360 |
+
padding = [0, 0, new_size[0] - new_scaled_size[0], new_size[1] - new_scaled_size[1]]
|
361 |
+
image = F.pad(image, padding, fill=200, padding_mode='edge')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
362 |
|
363 |
return image, target
|
364 |
|