High-Resolution Image Synthesis with Latent Diffusion Models 논문을 보면서
여기서는 FID 점수만 쓰고
여기서는 log FID 점수를 쓰고
여기서는 LPIPS 사용
여기서는 PSNR SSIM 사용
여기서는 FID, Prec, recall 을 모두 쓰는데
이러한 차이점은 무엇인지 호기심이 생겨 조사 시작
프레쳇 인셉션 거리 (Frechet Inception distance, FID)를 사용해 GANs 평가하는 법은 무엇인가요? – Weights & Biases (wandb.ai)
프레쳇 인셉션 거리 (Frechet Inception distance, FID)를 사용해 GANs 평가하는 법은 무엇인가요?
이번 리포트에서는 GAN 평가의 까다로운 부분들(gotchas) 및 FID 평가 파이프라인 구현 방법에 대해 간단히 이야기해보겠습니다. Made by Elena Khachatryan using Weights & Biases
wandb.ai
Inception Score & Frechet Inception Distance | Daeyoung Kim (cyc1am3n.github.io)
Inception Score & Frechet Inception Distance
Inception Score (IS)
cyc1am3n.github.io
(4) 생성 모델의 평가 - 한땀한땀 딥러닝 컴퓨터 비전 백과사전 (wikidocs.net)
(4) 생성 모델의 평가
Generative model의 평가는 Ground truth가 없기 때문에 통상적인 다른 supervised learning 계열 문제에 비하면 상대적으로 어려운 편입니다. 그…
wikidocs.net
GAN 평가지표(IS:Inception Score/FID:Frechet Inception Distance) : 네이버 블로그 (naver.com)
GAN 평가지표(IS:Inception Score/FID:Frechet Inception Distance)
글쓰는것보다 수식 작성하는게 더 힘드네요.. •GAN에서 생성자(Generator)와 판별자(Discriminator)...
blog.naver.com
Precision? Recall? 쉽게 알아보자! (datanetworkanalysis.github.io)
Precision? Recall? 쉽게 알아보자!
Introduction
datanetworkanalysis.github.io
[평가 지표] PSNR / SSIM / LPIPS (tistory.com)
[평가 지표] PSNR / SSIM / LPIPS
이 글에서는 이미지 합성 분야(NeRF, GAN, Superesolution 등)에서 많이 쓰이는 3가지 지표 PSNR, SSIM, LPIPS 에 대해 다루고자 합니다. 다른 연구와의 결과를 비교하기 위해서 평가지표를 봐야하고, 그 의미
xoft.tistory.com
[평가 지표] LPIPS : The Unreasonable Effectiveness of Deep Features as a Perceptual Metric (tistory.com)
[평가 지표] LPIPS : The Unreasonable Effectiveness of Deep Features as a Perceptual Metric
논문명 : The Unreasonable Effectiveness of Deep Features as a Perceptual Metric(2018) LPIPS는 2개의 이미지의 유사도를 평가하기 위해 사용되는 지표 중에 하나입니다. 단순하게 설명하자면, 비교할 2개의 이미지를
xoft.tistory.com
* GANs Trained by a Two Time-Scale Update Rule Converge to a Local Nash Equilibrium (NIPS, 2017)
* Image Quality Assessment : From Error Visibility to Structural Similarity (IEEE, 2004)
* The Unreasonable Effectiveness of Deep Features as a Perceptual Metric (IEEE, 2018)
평가 metric에는 두 가지 분류가 가능하다.
Fidelity : 충실도(quality of images). 얼마나 natural한 이미지를 생성하고, 원본과 비교했을 경우 큰 차이가 없는지. 즉 원본 이미지의 데이터 분포에서 크게 벗어나지 않는 것.
Diversity : 다양성(variety of images). 생성된 이미지가 비슷비슷한 이미지가 아닌, 다양한 이미지를 만들어 내고 있는지.
IS : Inception score.
IS는 GAN의 성능 측정을 위해 fidelity(quality of image), diversity(variety of image) 두가지를 고려한다.
(그 중 diversity에 조금 더 치중된 느낌...? 검색 결과 말이 조금씩 다르다)
이 score는 엔트로피 계산을 통해서 얻을 수 있다.
엔트로피의 경우 무작위성으로 보면 된다. 랜덤 변수 x의 값이 예측가능하다면 엔트로피가 낮고, 예측이 어렵다면 엔트로피가 높아짐. 조건부 확률 가 예측가능성이 높기를 원하고, 이는 낮은 엔트로피가 필요함.
(x : 생성된 이미지, y : label)
(엔트로피가 높다 > 랜덤변수 x에 대해 예측되는 y의 값이 여러가지, 즉 y를 예측하기 힘들다는 것.
엔트로피가 낮다 > 랜덤변수 x에 대해 예측되는 y의 수가 적다는 것, 즉 x에 대한 y를 예측할 수 있음)
IS는 생성된 이미지의 클래스를 예측할 때 imageNet으로 pre-train 된 inception network를 사용
* IS는 높을수록 성능이 좋은것으로 판별됨
IS의 단점 :
1. 생성자가 각 label마다 하나의 이미지만 반복해서 생성하는 경우 IS가 높지만 이는 inner diversity를 고려하지 못한 좋지 못한 생성모델
2. fake image만을 이용한다 -> real image와 비교하지 못 한다.
3. FID와 마찬가지로 ImageNet data로 pre-trained된 경우 ImageNet data 이미지의 class와 다른 이미지를 다룰 경우 원하는 특징을 포착하지 못할 수 있다
FID : Frechet Inception Distance
FID의 아이디어는 우리가 만든 생성 모델이 만들어 낸 이미지를 다른 네트워크를 가지고 확인해보자는 아이디어에서 시작. 즉 우리가 만들어낸 네트워크를 A 라고 한다면, 이 A 가 만들어낸 이미지를 pre-train 된 inception network에 넣어보는 것. 생성한 이미지의 feature와 실제 이미지의 feature가 비슷하다면 성능이 좋다고 볼 수 있다.
생성된 영상의 품질을 평가하는데 사용되고, 이 평가는 영상 집합 사이의 거리를 나타낸다.
IS와의 차이점은 IS는 집합 그 자체의 우수함을 표현하는 score이므로 입력으로 한 가지 클래스만 입력한다.
(학습된 클래스들과 얼마나 닮았는지 비교하기 때문에)
FID는 생성된 영상의 집합과 실제 생성하고자 하는 클래스 데이터의 분포의 거리를 계산한다.
거리가 가까울수록 = FID 점수가 낮을수록 성능이 좋다고 판단.
1. Inception 네트워크를 사용하여 중간 layer에서 feature를 추출.
2. 이후 이 feature에서 평균 μ와 공분산 Σ를 추출계산.
3. 실제 영상 x와 생성된 영상 g 사이의 FID는 다음 식으로 계산.
FID는 IS보다 노이즈에 더 강건하고, 영상 다양성을 측정하는데 적절하다.
FID의 단점 :
1. ImageNet data로 pre-trained된 경우 ImageNet data 이미지의 class와 다른 이미지를 다룰 경우 원하는 특징을 포착하지 못할 수 있다
2. pre-trained가 아닌 경우, 많은 수의 sample로 학습시키지 않으면 biased feature layer가 생겨서 좋지 못한 FID score를 얻게 된다
3. pre-trained가 아닌 경우, 학습을 시키기 위해 시간이 오래 걸린다
4. 표본의 분포가 정규분포가 아닐 경우 제한적인 통계량(평균,분산)만으로는 분포의 차이를 잘못 설명할 수 있다.
* FID의 경우 가장 많이 사용되고 있는 지표이지만, fidelity와 diversity를 구분하지 못함.
precision과 recall은 이 두가지 기준을 중점적으로 평가할 수 있도록 도와준다.
ex) FID 점수가 비슷하지만 fidelity와 diversity 결과가 다른 사례를 위해서 논의된것같음
Precision과 Recall을 이해하려면 우선 이 표를 이해해야 한다.
TP(True Positive) : Positive로 예측해서 True임 (O라고 예측했는데 답도 O)
True : 예측이 맞음
Positive : 예측값이 Positive(1)
FN : Negative로 예측해서 False임 (X라고 예측했는데 답이 O)
False : 예측이 틀림
Negative : 예측값이 Negative(0)
FP : Positive로 예측해서 False임 (O라고 예측했는데 답이 X)
TF : False로 예측해서 True임 (X라고 예측했는데 답도 X)
Precision
Precision은 Positive라고 예측한 비율 중 진짜 Positive의 비율을 나타낸다. 즉 Positive라고 얼마나 잘 예측하였는지.
Recall
실제 Positive 데이터 중 Positive라고 예측한 비율을 뜻한다.
Precision과 다른 점 : Precision의 기준은 모델이 "예측"한 것이고, Recall의 기준은 "데이터"이다. 실제 Positive한 것 중에서 얼마나 잘 예측하였는지에 대한 비율.
(사실 저 말은 무슨말인지 잘 모르겟고 개인적으로 해석하자면 precision은 ~~라고 예측한 것이 실제로 맞는지 살펴보는 지표, Recall은 정답이 ~~~~인데 이것이 얼마나 정확한지. 순서 차이라고 보면 될듯..?)
(이들을 이미지에서 어떻게 사용하는지는 추후 분석이 더 필요할듯)
PSNR (Peak Signal-to-noise ratio)
PSNR은 영상 화질 손실량을 평가하기 위해 사용되는 지표. 이미지 저장, 전송, 압축, 영상 처리등에서 영상 화질이 바뀌었을 때 이를 평가함.
MSE는 작을 수록 좋고, PSNR은 클수록 성능이 좋다고 볼 수 있다.
MSE(Mean Square Error)는 가장 단순한 모델로서, 원본 이미지와 비교 이미지 간의 각 픽셀 오차를 계산. 이 오차가 작을 수록 이미지가 유사하다고 볼 수 있다.
PSNR에는 MSE가 분모로 들어가 있기 때문에 MSE가 작아질 수록 PSNR이 커진다. PSNR이 클수록 손실량이 적고, 퀄리티가 좋다고 볼 수 있다. MSE는 픽셀간의 단순 오차를 나타낸다고 볼 수 있다면, MSE의 scale을 변경(Normalization)한 것이 PSNR이라고 생각하면 된다.
SSIM (Structural Similarity Index Measure)
SSIM은 PSNR과 같이 변형된 영상의 화질 손상량을 평가하기 위해 사용된다. SSIM 역시 값이 높을수록 좋은 수ㅣ.
두 이미지(x, y)간의 상관계수를 Luminance(휘도 = 빛의 밝기), Contrast(대비 = 밝기 차이), Structure(구조 = 상관관계) 총 3가지 측면에서 평가한다.
픽셀의 평균값은 빛의 밝기인 Luminance를 나타내고, 표준 편차는 contrast, 그리고 structure은 2개 이미지의 같은 픽셀 위치에서 평균과의 편차의 곱으로 계산된다. 위치 정보와 편차를 사용해서 각 픽셀 간의 상관 관계를 나타내기 때문에, 음수가 나올 수도 있다.
원본 이미지를 X, 변형된 이미지를 Y로 정하고, X와 Y의 RGB 평균값의 차이가 커지면 L이 떨어지고, 차이가 커지면 C가 떨어지게 되고, 각 픽셀 위치에서 평균과의 편차가 반대 방향이면 S가 떨어지게 된다.
이 평가를 사용했을 때의 문제점은
1. 이미지의 특정 영역이 평균 RGB 값으로 채워진다면, 전체 평균, 표준 편차 값을 사용하기 때문에 SSIM이 높을 수 있다.
2. 블러처리가 되면 값의 분포가 비슷하기 때문에, SSIM이 높아질 수 있어 선명도를 평가할 수 없다.
LPIPS(Learned Perceptual Image Patch Similarity)
2개의 이미지의 유사도를 평가하기 위해 사용되는 지표 중 하나 .
즉 비교할 2개의 이미지를 각각 VGG Network에 넣고, 중간 layer의 feature 값들을 각각 뽑아내서 2개의 feature가 유사한 지를 측정하는 평가 지표.
Colorization task로는 bleeding과 color variation을 평가하기에 좋고, superresolution task로는 structural changes를 평가하기 좋다. (논문에서 나오는 내용)
'혼자서' 카테고리의 다른 글
Stable Diffusion WebUI 1.5 version 사용법 정리 (Textual inversion에 초점 맞춰서) (0) | 2023.03.29 |
---|---|
인공지능 코딩 파이썬 공부 Day 1 (0) | 2023.03.07 |
Kaggle 정리 (0) | 2022.12.16 |
Textual inversion 하는 과정 (실패후 성공!) (0) | 2022.11.25 |
Open AI Glide: Text-to image Generation Explained with code 따라해보기 2 (inpaint.ipynb) (0) | 2022.07.25 |