Data augmentation
Estuve leyendo la documentación de albumentations y conseguí las siguientes transfomaciones:
El código es el siguiente:
# Definición de transformaciones:
transforms = A.Compose([
A.HorizontalFlip(p=0.3),
A.RandomBrightnessContrast(p=0.3),
A.ChannelShuffle(p=0.3),
A.CLAHE(p=0.3),
A.ColorJitter(brightness=(0, 1), contrast=(0, 1), saturation=(0, 1), hue=(-0.3, 0.3), p=0.3),
A.FancyPCA(p=0.3, alpha=0.2, always_apply=False),
A.GaussNoise(p=0.3),
A.InvertImg(p=0.3),
A.MultiplicativeNoise(p=0.3),
A.PixelDropout(p=0.3)
], bbox_params = A.BboxParams(format='albumentations'))
# Creación de imágenes tranformadas:
transformed_images = []
transformed_bboxes = []
for i in range(len(transforms)):
t_im = transforms(image=train_images[0], bboxes=bbox)
t_bbox = (list(t_im['bboxes'][0])[:-1])
t_bbox = [t_bbox[1], t_bbox[0], t_bbox[3], t_bbox[2]]
transformed_images.append(t_im)
transformed_bboxes.append(t_bbox)
# Visualzación de data augmentation
plt.figure(figsize=(10, 3))
for idx in range(0, 10):
bboxes = list(gt_boxes.values())[idx]
dummy_score = np.ones(shape=[bboxes.shape[0]], dtype=np.float32)
plt.subplot(2, 5, idx+1)
plt.axis('off')
plot_detections(
transformed_images[idx]['image'],
np.array([transformed_bboxes[idx]]),
np.ones(shape=[bboxes.shape[0]], dtype=np.int32),
dummy_score,
category_index
)
plt.suptitle('Transformed images')
plt.savefig('transformed_images.png')
plt.show()
Aquí les dejo la documentación de Transformeciones con Albumentations
Saludos 😃
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?