DISTS는 올해(2020년) 발표된 FR-IQA 방법입니다. FR 방법이지만 훈련과정이 필요한 알고리즘입니다. IQA_pytorch 패키지는 IQA 데이터베이스 중 하나인 KADID에 훈련된 DISTS의 파이썬 코드를 제공합니다. 파이토치 기반의 코드입니다.
DISTS로 이미지의 품질을 평가하기 위해서는 먼저 다음 세가지의 패키지를 설치해주셔야 합니다.
1. pytorch 1.4버전: conda install pytorh==1.4
2. torchvision: pip install torchvision
3. IQA_pytorch: pip install IQA_pytorch
저는 미리 훈련된 DISTS로 다음 왜곡 이미지의 품질을 평가하겠습니다.
참고로 DISTS는 좋은 품질일수록 0에 가까운 작은 점수를, 나쁜 품질일수록 큰 점수를 반환합니다.
DISTS를 이용해서 품질을 예측하기 위해 필요한 파이썬 코드는 다음과 같습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
from IQA_pytorch import DISTS, utils
from PIL import Image
import torch
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
ref_path = 'r0.png'
dist_path = 'r1.png'
ref = utils.prepare_image(Image.open(ref_path).convert("RGB")).to(device)
dist = utils.prepare_image(Image.open(dist_path).convert("RGB")).to(device)
model = DISTS().to(device)
score = model(dist, ref, as_loss=False)
print('score: %.4f' % score.item())
|
cs |
코드를 실행했더니, 0.3347의 점수가 나왔습니다.
그러면 비교를 위해서 위 이미지보다는 품질이 괜찮은 이미지의 품질 점수를 산출해보도록 하겠습니다.
이번에는 훨씬 작은 점수가 나왔습니다. 아까 말씀드렸듯이 DISTS는 품질이 좋을 수록 작은 점수를 반환합니다.
b스카이비전의 추천글
'Dev > python' 카테고리의 다른 글
[PyTorch] 파이토치로 n차원 텐서(행렬) 생성하기 (0) | 2020.08.19 |
---|---|
[python] ImportError: cannot import name 'PILLOW_VERSION' from 'PIL' 해결 방법 (0) | 2020.08.12 |
[Anaconda+python] CUDA 10.0에 맞게 pytorch와 torchvision 설치하기 (0) | 2020.08.12 |
[python] 현재 PC에 설치되어 있는 CUDA 버전 확인하기 (0) | 2020.08.12 |
[python] SSIM 파이썬 코드 실행하기(IQA_pytorch 패키지) (0) | 2020.08.10 |
[python] PCA를 이용해서 128차원 특성을 10차원으로 축소하기 (0) | 2020.07.31 |
[python] 소수점 넷째자리까지만 출력하고 싶다면? (0) | 2020.07.27 |
[python] 미리 훈련된 MobileNet으로 이미지 분류하기 (0) | 2020.07.26 |