얼렁뚱땅 논문리뷰

[Image to Image Translation] 얼렁뚱땅 Perceptual loss for real-time style transfer and super-resolution 리뷰

MOSTAR 2022. 2. 28. 17:36

사실 나온지 꽤 된 논문 ..

High quality image generation을 위해 Perceptual Loss를 이용하여 성공적인 결과를 보이고,

Image to Image Translation(I2I)에서 Pixel 단위 Loss로 성공적인 결과를 낼 때

병렬적인 이 두개의 문제를 하나로 합쳐본 논문이라고 생각하면 될 것 같다.

미리 읽었어야 했던 논문인데 .. 이제야 읽는 내 자신을 심히 반성하며 읽어 보았다.

 

High quality image generation -> 이미지 자체를 입력으로 받지 않음

Image to Image Translation -> 이미지 자체를 입력으로 받음

 

Introduction

- Image transformation에서 Denoising, super-resolution 등을 이용하기 위해 많이 연구됨

- Image transformation 쪽에서 주로 사용하는 Loss는 per-pixel loss를 사용함

- Per pixel loss는 Output과 GT 사이에 지각적(구조적)(Perceptual) 특징을 캡처하지 못함

- 당연히 각 픽셀을 독립적으로 보기 때문에, 구조적이 유사도를 보지 못하는 것은 당연한 것임

 

- 최근 또다른 연구에서는 High-quality image 생성을 위해 Perceptual loss function을 사용함

- Perceptual Loss function은 Pixel간의 다른 점을 보는 것이 아니라, Pretrained된 네트워크에서 도출된 Image feature representation 사이의 차이를 보는 것을 의미함

- Perceptual Loss를 사용하는 것은, 기존 Per-pixel보다 두 이미지의 유사도를 판별할 때에 High-level 관점에서 평가가 가능함

- 단순 색상등의 Pixel에 의존하는 것이 아니라 의미론적 구조 관찰에 강하다는 것을 의미함

- 따라서 많은 연구들은 이를 적용하여 texture synthesis 등 다양한 적용을 수행함

- 하지만 이는, 한 이미지를 또다른 이미지로 변환하기 위해 Latent space optimization 과정이 별도로 필요하여, 시간이 오래 걸린다는 단점이 존재함

 

- 즉, 빠른 시간내에 한 이미지를 다른 이미지로 변환가능한 Image translation 수행할 수 있는 것과, Perceptual Loss로 보아 High Quality의 이미지를 생성가능한 방법론이 현재 병렬적으로 개발중에 있으며 이들의 장점을 합치고자 함

 

<논문 목적 및 시사점>

- 본 논문에서는 Super resolution과 Style Transfer에 이를 적용하고자 함

- 위의 두가지 task 를 수행하기 위해서 Input이미지에 대한 의미론적인 정보를 알아야 성공적으로 수행가능하기 때문에, 이를 잘 수행할 때, 의미론적인 관찰이 잘 되고 있음을 알 수 있음

- 별도의 Optimization 시간이 필요하지 않으므로 기존 Perceptual Loss로 Transfer를 수행했던 연구들에 비해 약 1000배가 빨라 Real-time이 가능함

 

(개인적으로 Related work로 분야 흐름을 아는 것을 중요하다고 생각하긴 하지만 지금 약간 시간이 없어서 나중에 정리하게따)

 

Method

- 본 논문에서 제안하는 네트워크는 Image transformation network와 loss network 두개로 나뉨

  • Image Transformation(fw) : y^=fw(x) , Deep residual convolutional neural network
  • loss function : difference(y^, yi), 예측과 정답 사이의 오차

 

- Perceptual Loss는 Pixel Loss 의 단점을 최소화 하고 인지적 차이 및 의미론적 차이를 잘 캐치 가능함

