상세 컨텐츠

본문 제목

[논문 리뷰] Learning Continuous Image Representation with Local Implicit Image Function

논문 리뷰

by jii 2025. 7. 21. 01:38

본문

[2012.09161] Learning Continuous Image Representation with Local Implicit Image Function

 

Learning Continuous Image Representation with Local Implicit Image Function

How to represent an image? While the visual world is presented in a continuous manner, machines store and see the images in a discrete way with 2D arrays of pixels. In this paper, we seek to learn a continuous representation for images. Inspired by the rec

arxiv.org

 

1. Introduction

픽셀 기반 이미지 표현법의 문제점은?

  • 정밀한 표현 더 높은 해상도 필요 계산량 증가
  • cnn 학습시 모두 같은 사이즈로 만들어야 함 정보 손실

=> 해결 : 연속적인 함수 형태 기반 이미지 표현

 

연속적으로 표현하는 방법은?

  • implicit neural representation
  • 좌표에 해당하는 signal을 반환
  • encoder가 각 물체마다 latent code 예측
  • 그 latent code와 좌표를 decoder에 입력
  • 문제점 : 간단한 이미지에만 적용 성공 (// natural, complex 이미지는 x)

=> 제안 : LIIF ( decoder가 좌표와 주변 latent code 받아서 RGB 값 예측, 그 좌표는 연속적이므로 아무 해상도에서 적용 가능 )

=> 목표 : 인코딩된 LIIF 표현이 더 높은 해상도의 결과물을 예측 가능하도록

 

그렇다면 기존 super resolution과의 차이점은?

  • scale이 정해져있지 않음
  • 임의의 초고배율도 가능 resizing 필요 없음

결국 주요 핵심은

  1. natural, complex 이미지를 연속적으로 표현함
  2. x30 이상으로 확장 가능
  3. 사이즈가 모두 다른 gt에 효과적

 

2. Related Work

Implicit neural representation

  • 기존 : 3D 공간을 명시적으로 점, 격자, 혹은 표면 형태로 표현 (해상도 고정)
  • 비교 : 좌표를 input으로 받고 signal이 output으로 나오는 MLP 구조
  • 즉, "좌표 → 값" 형태의 연속 함수로 3D 형태를 표현

Learning implicit function space

 

INR을 학습하는 방식은

  1. 객체마다 MLP를 개별로 학습하거나
  2. 객체마다 latent code + decoder를 둠
    1. latent code를 encoder 없이 직접 최적화하거나 → auto decoder
    2. latent code를 encoder가 자동으로 예측하도록 → auto encoder

INR은 3D에서 성공적이지만 2D에서는 한계 

  • 이유 : MLP + ReLU 구조가 이미지 세부 표현에 한계
  • 해결책 : 활성화 함수를 sin으로
  • 그러나 아래 2가지 문제점 여전히 존재
    1. 함수 공유시에는 일반화는 됨 but 세밀한 표현이 부족
    2. 함수 따로 쓰면 표현은 정밀함 but 새로운 이미지는 처리 못 함
  • LIIF 제안 : local latent code 사용

Image generation and super-resolution

 

기존 super resolution과의 차이점?

  • super resolution
    • deconvolution(=업샘플링)을 통해 전체 이미지를 한 번에 키움
    • 스케일 고정
  • LIIF
    • 픽셀 각각을 좌표 단위로 예측
    • 임의의 높은 해상도 가능 → MetaSR도 유사하게 임의 스케일 확대를 목표로 함 (그러나 학습 범위 내에서만 작동 +)

 

3. Local Implicit Image Function

Fig 2

 

디코딩 함수 :

Eq (1)

  • 각 이미지 I(i)는 H*W개 latent code로 구성된 feature map M(i)로 표현됨
  • 이 latent code들은 이미지 공간 위에 격자로 배치 (Fig2에서 파란점)
  • x 범위는 [0,2H] [0,2W]

RGB 예측 : 

Eq (2)

  • Fig2에서는 xq기준으로 z*는 z*11

Feature unfolding

Eq (3)

  • 하나의 latent code를 만들 때 주변 3*3 이웃 정보까지 반영
  • 경계는 zero padding

Local ensemble

  • Eq 2의 문제점 : z* 선택의 민감성
  • 즉, Figure 2에서 점선은 z* 선택이 바뀌는 경계선 → 이 경계선을 기준으로 예측 결과가 크게 바뀜
  • 불연속적 패턴이 생기는 - 결과 발생
  • 해결책 : 주변 latent code 4개를 사용

Eq (4)

  • xq 주변 4개의 latent code(z)에 대해 각각 예측 수행
  • 이 예측 값들을 단순히 평균 내는게 아니라
  • 면적을 가중치로 줘서 더 가까운 z의 예측이 많이 반영되도록
  • 예측 결과 연속적 유지 가능

Cell decoding

  • 문제점 : 보통은 각 픽셀의 중심점 위치만 골라서 RGB 값 구함 면적 정보 반영 x
  • 해결책 : 위치(중심 좌표)+픽셀 크기를 같이 decoder input으로 넣자
  • 중심좌표(x)와 픽셀의 가로,세로 길이(ch,cw)를 concat해서 전달

Eq (5)
Fig 3

 

4. Learning Continuous Image Representation

 

목표 : 입력 이미지에 대해 연속적 표현 생성

  • encoder는 LIIF 표현으로 2D feature map 생성
  • decoder는 공유
  • LIIF 표현은 1. 입력 이미지 재구성에 사용 2. 해상도 높아져도 디테일 유지 조건 충족

 

학습 흐름

  1. 원래 이미지를 저해상도 이미지로
  2. 원래 이미지의 중심좌표(xhr)과 해당 픽셀의 RGB값(shr)을 gt로
  3. 저해상도 이미지를 encoder에 LIIF (latent code map)
  4. decoder가 LIIF와 xhr을 받아서 RGB 예측(s pred)
  5. L1: s pred & shr 차이 계산

 

5. Experiments

5.1. Learning continuous image representation

 

Setup

 

  • DIV2K: 고해상도 이미지 1000장
  • 각 이미지에 대해 2,3,4배 다운샘플된 이미지도 제공 → 저해상도 input으로 사용
  • 학습용 이미지: 800장
  • 검증용 이미지: 100장 

목표 : 픽셀 기반 이미지에 대해 연속적인 표현을 생성한다. 즉, 어떤 해상도로든 확대해서 표현 가능한 함수로 만든다.

  • 학습 : 1~4 사이 
  • 테스트 : out of distribution 상황, 학습시 경험하지 못한 scale 실험

Implementation details

  • 인코더에 들어가는 이미지 크기는 48*48로 고정
  • 랜덤 scale r로 고해상도 이미지 생성 (48*r)
  • 고해상도 이미지에서 48*48개 일부만 샘플링
  • 예를 들어 r이 2.5면
    • 원본 큰 이미지에서 120*120 고해상도 패치 잘라냄
    • 이걸 다운샘플링해서 인코더 입력으로(48*48)
    • 고해상도 이미지에서 48*48개 좌표와 그 RGB 값을 샘플링 → decoder 학습에 사용
    • 48*48개 샘플링 하는 이유 → 고해상도 이미지 크기가 scale마다 다르므로 일정한 개수의 샘플 뽑아서 학습하도록

모델 구조

  • encoder : upsampling 모듈 제거한 EDSR-baseline, RDN
  • decoder : 5-layer MLP
  • L1

scale 별 평가 방식

  1. x2, x3, x4 : 데이터셋에서 제공
  2. x6~x30 : 고해상도 이미지를 scale로 나눠떨어지도록 자름 → downsampling해서 예측 → gt(고해상도 이미지)랑 비교

학습 설정

  • optimizer : Adam
  • 초기 lr : 1e-4
  • 에폭 수 : 1000
  • 배치 크기 : 16
  • lr 감소 : 200에폭마다 0.5배로 감소

비교

  • MetaSR → LIIF 대신 meta-decoder 사용

Quantitative results

  • 비교 : EDSR-baseline, RDN, MetaSR
  • in-distribution : 기존 방법들과 비슷하거나 경쟁력 있는 성능 (EDSR, RDN은 특정 스케일만 학습해서 그 안에서는 +)
  • out-of-distribution 
    • EDSR, RDN은 테스트 자체가 불가능 (고정된 스케일이니까)
    • MetaSR는 동작은 가능하지만, LIIF보다 성능 -
    • LIIF는 성능이 안정적이며, 스케일이 커질수록 +

Qualitative results

  • 1-SIREN (이미지마다 MLP 학습, encoder 없음) : 공유 불가
  • MetaSR : 불연속성
  • LIIF: x30에서도 +

Fig 5

 

5.2. Ablation study

 

Cell decoding

  • scale 커지면 오히려 cell decoding이 PSNR을 낮춤 : 왜?
    • 예를 들어 x30이면 픽셀 크기가 1/30이 되므로 그만큼만 참고해야 디테일이 +
    • 만약 cell 크기가 실제 고해상도 픽셀 크기보다 크면 넓은 범위를 참고해서 blurry해짐
    • 또한 고해상도 gt 이미지가 유일한 해답이 아님

Fig 7

 

Training with k-only

  scale 4 다른 scale  scale 6~30
LIIF (4-only) 살짝 더 + - PSNR은 오히려 +
LIIF (1~4 랜덤) 전체적으로 균형 잡힘 다양한 스케일에 강함 시각적 품질은 +

 

왜 LIIF (4-only)에서 PSNR 성능이 +?

  1. ×4로만 학습하면, 원래보다 높은 스케일들(×6~x30)에 더 적응된 모델이 될 수 있음
  2. 4-only는 scale 고정 cell decoding 필요 없음 (픽셀 크기가 고정 → 디코더에 픽셀 크기를 알려줄 필요 x)
    • cell decoding은 PSNR -
    • 따라서 PSNR 기준으로 보면 오히려 +

Other design choices

  1. LIIF (-u): feature unfolding 제거 → 중간 scale에서 LIIF가 +
  2. LIIF (-e): local ensemble 제거 → 일관되게 LIIF가 +
  3. LIIF (-d): 디코딩 MLP depth를 3층으로 축소 → decoder 깊을수록 +

 

6. Conclusion

LIIF

  • 이미지가 2D 특징맵으로
  • decoder는 공유
  • 그 output은 RGB (좌표와 주변 특징 벡터 받아서)
  • 픽셀 기반 이미지에 대해 연속적인 LIIF 표현 생성 가능
  • 이 연속적인 표현은 고해상도에서 표현될 수 있음

 

관련글 더보기

댓글 영역