Maison >développement back-end >Tutoriel Python >ColorJitter dans PyTorch

ColorJitter dans PyTorch

Patricia Arquette
Patricia Arquetteoriginal
2024-12-30 09:20:10753parcourir

Achetez-moi un café☕

ColorJitter() peut modifier la luminosité, le contraste, la saturation et la teinte de zéro ou plusieurs images, comme indiqué ci-dessous :

*Mémos :

  • Le 1er argument pour l'initialisation est la luminosité (Optional-Default:0-Type:float ou tuple/list(float)) : *Mémos :
    • C'est la plage de luminosité [min, max].
    • Il doit être 0 <= x.
    • Une seule valeur est convertie en [max(0, 1-luminosité), 1 luminosité].
    • Un tuple ou une liste doit être le 1D avec 2 éléments. *Le 1er élément doit être inférieur ou égal au 2ème élément.
  • Le 2ème argument pour l'initialisation est contrast(Optional-Default:0-Type:float ou tuple/list(float)) : *Mémos :
    • C'est la plage du contraste [min, max].
    • Il doit être 0 <= x.
    • Une seule valeur est convertie en [max(0, 1-contraste), 1 contraste].
    • Un tuple ou une liste doit être le 1D avec 2 éléments. *Le 1er élément doit être inférieur ou égal au 2ème élément.
  • Le 3ème argument pour l'initialisation est saturation(Optional-Default:0-Type:float ou tuple/list(float)) : *Mémos :
    • C'est la plage de saturation [min, max].
    • Il doit être 0 <= x.
    • Une seule valeur est convertie en [max(0, 1-saturation), 1 saturation].
    • Un tuple ou une liste doit être le 1D avec 2 éléments. *Le 1er élément doit être inférieur ou égal au 2ème élément.
  • Le 4ème argument pour l'initialisation est hue(Optional-Default:0-Type:float ou tuple/list(float)) : *Mémos :
    • C'est la plage de teinte [min, max].
    • Il doit être de -0,5 <= x <= 0,5.
    • Une seule valeur est convertie en [-hue, hue].
    • Un tuple ou une liste doit être le 1D avec 2 éléments. *Le 1er élément doit être inférieur ou égal au 2ème élément.
  • Le 1er argument est img(Required-Type:PIL Image ou tensor/tuple/list(int ou float)) : *Mémos :
    • Il doit être en 2D ou en 3D. Pour la 3D, le D le plus profond doit avoir un élément.
    • N'utilisez pas img=.
  • Il est recommandé d'utiliser la v2 selon la V1 ou la V2 ? Lequel dois-je utiliser ?.
from torchvision.datasets import OxfordIIITPet
from torchvision.transforms.v2 import ColorJitter

colorjitter = ColorJitter()
colorjitter = ColorJitter(brightness=0,
                          contrast=0,
                          saturation=0,
                          hue=0)
colorjitter = ColorJitter(brightness=(1.0, 2.0),
                          contrast=(1.0, 1.0),
                          saturation=(1.0, 1.0),
                          hue=(0.0, 0.0))
colorjitter
# ColorJitter()

print(colorjitter.brightness)
# None

print(colorjitter.contrast)
# None

print(colorjitter.saturation)
# None

print(colorjitter.hue)
# None

origin_data = OxfordIIITPet(
    root="data",
    transform=None
    # transform=ColorJitter()
    # colorjitter = ColorJitter(brightness=0,
    #                           contrast=0,
    #                           saturation=0,
    #                           hue=0)
    # transform=ColorJitter(brightness=(1.0, 1.0),
    #                       contrast=(1.0, 1.0),
    #                       saturation=(1.0, 1.0),
    #                       hue=(0.0, 0.0))
)

p2bright_data = OxfordIIITPet( # `p` is plus.
    root="data",
    transform=ColorJitter(brightness=2.0)
    # transform=ColorJitter(brightness=(0.0, 3.0))
)

p2p2bright_data = OxfordIIITPet(
    root="data",
    transform=ColorJitter(brightness=(2.0, 2.0))
)

p05p05bright_data = OxfordIIITPet(
    root="data",
    transform=ColorJitter(brightness=(0.5, 0.5))
)

