Utilice la biblioteca de mejora de imágenes Augly para mejorar y ampliar los datos.

Prefacio

Escribí una función de mejora de imágenes fácil de usar usando la biblioteca Augly para expandir las muestras de imágenes y aumentar la diversidad de muestras. Es muy simple de usar. Debe instalar la biblioteca Augly con anticipación y ejecutarla en la terminal:

pip install augly

Todos los códigos se comparten de la siguiente manera (el código aún tiene espacio para optimización, optimícelo según sus propias necesidades):

import os
import random

import augly.image as imaugs
import PIL.Image as Image

img_path = "img"                              # 需要增强的图像路径
save_path = "save"                           # 保存路径

def augly_augmentation(aug_image):
    aug = [
        imaugs.blur(aug_image,radius=random.randint(1,2)),                     # 图像模糊
        imaugs.brightness(aug_image,factor=random.uniform(0.5,1.5)),           # 改变亮度
        imaugs.change_aspect_ratio(aug_image, ratio=random.uniform(0.8,1.5)),  # 改变图像宽高比
        imaugs.color_jitter(aug_image, brightness_factor=random.uniform(0.8,1.5), contrast_factor=random.uniform(0.8,1.5), saturation_factor=random.uniform(0.8,1.5)),    # 颜色晃动
        imaugs.crop(aug_image, x1=random.uniform(0,0.1), y1=random.uniform(0,0.1), x2=random.uniform(0.9,1), y2=random.uniform(0.9,1)),     # 随机裁剪
        imaugs.hflip(aug_image),                                               # 水平翻转
        imaugs.opacity(aug_image, level=random.uniform(0.5,1)),                # 改变图像透明度
        imaugs.pixelization(aug_image, ratio=random.uniform(0.5,1)),           # 马赛克
        imaugs.random_noise(aug_image),                                        # 随机噪声
        imaugs.rotate(aug_image, degrees=random.randint(3,10)),                # 随机旋转一定角度
        imaugs.shuffle_pixels(aug_image, factor=random.uniform(0,0.1)),        # 随机像素比任意化
        imaugs.saturation(aug_image, factor=random.uniform(1,1.5)),            # 改变饱和度
        imaugs.contrast(aug_image, factor=random.uniform(1,1.5)),              # 对比度增强
        imaugs.grayscale(aug_image)                                            # 转灰度
    ]
    return random.choice(aug)                                                   # 从以上函数中随机选其一进行数据增强

for name in os.listdir(img_path):
    aug_image = Image.open(os.path.join(img_path,name))
    count = 3                           # 每张图片需要增强的数量
    for i in range(count):
        image = augly_augmentation(aug_image)
        image = image.convert("RGB")
        image.save(os.path.join(save_path,name[:-4]+"_{}.jpg".format(i)))

Ejemplo de uso

La imagen original es:
Insertar descripción de la imagen aquí
Ejemplo después de una mejora aleatoria:

Cambiar la saturación de la imagen:
Insertar descripción de la imagen aquí

Cambie aleatoriamente la relación de aspecto dentro de un rango determinado:
Insertar descripción de la imagen aquí

Ruido aleatorio:
Insertar descripción de la imagen aquí

También es posible aumentar aleatoriamente durante el entrenamiento al cargar el conjunto de datos:
Insertar descripción de la imagen aquí

Para obtener más información sobre el uso de augly, consulte los artículos anteriores: Biblioteca de mejora de imágenes Python de código abierto recientemente de Facebook: agosto

Supongo que te gusta

Origin blog.csdn.net/qq_39056987/article/details/123233142
Recomendado
Clasificación