상세 컨텐츠

본문 제목

[논문 리뷰] Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization

논문 리뷰

by jii 2025. 7. 22. 00:44

본문

[1703.06868] Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization

 

Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization

Gatys et al. recently introduced a neural algorithm that renders a content image in the style of another image, achieving so-called style transfer. However, their framework requires a slow iterative optimization process, which limits its practical applicat

arxiv.org

 

1. Introduction

  • 기존 style transfer 방법 : 새로운 스타일 적용 가능
  • 문제점 : 속도 느림
  • sol : FF (속도 빠르게)
  • 문제점 : 고정된 스타일만 지원 (유연성 문제)

=> 속도와 유연성을 동시에 해결

 

Instance normalization (IN)

  • feature statistics 정규화 (항상 같은 평균 분산)
  • 즉, 스타일 통일 시킴

Adaptive instance normalization (AdaIN)

  • style 이미지에서 가져온 평균 분산 사용
  • 즉, 내용 유지+스타일 변경 가능
  • decoder는 중간 단계 feature map 결과를 이미지로 변환

 

2. Related Work

Style transfer

 

초기

  • histogram matching : 밝기 분포 맞추는 방법
  • non-parametric sampling : 텍스처 조각을 복사해서 붙이는 방법
  • 문제점 : 저수준 정보만 고려, 구조는 반영 x

딥러닝으로 해결 (Gatys)

  • CNN의 중간 feature에서 얻은 통계를 이용해 스타일 전이
  • 문제점 : 느린 최적화 과정 (속도 문제)

FF 구조로 해결

  • multi-resolution architecture 사용 : 섬세한 스타일 적용 가능 [53]
  • 샘플의 다양성 높임 [52]
  • 문제점 : 스타일 고정

여러 스타일을 하나의 네트워크에 담아서 해결

  • 하나의 네트워크에 32가지 스타일을 담고, 그 사이를 보간 가능하게 [11]
  • 최대 300개 텍스처, 16가지 스타일까지 표현 가능하게 [32]
  • 여전히 문제점 : 훈련중 본 적 없는 스타일은 적용 불가

하고자 하는 것 : 임의의 스타일 적용!!

 

style swap으로 해결

  • content / style img feature map을 가져와서 content의 각 작은 패치을 style의 가장 비슷한 패치로 교체
  • 문제점 : 속도
  • 논문의 방법은 똑같이 임의 스타일 적용 가능 + 속도도 빠름 (+)

style loss 정의 방법?

  • 결국 다 style img와 생성된 img의 feature 통계를 맞춤

Deep generative image modeling

 

이미지 생성 딥러닝 모델 : GAN

  • 이미지 생성 + style transfer + 도메인간 이미지 변환까지 수행

 

3. Background

 

3.1.Batch Normalization => 모든 img, 모든 픽셀, 각 ch

  • img 1개 : C×H×W
  • 배치 전체 : N개 이미지
  • ch별로 평균, 분산 구하고 정규화 : (2), (3)
  • 그걸로 정규화하고 scale, shift 적용 : (1)
  • , βc는 채널별 학습 가능한 파라미터

(1)

 

Batch Renormalization

  • BN에서 발생하는 차이 때문에 등장
  • train : 미니배치로부터 실시간으로 평균, 분산 계산
  • test : 전체 훈련 데이터로부터 계산된 전역 평균, 분산 (population statistics) 사용
  • 해결 : 학습 중에도 점차적으로 population statistics를 사용하도록 조절해서 차이를 줄임

 

3.2. Instance Normalization => 하나 img, 모든 픽셀, 각 ch

 

  • BN을 IN으로 바꾸면 style transfer 품질이 크게 향상
  • batch에 의존하지 않고 이미지, 채널 1개 단위로 평균, 분산 계산

 

BN과 IN 차이점

  • IN layer는 test시 학습 때랑 똑같이 적용
  • BN은 test 시 min batch 통계량 대신 전체 데이터의 누적 통계량(population statistics) 사용

 

3.3. Conditional Instance Normalization

 

style마다 다른 γ, β를 사용!

  • 동일한 conv 레이어를 공유하면서, γ, β만 바꿔서 다른 스타일 생성 가능
  • 학습 : 정해진 스타일 집합 S (논문에선 32개) 에서 하나의 스타일 s와 content img 골라서 학습