p2contra_data = OxfordIIITPet(
    root="data",
    transform=ColorJitter(contrast=2.0)
    # transform=ColorJitter(contrast=(0.0, 3.0))
)

p2p2contra_data = OxfordIIITPet(
    root="data",
    transform=ColorJitter(contrast=(2.0, 2.0))
)

p05p05contra_data = OxfordIIITPet(
    root="data",
    transform=ColorJitter(contrast=(0.5, 0.5))
)

p2satura_data = OxfordIIITPet(
    root="data",
    transform=ColorJitter(saturation=2.0)
    # transform=ColorJitter(saturation=(0.0, 3.0))
)

p2p2satura_data = OxfordIIITPet(
    root="data",
    transform=ColorJitter(saturation=(2.0, 2.0))
)

p05p05satura_data = OxfordIIITPet(
    root="data",
    transform=ColorJitter(saturation=(0.5, 0.5))
)

p05hue_data = OxfordIIITPet(
    root="data",
    transform=ColorJitter(hue=0.5)
    # transform=ColorJitter(hue=(-0.5, 0.5))
)

p025p025hue_data = OxfordIIITPet(
    root="data",
    transform=ColorJitter(hue=(0.25, 0.25))
)

m025m025hue_data = OxfordIIITPet( # `m` is minus.
    root="data",
    transform=ColorJitter(hue=(-0.25, -0.25))
)

import matplotlib.pyplot as plt

def show_images(data, main_title=None):
    plt.figure(figsize=(10, 5))
    plt.suptitle(t=main_title, y=0.8, fontsize=14)
    for i, (im, _) in zip(range(1, 6), data):
        plt.subplot(1, 5, i)
        plt.imshow(X=im)
        plt.xticks(ticks=[])
        plt.yticks(ticks=[])
    plt.tight_layout()
    plt.show()

show_images(data=origin_data, main_title="origin_data")
show_images(data=p2bright_data, main_title="p2bright_data")
show_images(data=p2p2bright_data, main_title="p2p2bright_data")
show_images(data=p05p05bright_data, main_title="p05p05bright_data")

show_images(data=origin_data, main_title="origin_data")
show_images(data=p2contra_data, main_title="p2contra_data")
show_images(data=p2p2contra_data, main_title="p2p2contra_data")
show_images(data=p05p05contra_data, main_title="p05p05contra_data")

show_images(data=origin_data, main_title="origin_data")
show_images(data=p2satura_data, main_title="p2satura_data")
show_images(data=p2p2satura_data, main_title="p2p2satura_data")
show_images(data=p05p05satura_data, main_title="p05p05satura_data")

show_images(data=origin_data, main_title="origin_data")
show_images(data=p05hue_data, main_title="p05hue_data")
show_images(data=p025p025hue_data, main_title="p025p025hue_data")
show_images(data=m025m025hue_data, main_title="m025m025hue_data")

ColorJitter in PyTorch

ColorJitter in PyTorch

ColorJitter in PyTorch

ColorJitter in PyTorch


ColorJitter in PyTorch

ColorJitter in PyTorch

ColorJitter in PyTorch

ColorJitter in PyTorch


ColorJitter in PyTorch

ColorJitter in PyTorch

ColorJitter in PyTorch

ColorJitter in PyTorch


ColorJitter in PyTorch

ColorJitter in PyTorch

ColorJitter in PyTorch

ColorJitter in PyTorch

from torchvision.datasets import OxfordIIITPet
from torchvision.transforms.v2 import ColorJitter

colorjitter = ColorJitter()
colorjitter = ColorJitter(brightness=0,
                          contrast=0,
                          saturation=0,
                          hue=0)
colorjitter = ColorJitter(brightness=(1.0, 2.0),
                          contrast=(1.0, 1.0),
                          saturation=(1.0, 1.0),
                          hue=(0.0, 0.0))
colorjitter
# ColorJitter()

print(colorjitter.brightness)
# None

print(colorjitter.contrast)
# None

print(colorjitter.saturation)
# None

print(colorjitter.hue)
# None

