From 5a1ef3255343ecfafe26684d1b9286d117898de0 Mon Sep 17 00:00:00 2001 From: Yonghye Kwon Date: Fri, 13 May 2022 21:26:11 +0900 Subject: [PATCH] Add random interpolation method augmentation (#6826) * add random_interpolation option to make model robust to interpolation methods * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fix precommit error * Update augmentations.py * Update augmentations.py * Update augmentations.py * Update datasets.py * Update datasets.py Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Glenn Jocher --- utils/datasets.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/utils/datasets.py b/utils/datasets.py index 912c2cde7a36..2b23c98f4f17 100755 --- a/utils/datasets.py +++ b/utils/datasets.py @@ -397,6 +397,7 @@ def img2label_paths(img_paths): class LoadImagesAndLabels(Dataset): # YOLOv5 train_loader/val_loader, loads images and labels for training and validation cache_version = 0.6 # dataset labels *.cache version + rand_interp_methods = [cv2.INTER_NEAREST, cv2.INTER_LINEAR, cv2.INTER_CUBIC, cv2.INTER_AREA, cv2.INTER_LANCZOS4] def __init__(self, path, @@ -665,8 +666,8 @@ def load_image(self, i): h0, w0 = im.shape[:2] # orig hw r = self.img_size / max(h0, w0) # ratio if r != 1: # if sizes are not equal - im = cv2.resize(im, (int(w0 * r), int(h0 * r)), - interpolation=cv2.INTER_LINEAR if (self.augment or r > 1) else cv2.INTER_AREA) + interp = cv2.INTER_LINEAR if self.augment else cv2.INTER_AREA # random.choice(self.rand_interp_methods) + im = cv2.resize(im, (int(w0 * r), int(h0 * r)), interpolation=interp) return im, (h0, w0), im.shape[:2] # im, hw_original, hw_resized else: return self.ims[i], self.im_hw0[i], self.im_hw[i] # im, hw_original, hw_resized