- 왜냐하면, Pretrained된 CNN을 사용하는데, 이는 이미 인지적 차이와 의미론적 차이를 잘 Encoding 하는 능력을 가지고 있기 때문에, Pretrained됭 CNN에서 도출한 Feature 정보를 사용할 경우, Feature 들의 차이를 통해 인지적 차이 및 의미론적 차이를 알 수 있음

- 따라서 본 논문에서 Pretrained된 가중치를 Fix 해서 사용함

 

- 본 논문에서 Loss를 두가지 방면으로 봄

  • Content : Content적으로 다른 지를 확인함. yc 라고 표기. x=yc
  •              따라서, input이미지와 네트워크가 생성한 이미지 사이는 상응하는 관계인지를 보고자 하는 것임
  • Style : 원하는 Target Style와의 차이를 봄.
  •          Style을 사용할 시, 한개의 Style 당 한개의 Network를 학습시켜야 함

 

- 최종적으로 보면, 생성되는 이미지 y^는 input이미지에 상응하는 content를 가지고 있어야 하며, Style target에 해당하는 Style 정보를 함께 가지고 있어야함

- (Super Resolution 시에는 상응하는 High frequency 이미지를 생성하는지만 보면 되기 때문에 Style Loss 사용 안함)

 

Johnson, Justin, Alexandre Alahi, and Li Fei-Fei. "Perceptual losses for real-time style transfer and super-resolution."&nbsp; European conference on computer vision . Springer, Cham, 2016.

 

Image Transformation Networks

- Residual Block을 5개 사용함

- 본 논문에서는 출력 이미지는 입력 이미지의 특징을 공유하고 가지고 있어야하기 때문에, Residual Block을 사용함

- 왼쪽 있는 아키택처의 경우 3x256x256 -> 3x256x256로 style transfer시 사용함

 

- DownSampling 후 UpSampling 하는 것에 이점이 존재함

  • 전산량적으로 효율적이기 때문에, 타 네트워크에 비해 더 큰 네트워크를 사용 가능함
  • 고품질의 Style transfer를 위해서는 이미지의 많은 부분을 일관된 형식으로 바꾸어 주어야 함 따라서, 출력의 한 픽셀 당 입력에서의 큰 Receptive Field(수용필드) 크기를 가지는 것이 유리함
  • 따라서, DownSampling 및 Upsampling을 하는 과정속에서 Receptive Field를 보다 크게 사용 가능함

- 오른쪽에 있는 아키텍처는 Super resolution시 사용하는 아키텍처를 의미함

 

Johnson, Justin, Alexandre Alahi, and Li Fei-Fei. "Perceptual losses for real-time style transfer and super-resolution."&nbsp; European conference on computer vision . Springer, Cham, 2016.

 

Perceptual loss function

- 구조적이고 의미론적인 차이를 잘 볼 수 있는 Perceptual Loss 사용

- 본 논문에서는 VGG16을 이용하였으며 VGG16은 Imagenet 데이터로 Pretrained된 것을 사용함

 

- Feature Reconstruction Loss

  • φ는 Loss architecture 즉 pretrained된 vgg16를 의미함
  • 여기서 φj(x)가 의미한느 것은, x라는 이미지가 네트워크를 통과할 때, j번째 레이어에 있는 activations에서 도출된 Feature map을 의미함
  •  j번째 activateion 에서 도출된 feature map의 경우 Cj x Hj x Wj 라는 크기로 구성됨
  • Feature Reconstruction loss는 생성한 가짜 이미지랑 정답 이미지의 Feature map 들의 유클리디안 거리를 이용해서 도출함
  • 아키텍처를 보면 content(=feature)를 보는 것은 한 layer에서만 도출하므로 아래 식으로 정리할 수 있음

Johnson, Justin, Alexandre Alahi, and Li Fei-Fei. "Perceptual losses for real-time style transfer and super-resolution."&nbsp; European conference on computer vision . Springer, Cham, 2016.

 

