> 백엔드 개발 > 파이썬 튜토리얼 > PyTorch의 RandomPerspective

PyTorch의 RandomPerspective

Linda Hamilton
풀어 주다: 2025-01-17 12:10:10
원래의
586명이 탐색했습니다.

커피 한잔 사주세요😄

*메모:

  • 내 게시물에서는 RandomRotation()에 대해 설명합니다.
  • 내 게시물에서는 RandomAffine()에 대해 설명합니다.
  • 내 게시물에서는 RandomHorizontalFlip()에 대해 설명합니다.
  • 내 게시물에서는 RandomVerticalFlip()에 대해 설명합니다.
  • 내 게시물에는 OxfordIIITPet()에 대한 설명이 나와 있습니다.

RandomPerspective()는 아래와 같이 0개 이상의 이미지에 대해 원근 변환을 수행할 수 있습니다.

*메모:

  • 초기화를 위한 첫 번째 인수는istortion_scale(Optional-Default:0.5-Type:int or float)입니다. *메모:
    • 관점 전환이 가능합니다.
    • 0
  • 초기화를 위한 두 번째 인수는 p(Optional-Default:0.5-Type:int or float)입니다. *메모:
    • 각 이미지가 원근 변환으로 완성되었는지 아닌지에 대한 확률입니다.
    • 0
  • 초기화를 위한 세 번째 인수는 보간(Optional-Default:InterpolationMode.BILINEAR-Type:InterpolationMode)입니다.
  • 초기화를 위한 네 번째 인수는 fill(Optional-Default:0-Type:int, float 또는 tuple/list(int 또는 float))입니다. *메모:
    • 이미지의 배경을 변경할 수 있습니다. *이미지의 원근 변환 시 배경이 보일 수 있습니다.
    • 튜플/리스트는 3개 요소를 포함하는 1D여야 합니다.
  • 첫 번째 인수(필수 유형:PIL 이미지 또는 텐서(int))가 있습니다. *3D 텐서여야 합니다.
  • v2는 V1 또는 V2에 따라 사용하는 것이 좋습니다? 어느 것을 사용해야 합니까?.
from torchvision.datasets import OxfordIIITPet
from torchvision.transforms.v2 import RandomPerspective
from torchvision.transforms.functional import InterpolationMode

randompers = RandomPerspective()
randompers = RandomPerspective(distortion_scale=0.5,
                               p=0.5,
                               interpolation=InterpolationMode.BILINEAR,
                               fill=0)
randompers
# RandomPerspective(p=0.5,
#                   distortion_scale=0.5,
#                   interpolation=InterpolationMode.BILINEAR,
#                   fill=0)

randompers.distortion_scale
# 0.5

randompers.p
# 0.5

randompers.interpolation
# <InterpolationMode.BILINEAR: 'bilinear'>

randompers.fill
# 0

origin_data = OxfordIIITPet(
    root="data",
    transform=None
    # transform=RandomPerspective(distortion_scale=0)
    # transform=RandomPerspective(p=0)
)

dis02p1_data = OxfordIIITPet(
    root="data",
    transform=RandomPerspective(distortion_scale=0.2, p=1)
)

dis06p1_data = OxfordIIITPet(
    root="data",
    transform=RandomPerspective(distortion_scale=0.6, p=1)
)

dis1p1_data = OxfordIIITPet(
    root="data",
    transform=RandomPerspective(distortion_scale=1, p=1)
)

p1_data = OxfordIIITPet(
    root="data",
    transform=RandomPerspective(p=1)
)

p05_data = OxfordIIITPet(
    root="data",
    transform=RandomPerspective(p=0.5)
)

p1fillgray_data = OxfordIIITPet(
    root="data",
    transform=RandomPerspective(p=1, fill=150)
)

p1fillpurple_data = OxfordIIITPet(
    root="data",
    transform=RandomPerspective(p=1, fill=[160, 32, 240])
)

import matplotlib.pyplot as plt

def show_images1(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_images1(data=origin_data, main_title="origin_data")
show_images1(data=dis02p1_data, main_title="dis02p1_data")
show_images1(data=dis06p1_data, main_title="dis06p1_data")
show_images1(data=dis1p1_data, main_title="dis1p1_data")
show_images1(data=p1_data, main_title="p1_data")
show_images1(data=p05_data, main_title="p05_data")
show_images1(data=p1fillgray_data, main_title="p1fillgray_data")
show_images1(data=p1fillpurple_data, main_title="p1fillpurple_data")

# ↓ ↓ ↓ ↓ ↓ ↓ The code below is identical to the code above. ↓ ↓ ↓ ↓ ↓ ↓
def show_images2(data, main_title=None, d=0.5, prob=0.5, f=0):
    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)
        rp = RandomPerspective(distortion_scale=d, p=prob, fill=f) # Here
        plt.imshow(X=rp(im)) # Here
        plt.xticks(ticks=[])
        plt.yticks(ticks=[])
    plt.tight_layout()
    plt.show()

show_images2(data=origin_data, main_title="origin_data", d=0)
show_images2(data=origin_data, main_title="dis02p1_data", d=0.2, prob=1)
show_images2(data=origin_data, main_title="dis06p1_data", d=0.6, prob=1)
show_images2(data=origin_data, main_title="dis1p1_data", d=1, prob=1)
show_images2(data=origin_data, main_title="p1_data", prob=1)
show_images2(data=origin_data, main_title="p05_data", prob=0.5)
show_images2(data=origin_data, main_title="p1fillgray_data", prob=1, f=150)
show_images2(data=origin_data, main_title="p1fillpurple_data", prob=1,
             f=[160, 32, 240])
로그인 후 복사

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

위 내용은 PyTorch의 RandomPerspective의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