origin_data = OxfordIIITPet(
    root="data",
    transform=None
    # transform=ColorJitter()
    # colorjitter = ColorJitter(brightness=0,
    #                           contrast=0,
    #                           saturation=0,
    #                           hue=0)
    # transform=ColorJitter(brightness=(1.0, 1.0),
    #                       contrast=(1.0, 1.0),
    #                       saturation=(1.0, 1.0),
    #                       hue=(0.0, 0.0))
)

p2bright_data = OxfordIIITPet( # `p` is plus.
    root="data",
    transform=ColorJitter(brightness=2.0)
    # transform=ColorJitter(brightness=(0.0, 3.0))
)

p2p2bright_data = OxfordIIITPet(
    root="data",
    transform=ColorJitter(brightness=(2.0, 2.0))
)

p05p05bright_data = OxfordIIITPet(
    root="data",
    transform=ColorJitter(brightness=(0.5, 0.5))
)

p2contra_data = OxfordIIITPet(
    root="data",
    transform=ColorJitter(contrast=2.0)
    # transform=ColorJitter(contrast=(0.0, 3.0))
)

p2p2contra_data = OxfordIIITPet(
    root="data",
    transform=ColorJitter(contrast=(2.0, 2.0))
)

p05p05contra_data = OxfordIIITPet(
    root="data",
    transform=ColorJitter(contrast=(0.5, 0.5))
)

p2satura_data = OxfordIIITPet(
    root="data",
    transform=ColorJitter(saturation=2.0)
    # transform=ColorJitter(saturation=(0.0, 3.0))
)

p2p2satura_data = OxfordIIITPet(
    root="data",
    transform=ColorJitter(saturation=(2.0, 2.0))
)

p05p05satura_data = OxfordIIITPet(
    root="data",
    transform=ColorJitter(saturation=(0.5, 0.5))
)

p05hue_data = OxfordIIITPet(
    root="data",
    transform=ColorJitter(hue=0.5)
    # transform=ColorJitter(hue=(-0.5, 0.5))
)

p025p025hue_data = OxfordIIITPet(
    root="data",
    transform=ColorJitter(hue=(0.25, 0.25))
)

m025m025hue_data = OxfordIIITPet( # `m` is minus.
    root="data",
    transform=ColorJitter(hue=(-0.25, -0.25))
)

import matplotlib.pyplot as plt

def show_images(data, main_title=None):
    plt.figure(figsize=(10, 5))
    plt.suptitle(t=main_title, y=0.8, fontsize=14)
    for i, (im, _) in zip(range(1, 6), data):
        plt.subplot(1, 5, i)
        plt.imshow(X=im)
        plt.xticks(ticks=[])
        plt.yticks(ticks=[])
    plt.tight_layout()
    plt.show()

show_images(data=origin_data, main_title="origin_data")
show_images(data=p2bright_data, main_title="p2bright_data")
show_images(data=p2p2bright_data, main_title="p2p2bright_data")
show_images(data=p05p05bright_data, main_title="p05p05bright_data")

show_images(data=origin_data, main_title="origin_data")
show_images(data=p2contra_data, main_title="p2contra_data")
show_images(data=p2p2contra_data, main_title="p2p2contra_data")
show_images(data=p05p05contra_data, main_title="p05p05contra_data")

show_images(data=origin_data, main_title="origin_data")
show_images(data=p2satura_data, main_title="p2satura_data")
show_images(data=p2p2satura_data, main_title="p2p2satura_data")
show_images(data=p05p05satura_data, main_title="p05p05satura_data")

show_images(data=origin_data, main_title="origin_data")
show_images(data=p05hue_data, main_title="p05hue_data")
show_images(data=p025p025hue_data, main_title="p025p025hue_data")
show_images(data=m025m025hue_data, main_title="m025m025hue_data")

ColorJitter in PyTorch

ColorJitter in PyTorch

ColorJitter in PyTorch

ColorJitter in PyTorch


ColorJitter in PyTorch

ColorJitter in PyTorch

ColorJitter in PyTorch

ColorJitter in PyTorch


ColorJitter in PyTorch

ColorJitter in PyTorch

ColorJitter in PyTorch

ColorJitter in PyTorch


ColorJitter in PyTorch

ColorJitter in PyTorch

ColorJitter in PyTorch

ColorJitter in PyTorch

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn