AI/Metrics

LPIPS (Learned Perceptual Image Patch Similarity)

이성훈 Ethan 2023. 4. 10. 15:05

이해하기 쉽도록 좀 극단적인 이미지를 예시로 들어 설명을 시작하도록 하겠습니다.


사람은 눈과 뇌를 통해, 서로 다른 종, 다른 옷, 다른 배경의 강아지 이미지를 보더라도 모두 다 강아지이기 때문에 비슷한 이미지라고 인식함

퍼그 도그풀 (왼쪽)과 치와와 티몬 (오른쪽)

 

그렇다면 딥러닝 모델은 이 두 이미지가 비슷한 이미지라는 것을 어떻게 평가할까?

 

픽셀 단위로 본다던지 다른 방법이 있을수도 있겠지만, 너무 low level 에서의 비교는 blur 와 같이 큰 영향을 끼치는 차이를 별 것 아닌 것처럼 인식할 수 있음 (L2 loss 의 차이가 적을 수 있음)

 

이때 LPIPS 라는 metric 을 사용하면 쉽게 비교가 가능한데, 이 metric 은 주로 생성모델 (GAN, ...) 에서 생성되거나, 복원, deblur 등을 진행한 이미지가 실제 이미지와 얼마나 유사한지 측정하는데 많이 사용됨

 


 

 

LPIPS: 2개의 이미지의 유사도를 평가하는 metric 으로 낮을수록 좋은 수치

 

전제: 사용하는 pretrained network사람의 뇌와 비슷하게 이미지를 인식한다

 

2개의 이미지를 pretrained network 에 넣어 network 중간에서 feature 를 뽑아 유사도를 비교

 

Pretrained network: VGGNet, AlexNet, SqueezeNet

 

$d(x,x_0)=\sum_{l}^{}\frac{1}{H_lW_l}\sum_{h,w}^{}\left\| w_l\odot(\hat{y}^l_{hw}-\hat{y}^l_{0hw})\right\|^2_2$

 

$l$: Layer

$h,w$: Height, Width

$y,y_0$: Unit-normalized feature vector

 

$L2$ loss 의 형태