Python/Vision Code

파이썬에서 이미지 간 유사도 지표 LPIPS 계산 방법

jimmy_AI 2025. 3. 25. 23:57
반응형

안녕하세요.

이번 시간에는 Python에서 대표적인 이미지 간 유사도 지표 중에 하나인 LPIPS를

계산하는 예제에 대해서 다루어보도록 하겠습니다.

 

먼저, 필요한 라이브러리 설치를 진행해줍시다.

!pip install lpips
!pip install torchvision

 

이후, 두 이미지 파일을 불러와 전처리하고 LPIPS 값을 계산하는 코드는 아래와 같습니다.

import lpips
from PIL import Image
from torchvision import transforms

# 이미지 로드 및 전처리 함수
def load_image(image_path):
    transform = transforms.Compose([
        transforms.Resize((256, 256)),  # LPIPS는 이미지 크기가 같아야 함
        transforms.ToTensor(),
        transforms.Normalize((0.5,), (0.5,))
    ])
    img = Image.open(image_path).convert('RGB')
    return transform(img).unsqueeze(0)  # (1, 3, H, W)

# LPIPS 모델 초기화 (기본 backbone: alex)
loss_fn = lpips.LPIPS(net='alex')  # 'vgg' or 'squeeze'도 가능

# 이미지 불러오기
img1 = load_image('image1.png')
img2 = load_image('image2.png')

# LPIPS 계산
lpips_distance = loss_fn(img1, img2)
print(f"LPIPS distance: {lpips_distance.item()}")

 

이 코드 스니펫이 LPIPS 지표 계산에 도움이 되셨다면 좋겠습니다.

감사합니다.