- 위에 아키텍처에서 보면 relu3_3로 content 유사도를 본다고 되어있음

- Feature error를 최소화 하는 방향으로 학습을 진행시키고, 각 Relu 마다 결과를 보면 모두 구조적인 유사도는 어느정도 유지되고 있으나, 네트워크가 깊어질수록, 색상, 질감 등이 제대로 보존되지 않는 것을 볼 수 있음

- 따라서, 비교적 초반인 relu3_3을 content loss를 보기 위한 층으로 사용함

Johnson, Justin, Alexandre Alahi, and Li Fei-Fei. "Perceptual losses for real-time style transfer and super-resolution."&nbsp; European conference on computer vision . Springer, Cham, 2016.

 

- Style Reconsturction Loss

(처음으로 스타일의 유사도를 어떻게 보는지 본 논문인데(부끄) 조금 생소하기도 하고 싱기했다)

  • Colors, textures, common pattern에 대해 Target과 유사하게 되도록 하는 것임
  • 딥러닝에서 Style Representation 하는 것으로 주로 Gram Matrix를 이용하여서 함
  • Style은 정의하는게 조금 독특한데, Style은 서로다른 특징들 간의 상관관계로 표현함
  • 아래 사진을 보면 C X H X W로 있는 Feature를 C x (H*W)로 변경을 함 이것을 편의상 a 라고 하면
  • a의 전치행렬 a'을 구하고 a와 a'를 곱해서 C x C 모양의 행렬을 만들고 이것을 Gram Matrix라고 함

Nguyen, Thi Hai Binh, et al. "fPADnet: small and efficient convolutional neural network for presentation attack detection."  Sensors  18.8 (2018): 2532.

  • 아래 사진을 보면, 아래사진에서는 channel의 개수가 5개임
  • 이를 C x (H*W) 로 바꾸면 맨 왼쪽이 되는 거고 그것의 전치행렬이 중간이 됨
  • 맨 오른쪽에 Gram을 보면 알 수 있 듯 곱을 해줌으로써, 모두 다른 필터들의 상관관계를 볼 수 있음
  • 예를들어 초록색 필터와 파란색 필터가 무척 상관관계가 크다면 즉, 초록색 필터에 있는 수가 커질 수록, 파란색 필터의 수도 같이 커진다라면 Gram Matrix의 (0,1)와 (1,0)는 큰 수가 될 것임. 이런식으로 상관관계를 파악가능함
  • 그럼 필터안에 있는게 도대체 무엇이냐 이러한 생각이 들 수도 있는데, 다시한번 쉽게 생각해보면 초록색 필터는 동그라미 모양의 특징을 잘 잡아내고 파란색 필터는 직선의 특징을 잘 나타낸다고 가정하였을 때, '초록색 필터와 파란색 필터가 상관관계가 크다면, 동그라미 표현이 많이 나올 때 직선의 표현도 많이 나온다' 라고 해석할 수 있음

https://cloudxlab.com/assessment/displayslide/5648/calculating-style

  • 아래 식은, 한 이미지의 Gram Matrix를 만드는 식임 CHW로 나눠주는것은 너~무 큰 수가 될까봐 나눠주는 것임

Johnson, Justin, Alexandre Alahi, and Li Fei-Fei. "Perceptual losses for real-time style transfer and super-resolution."&nbsp; European conference on computer vision . Springer, Cham, 2016.

  • 솔직히 위에 식 의미하는데에 무척 힘들었는데, 구냥 저 식보다 이 말이 더 이해가 쉬웠음
  • 내용을 해석하자면, Loss function network(vgg)에서 도출된 Feature map을 C x H*W로 모양 바꾸어서 이것이랑 이것의 전치행렬과 곱한다는 위에 쓴 내용과 같은 내용임

