본문 바로가기
AI/Computer Vision

[CV] SR 기법에서 사용되는 Loss function

by 미뇽도리 2024. 12. 17.

Loss : 실제 값과 예측값의 차이를 수치화

Optimizer : Loss function을 줄여나가면서 학습하는 방법


 

[Super resolution에서 사용되는 Loss function]

 

최신 SR 모델 논문  : MSE LOSS, L1 Loss 주로 사용함

 

1) SRGAN : Perceptual Loss

“Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network”, 2017 CVPR”  

 

Perceptual Loss = Adversarial Loss + Content Loss의 가중치 합

 

사전 지식

<GAN 의 Objective funtion>

Discriminator : 만들어낸 데이터가 실제 데이터 → 1 return / 가짜 Fake 데이터라면   0 return

실제 이미지를 실제로 예측

D(x) = 1, log(D(x)) = 0

 

실제 이미지를 Fake로 예측

▶ D(x) = 0, log(D(x)) = - \infinity

 

Fake 이미지를 실제로 예측

▶ D(x) = 1, log(1-D(x))= -\infinity

 

Fake 이미지를 Fake로 예측

▶ D(x) = 0, log(1-D(x)) = 0

 

최댓값 : 0 / 최소값 = -\infinity

Discriminator가 최댓값 0 의 성능을 보여야함


 

Generator : Discriminator를 속이는 것이 목표

G가 만들어낸 fake 이미지를 실제로 예측했을 때의 방향으로 gradient descent 진행


 

<SRGAN 의 Objective funtion>

 

Discriminator

 

GAN 모델과 유사하게 진짜 이미지는 1로 return / Fake 이미지는 0으로 return함

최댓값 0의 성능을 보여야 함


 

Generator

 


Perceptual Loss = Adversarial Loss + Content Loss의 가중치 합

 

Adversarial Loss = GAN에서의 Generator Loss 공식과 동일함

log(1-D)와 -log(D)는 동일 의미 / -log(D)가 학습 속도 더 빠름

 

 

Content Loss 

사전 학습된 VGG19 가중치 사용 (기존 데이터의 표현을 잘 담고있기 때문에 사용)

- 활성화 함수를 통과하고 Max-Pooling Layer를 통과하기 직전의 데이터 = Feature Map

 

G가 만든 가짜 고해상도 이미지의 Feature Map, 진짜 고해상도 원본 이미지의 Feature Map의 차이를 구함

해당 Feature Map끼리의 MSE

 

 

 

2) CycleGAN : Cycle Loss

"Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks"

 

이미지의 모양을 바꾸진 못한다는 단점

픽셀 수준의 특징이 아니라, 전반적인 스타일을 가져오기 때문에 눈,코,입 같은 세부적인 정보를 가져오기엔 적합하지 않다고 생각함

 

 

 

3) Style Transfer : Content Loss & Style Loss

"Image Style Transfer Using Convolutional Neural Networks"

 

Content Loss - 일반적으로 1개의 layer를 적용시킴

low-level : 원본 이미지의 pixel을 단순히 reproduce 시키는 것

high-level : 일반적인 특징들을 뽑아 이미지가 추상화됨

 

▶ 해당 논문에서는 이미지의 전체적인 특징을 얻기 위해서 high-level의 layer를 사용해서 content loss에 사용했음. 그러나 얼굴 정보의 자세한 세부 특징들을 지녀야 하기 때문에 content loss에서는 low-level의 layer를 사용하는 것이 정보를 더 잘 추출할 수 있을 것이라고 생각

 

Style loss - 서로 다른 feature map간의 상관관계

사전학습된 VGG19의 features 사용함. high-level 부터 low-level까지 다양한 수준의 loss 추출

이미지가 VGG19를 거치면서 출력한 feature map = > noise image가 유사한 feature map을 갖도록 학습

style loss는 high-level의 layer가 이미지 구조를 더 잘 보존

 

 

 

+) Pix2Pix 는 매칭되는 paired image 가 없으면 활용 X

" Pix2Pix: Image-to-Image Translation with CGAN"


 

MSE loss 문제점 

- 사람의 지각 능력을 이해하지 못함. (1 픽셀을 이동시키면 전혀 다른 해상도의 이미지라고 판단)