YOLOv5 + Albumentations integration (#3882)
* Albumentations integration * ToGray p=0.01 * print confirmation * create instance in dataloader init method * improved version handling * transform not defined fix * assert string update * create check_version() * add spaces * update class comment
This commit is contained in:
1 parent
6a3ee7cf03
commit
33202b7f0b
4 files changed
+61
-27
No files matched your search
+21
-19
@@ -22,7 +22,7 @@ from PIL import Image, ExifTags
|
||||
from torch.utils.data import Dataset
|
||||
from tqdm import tqdm
|
||||
|
||||
from utils.augmentations import augment_hsv, copy_paste, letterbox, mixup, random_perspective
|
||||
from utils.augmentations import Albumentations, augment_hsv, copy_paste, letterbox, mixup, random_perspective
|
||||
from utils.general import check_requirements, check_file, check_dataset, xywh2xyxy, xywhn2xyxy, xyxy2xywhn, \
|
||||
xyn2xy, segments2boxes, clean_str
|
||||
from utils.torch_utils import torch_distributed_zero_first
|
||||
@@ -372,6 +372,7 @@ class LoadImagesAndLabels(Dataset): # for training/testing
|
||||
self.mosaic_border = [-img_size // 2, -img_size // 2]
|
||||
self.stride = stride
|
||||
self.path = path
|
||||
self.albumentations = Albumentations() if augment else None
|
||||
|
||||
try:
|
||||
f = [] # image files
|
||||
@@ -539,9 +540,7 @@ class LoadImagesAndLabels(Dataset): # for training/testing
|
||||
if labels.size: # normalized xywh to pixel xyxy format
|
||||
labels[:, 1:] = xywhn2xyxy(labels[:, 1:], ratio[0] * w, ratio[1] * h, padw=pad[0], padh=pad[1])
|
||||
|
||||
if self.augment:
|
||||
# Augment imagespace
|
||||
if not mosaic:
|
||||
if self.augment:
|
||||
img, labels = random_perspective(img, labels,
|
||||
degrees=hyp['degrees'],
|
||||
translate=hyp['translate'],
|
||||
@@ -549,32 +548,35 @@ class LoadImagesAndLabels(Dataset): # for training/testing
|
||||
shear=hyp['shear'],
|
||||
perspective=hyp['perspective'])
|
||||
|
||||
# Augment colorspace
|
||||
augment_hsv(img, hgain=hyp['hsv_h'], sgain=hyp['hsv_s'], vgain=hyp['hsv_v'])
|
||||
|
||||
# Apply cutouts
|
||||
# if random.random() < 0.9:
|
||||
# labels = cutout(img, labels)
|
||||
|
||||
nL = len(labels) # number of labels
|
||||
if nL:
|
||||
nl = len(labels) # number of labels
|
||||
if nl:
|
||||
labels[:, 1:5] = xyxy2xywhn(labels[:, 1:5], w=img.shape[1], h=img.shape[0]) # xyxy to xywh normalized
|
||||
|
||||
if self.augment:
|
||||
# flip up-down
|
||||
# Albumentations
|
||||
img, labels = self.albumentations(img, labels)
|
||||
|
||||
# HSV color-space
|
||||
augment_hsv(img, hgain=hyp['hsv_h'], sgain=hyp['hsv_s'], vgain=hyp['hsv_v'])
|
||||
|
||||
# Flip up-down
|
||||
if random.random() < hyp['flipud']:
|
||||
img = np.flipud(img)
|
||||
if nL:
|
||||
if nl:
|
||||
labels[:, 2] = 1 - labels[:, 2]
|
||||
|
||||
# flip left-right
|
||||
# Flip left-right
|
||||
if random.random() < hyp['fliplr']:
|
||||
img = np.fliplr(img)
|
||||
if nL:
|
||||
if nl:
|
||||
labels[:, 1] = 1 - labels[:, 1]
|
||||
|
||||
labels_out = torch.zeros((nL, 6))
|
||||
if nL:
|
||||
# Cutouts
|
||||
# if random.random() < 0.9:
|
||||
# labels = cutout(img, labels)
|
||||
|
||||
labels_out = torch.zeros((nl, 6))
|
||||
if nl:
|
||||
labels_out[:, 1:] = torch.from_numpy(labels)
|
||||
|
||||
# Convert
|
||||
|
||||
Reference in new issue
Block a user