Johnson, Justin, Alexandre Alahi, and Li Fei-Fei. "Perceptual losses for real-time style transfer and super-resolution."&nbsp; European conference on computer vision . Springer, Cham, 2016.

 

  • 따라서, 앞에 Feature의 경우 진짜 말그대로 정답/예측 두개의 Feature의 유사도를 보았지만, Style의 경우 Gram Matrix를 도출하고 정답 Gram Matrix이랑 예측 Gram Matrix 간의 유사도를 보아야함

 

Johnson, Justin, Alexandre Alahi, and Li Fei-Fei. "Perceptual losses for real-time style transfer and super-resolution."&nbsp; European conference on computer vision . Springer, Cham, 2016.

  • 아래 사진은 Style loss를 최소화하게 학습으로 시키고 우리의 아키텍처로 생성을 시켜보면, Style의 정보는 유지되지만, 자세히 보면 구조적인 정보는 유지되지 않는 것을 볼 수 있음
  • 앞에 feature reconstruction loss는 한 층에서 도출된 Feature map의 유사도를 보았지만, Style의 경우 여러 층의 정보를 이용하며, 각 층의 Style loss의 합을 최종 Style loss로 정의함

Johnson, Justin, Alexandre Alahi, and Li Fei-Fei. "Perceptual losses for real-time style transfer and super-resolution."&nbsp; European conference on computer vision . Springer, Cham, 2016.

- 위에 각각 층마다 보여준 Relu에서의 feature map은 style or content의 오차를 minimize 하기 위한 것이였고, 실제 본 논문에서 사용하기 위해서는 두개의 적절한 조화가 필요함

 

Experiments

- style transfer와 single image super resolution 두가지로 평가함

- 기존의 style transfer와 비슷한 성과를 얻으면서도 기존에 비해 매우 빠른 속도로 이미지 생성 가능

- 기존 pixel loss -> perceptual loss

 

Style Transfer

- Baseline : Gatys, L. A., Ecker, A. S., & Bethge, M. (2015). A neural algorithm of artistic style. arXiv preprint arXiv:1508.06576.

  • 위의 논문에서 사용한 아키텍처를 본 논문과 비교하고자 하는 논문으로 선정함
  • 본 논문에서는 바꾸고자 하는 이미지 자체를 입력으로 넣지 않기 때문에, 먼저 Optimization 과정을 거쳐야 함 이는 주로 500 iter정도 돌아야 제대로 된 결과를 예측함(L-BFGS 알고리즘을 이용해 최적화 수행)
  • 그래서 본 논문보다 시간이 오래 걸리는 것임

 

- Training details

  • MS-COCO 데이터셋을 이용해 학습 진행함
  • 80k개의 이미지를 사용하였으며, 이미지의 크기는 256x256임
  • batchsize : 4, iters : 40k, Optimizer : Adam, Learning rate : 0.001, not (decay and dropout)
  • Reconstruction loss : relu 3_3, Style loss : relu1_2, relu2_2, relu3_3, relu4_3 (Using VGG16)
  • Torch, cuDNN, GTX Titan X

 

- Qualitative Result

  • 본 논문과 Baseline 논문을 평가하기 위해서, Style loss와 Content(Feature) loss의 가중치는 동일하게 둠
  • 본 논문에서 생성한 것이 더 반복적인 패턴을 가진 이미지로 생성함
  • 이라고 논문에서 말했지만, 개인적인 생각으로 엄청나게 더 우수하게 생성한다고 질적으로 평가하는 것보다는 시간적인 이득을 보면서 비슷한 수준을 맞춘다 라고 하는 것이 더 좋을 듯 함

Johnson, Justin, Alexandre Alahi, and Li Fei-Fei. "Perceptual losses for real-time style transfer and super-resolution."&nbsp; European conference on computer vision . Springer, Cham, 2016.

 

 