문제점

    1. 스타일 개수가 많아질수록 파라미터도 선형적으로 증가 ( F: feature map 수, S: 스타일 개수, γ, β 각각 F차원 => 총 2FS개의 파라미터 필요)
    2. 결정적으로 학습한 스타일만 사용 가능

 

4. Interpreting Instance Normalization

 

왜 IN이 성공적?

  1. 밝기가 달라도 IN 거치면 결과가 동일해지므로 = 명암 대비에 불변
  2. CNN 중간 feature map에서 정규화 수행하므로

=> 1 때문이 아니라 2 때문

 

증명(style 정규화 효과의 증거)

Fig 1

  • (a) : IN이 더 빠르게 학습 수렴
  • (b) : 이미지의 명암을 모두 동일하게 → 여전히 IN 성능 + (1 아님 증명)
  • (c) : 이미지의 스타일을 모두 동일하게 → 이미 스타일이 정규화된 상태에서 학습하면, IN의 효과가 거의 사라짐 (2 증명)
  • 남아있는 약간의 성능 차이는 스타일 정규화 자체가 완벽하지 않아서
  • BN도 스타일 정규화된 이미지를 학습할 경우, IN과 비슷한 학습 속도

=> IN은 스타일 정규화 기능을 수행한다!

 

비교

  • BN
    • 전체 이미지의 평균적인 스타일로 정규화
    • 배치 전체를 하나의 스타일에 맞추는 듯한 효과를 주지만 배치 안에는 스타일 다른 이미지 존재 가능 (-)
  • IN
    • 개별 이미지마다 정규화 : 각 이미지의 원래 스타일 제거 가능
    • 스타일 제거(IN) + 내용 보존 : 분업 구조
    • CNN은 내용만 처리하면 됨
  • CIN
    • 스타일마다 다른 γ, β
    • 원하는 스타일로 조절 가능

 

5. Adaptive Instance Normalization

 

목표 : 새로운 스타일이 들어올 때마다 실시간으로 바꾸도록

  • γ, β를 학습하는 것이 아니라 style 이미지에서 추출
  • content x, style y가 들어오면 x 정규화시키고 y의 γ, β으로 scale, shift
  • 즉, y의 평균과 분산으로 강제 정렬시키는 것

 

 

EX. 

  • 붓질과 관련된 feature
  • style img에서 붓질이 강한 부분이 해당 채널 평균이 높음
  • content img에서도 해당 채널의 평균을 높게 맞춤

 

  • feature 공간에서 style transfer 수행
  • 연산량 적음 (+)

 

6. Experimental Setup

6.1. Architecture

 

  1. encoder 거쳐서 두 이미지의 feature map 추출 : f(c), f(s)
  2. AdaIN으로 평균, 분산 맞춤 (9)
  3. style 적용된 feature를 decoder를 통해 다시 이미지 공간으로 (10)
  4. 손실 계산

(9)
(10) decoder

 

decoder에는 normalization 사용 x : 왜?

  • BN : 한 batch 내 여러 이미지가 비슷한 스타일로 정규화됨 → 여러 스타일을 다루기 어려움
  • IN : 각 이미지가 하나의 스타일로 정규화됨 → 다양한 스타일 생성에는 부적합
  • 따라서 decoder에 IN, BN 쓰면 스타일 다양성 감소

6.2. Training

  • Content img: MS-COCO dataset
  • Style img: WikiArt에서 수집
  • Optimizer: Adam
  • Batch size: 8
  • 이미지 전처리
    • 가장 짧은 변을 512로 리사이즈
    • Aspect ratio 유지
    • 이후 256×256 랜덤 크롭
  • 모델은 Fully Convolutional → test 시 다양한 크기의 이미지도 처리 가능

Loss 2가지

  • Content loss
    • 디코더 출력AdaIN 결과와 유사하도록 학습
    • 보통은 content image의 feature가 target
    • 더 빠른 수렴 + 논리적으로도 명확하므로 여기서는 AdaIN 결과(t)가 content target

(12)

 

  • Style loss
    • 스타일을 정규화하는 데 사용된 통계량 그대로 loss 구성

(13)

 

관련글 더보기

댓글 영역