- Quantitative result

  • baseline 연구의 경우, 별도의 optimization이 필요하고 본 연구의 경우 아니므로 본 연구에서 수행한 것은 loss값이 직선으로 표현된 것을 볼 수 있음
  • 50개의 사진을 이용하여 평가를 수행함
  • 아래 사진을 보면 바로 전 알고리즘 iter를 50~100번 정도 돌린수준을 달성한다고 할 수 있음

Johnson, Justin, Alexandre Alahi, and Li Fei-Fei. "Perceptual losses for real-time style transfer and super-resolution."&nbsp; European conference on computer vision . Springer, Cham, 2016.

  • 수행시간을 보면 약 1/1000 수준으로 감소 한 것을 볼 수 있음

Johnson, Justin, Alexandre Alahi, and Li Fei-Fei. "Perceptual losses for real-time style transfer and super-resolution."&nbsp; European conference on computer vision . Springer, Cham, 2016.

 

Single Image super-Resolution

- 저화질을 사진을 넣어서 고화질의 사진으로 만들어 내는 것이 목표임

- .. 음 .. 하나의 저해상도 사진에서 특정 배로 증가해서 super resolution을 수행하는 것에 정답이 하나는 아님 따라서 구조적인 유사도를 보아야 하는 것임

- 기존에 주로 수행되던 Matric의 경우 PSNR과 SSIM인데, 이는 실제 인간의 평가와 낮은 상관관계가 있음으로 밝혀짐

- 이 두가지의 경우 주로 low-level에 의존적인 경향이 존재함

 

- Model details

  • X4, X8 수행
  • 288x288 크기의 이미지를 사용했으며, gaussian kernel을 이용하여 일부러 저차원이미지를 만들었음
  • iter : 200K, batch size : 4, Optimizer : Adam , without decay and dropout
  • 여기서는 Style loss를 사용할 필요 없음
  • reconstruction loss를 pixel 단위로도 수행해보고 본 논문에서 제안한 것처럼 feature loss로도 사용해 봄 -> 이걸 사용함으로써 feature loss의 중요성도 알게 되는거고 밑에 baseline이 8배를 수행못하니까 한 것으로 이해함

 

- Baseline : SRCNN

  • 기존 연구에서 X8 수행 못하기 때문에 X4로만 비교함
  • SRGAN 10^9 iter로 학습 진행 -> 우리의 모델에 비해 컴퓨팅 계산 넘 많음

 

- Result

  • SRCNN과 비교하기 위해서 4배 개선시킨것의 결과임
  • Bicubic은 Bicubic interpolation을 통해 즉 보간법으로 이미지를 고해상도로 올리는 방법임
  • 본 논문에서 제안한 Feature loss를 사용한 것이 edges 등 fine details를 잘 살린 것을 볼 수 있음
  • OOO/ㅁㅁㅁ 이것이 의미하는 것은 PSNR/SSIM을 의미함
  • 보면, Feature Loss를 사용한게 누가봐도 젤 잘 고해상도로 만들었는데, PSNR/SSIM 상으로 보았을 때, 다른 애들이 더 우수하게 예측되었다고 함 -> PSNR/SSIM 이 믿을만한 지표는 아니라는 얘기임

Johnson, Justin, Alexandre Alahi, and Li Fei-Fei. "Perceptual losses for real-time style transfer and super-resolution."&nbsp; European conference on computer vision . Springer, Cham, 2016.

 

  • 이것은 8배로 super resolution 시킨 것인데... ... 
  • 그닥 엄청 잘했다라고 말하기는 살짝 아주 살짝 그렇긴 하지만, Feature loss를 사용한 것이 pixel loss 나 그냥 보간법을 사용한 것 보다 우수하게 보이는 것을 확인 가능함

 

Conclusion

- Perceptual loss 우수함 -> edge/detail을 잡는데에

- future work -> 다른데에 적용해보기 (Colorization 등)

- 아쉬운 점 중 하나는 각 스타일마다 별도의 네트워크를 사용해야 하는 점이 아쉽긴 함