[논문 리뷰] Restormer: Efficient Transformer for High-Resolution Image Restoration

김소영·2026년 1월 31일

paper-review

목록 보기
2/7

1 Introduction

이전 연구

CNN

  • ‘Convolution’의 특징: local connectivity + translation equivalence
  • 장점
    • efficiency
    • generalization
  • 문제
    • Limited receptive field → 장기의존성↓
    • 추론 과정 내 Static weights → input-dependent↓

SA (Self-Attention)

  • Transformer의 주요 구성요소
  • 장점
    • 병렬처리
    • 장거리 픽셀 간 상호작용에도 효과적 (장기의존성)
  • 문제
    • 연산 복잡도가 공간 해상도에 따라 2차적으로 증가 → 고해상도 이미지에 비효율적
  • 제안된 대안
    - 입력 이미지를 patch로 나눠, 각 patch에 대해 독립적으로 SA 수행
    - 한계: 제한된 공간 범위에 대한 SA 적용 → 장거리 의존성↓



ReStormer

  • 기존 Transformer Block: ‘Self Attention’ + ‘Feed-Forward Network (FN)’

MDTA block (Multi-Dconv head transposed attention)

  1. Local Context Mixing
    • Pixel-Wise Aggregation of Cross-Channel Context (1×1 convolution)
      • 한 pixel에서 channel 축의 정보를 선형 혼합
      • channel 간 context가 pixel별로
    • Channel-Wise Aggregation of Local Context (Depth-wise Convolution)
      • 각 channel별 독립적으로 이웃 pixel의 공간 정보 집계
      • 각 channel에 local pattern 주입
  2. Feature 차원에서 SA 적용
    • spatial 차원이나 픽셀 간 상호작용 계산 x
    • feature 채널 간 cross-covariance 계산 → input feature에 대한 attention map
  • 장점
    • local context 강조 + CNN 장점
    • pixel 간 전역 관계를 간접적으로 모델링

GDFN block (Gated-Dconv FN)

  • 기존 FN 구조 : 1번째 fully connected layer - 비선형 활성화 함수 - 2번째 fully connected layer
  • GDFN
    • 문제: 기존 FN의 첫 번째 선형 계층은 모든 특징을 동일하게 변환, 입력 특징들의 중요도 고려 X
    • 방식
      • 두 개의 linear projection layer을 사용하여 입력을 각각 변환
      • 그 중 하나는 GELU 비선형 함수 적용
      • 두 결과에 대한 element-wise product
        GateOutput=(Linear1(X)GELU(Linear2(X)))\text{GateOutput} = (\text{Linear}_1(X) \odot \text{GELU}(\text{Linear}_2(X)))
    • Spatial context를 반영하기 위해 depth-wise convolution 사용
    • 공간적 특징(인접 픽셀 간 관계)을 고려한 채널 표현을 학습할 수 있음
    • Gating Mechanism을 통해 어떤 보완적 특징을 앞으로 전달할 지 제어하여,
      이후 layer들이 더 정교한 특징에 집중하도록 함

Progressive Learning Strategy

  • 초기 학습: 작은 이미지 패치 + 큰 배치 크기
  • 후반 학습: 점차 큰 이미지 패치 + 작은 배치 크기
  • 효과: 큰 이미지 문맥 학습 → 테스트 시 품질 향상


2 Background

Image Restoration

  • CNN 기반 복원 모델
    • U-Net 계열(인코더-디코더): 계층적 다중 스케일 표현으로 복원 성능, 연산 효율 높음
    • Skip Connection: 잔차 신호 학습에 효과적
    • Attention 모듈: 공간 및 채널 어텐션을 활용해 관련 정보에 선택적으로 집중

Vision Transformers

  • 이미지를 패치 단위(로컬 윈도우) 시퀀스로 분해 후 패치 간 관계 학습
  • long-range dependency 학습 능력 + 입력에 따라 적응하는 특성
  • 문제: Self-Attention의 연산량이 패치 수에 대해 2차로 증가 → 고해상도 이미지에 적용하기 어려움
  • 대안: Swin Transformer 방식 / 로컬 윈도우 내 Self-Attention
    • 문제: 문맥 집약 범위가 지역으로 제한 원래 트랜스포머의 장점인 전역 문맥 학습 능력 상실

Restormer

  • Long-term dependency + Computational efficiency



3 Method

  • 목표: 고해상도 이미지 복원에도 적용 가능한 효율적인 Transformer 모델
    • Computational Bottleneck 문제 해결을 위한 방안
      1. Multi-head SA layer
      2. Multi-scale heirarchical module

Overall Pipeline

  1. 초기 특징 추출
    • 입력: Degraded Image IRH×W×3I \in \mathbb{R}^{H \times W \times 3}
    • Convolution 적용
    • 출력: Low-level feature embeddings F0RH×W×CF_0 \in \mathbb{R}^{H \times W \times C}
  2. 4-level Symmetric Encoder-Decoder
    • Encoder-Decoder
      • 각 레벨마다 다수의 Transformer block 포함
      • 아래로 갈수록 블록 수 증가 → 효율성 유지
    • Encoder
      • 점진적으로 공간 크기 ↓, 채널 용량 ↑
    • Decoder
      • 입력: 저해상도 잠재 특징 FlRH/8×W/8×8CF_l \in \mathbb{R}^{H/8 \times W/8 \times 8C}
      • 점진적으로 고해상도 복원
    • Down/Upsampling
      • Pixel-Unshuffle, Pixel-Shuffle 사용
    • Skip Connection
      • 인코더 특징+디코더 특징 연결 → 1×1 컨볼루션으로 채널 수 절반으로 축소 (상위 레벨 제외)
    • Level-1
      • 인코더의 저수준 특징 + 디코더의 고수준 특징을 Transformer 블록에서 결합
      • fine structural, textural details 보존에 효과적
  3. Refinement Stage
    • Deep features FdF_d을 고해상도 상태에서 추가 변환 → quality improvement
  4. 출력 생성
    • Convolution 적용
    • 잔차 이미지 RRH×W×3R \in \mathbb{R}^{H \times W \times 3} 생성
    • 복원 이미지: I^=I+R\hat{I} = I + R

3.1 Multi-Dconv Head Transposed Attention

  • 기존 Self-Attention
    • 입력 이미지 크기: H×W . 모든 픽셀을 토큰으로 취급
    • Attention Map 크기: (H×W)×(H×W)
    • 연산 복잡도:
    • O((HW)2)\mathcal{O}((HW)^2)
    • 문제: ****고해상도 이미지일수록 HW가 매우 크기 때문에 연산량과 메모리 사용량 폭발
  • MDTA
    • “채널 기반” (픽셀 기반 X)
    • 채널 단위에서 attention map ← 채널-채널 간 상관관계
    • Depth-wise Convolution
      • 일반 convolution은 채널 간 연산량 ↑↑
      • depth-wise convolution은 각 채널별 독립적으로 처리 → 연산량↓ & 공간적 특징 추가 가능
    • 채널 축에서 어텐션 계산 → 복잡도는 O(C2)\mathcal{O}(C^2)로 줄어듦
  • MDTA의 동작 과정
    1. 입력 정규화
      • 입력: XRH×W×CX \in \mathbb{R}^{H \times W \times C}
      • Layer Normalization 적용 → Y
    2. Q, K, V 생성
      • 일반 SA
        • Q=WQY,K=WKY,V=WVYQ = W_Q Y, K = W_K Y, V = W_V Y (linear projection)
      • MDTA
        • 1×1 Conv + 3×3 Depth-wise Conv를 통해 Q, K, V 생성
          • 1×1 Conv
            • 각 pixel 별로 channel을 섞어서 채널 간 정보 집계
            • 공간 정보를 유지하고 채널 간 정보만 섞어서, Q,K,V 형성
          • 3×3 Depth-wise Conv
            • 각 채널을 독립적으로 convolution → 공간적 local context 주입
            • 한 channel 내부에서 주변 공간 pixel들을 집계
        • Q=WQdWQpY,K=WKdWKpY,V=WVdWVpYQ = W^d_Q W^p_Q Y, \quad K = W^d_K W^p_K Y, \quad V = W^d_V W^p_V Y
          • WpW^p: 1×1 conv (pointwise conv)
          • WdW^d: 3×3 depth-wise conv
    3. Attention Map 계산
      • Q, K를 reshape하여 채널 축 기반의 공분산(cross-covariance) 계산
        • Q^RHW×C\hat{Q} \in \mathbb{R}^{HW \times C}
        • K^RC×HW\hat{K} \in \mathbb{R}^{C \times HW}
      • Attention 맵 크기: RC×C\mathbb{R}^{C \times C}
      • A=Softmax(K^Q^α),ARC×CA = \text{Softmax}\Big(\frac{\hat{K}\hat{Q}}{\alpha}\Big), \quad A \in \mathbb{R}^{C \times C}
        • α: 학습 가능한 scaling parameter
    4. 출력 생성
      • Value V와 Attention map A를 곱해 최종 출력 계산 X^=Wp(V^A)+X\hat{X} = W_p ( \hat{V} \cdot A ) + X
        • 마지막에는 residual connection을 더해 안정적으로 학습

3.2. Gated-Dconv Feed-Forward Network

  • 기존 Feed-Forward Network (FN)
    • 픽셀 위치별로 독립적, 동일하게 연산
    • 구조: 1×1 Conv(채널 수 확장) → 비선형 활성 함수 → 1×1 Conv(채널 수 축소)
  • GDFN
    1. Gating Mechanism
      • FN 내부를 2개의 병렬 경로로 나눔
        1 ) GELU 활성화 함수 적용
        2 ) 선형 변환
      • 마지막에 Element-wise multiplication으로 결합
        Gating(X)=ϕ(W1dW1pLN(X))(W2dW2pLN(X))Gating(X)=ϕ(W_1^dW_1^pLN(X))⊙(W_2^dW_2^pLN(X))
    2. Depth-wise Convolution
      • 3×3 depth-wise conv를 포함
      • 각 채널이 주변 픽셀의 local spatial context 반영
    • 수식
      • 입력: XRH^×W^×C^X \in \mathbb{R}^{\hat{H} \times \hat{W} \times \hat{C}}
      • 출력: X^=W0pGating(X)+X\hat{X} = W^p_0 \cdot \text{Gating}(X) + X
      • Gating: Gating(X)=ϕ(W1dW1pLN(X))(W2dW2pLN(X))\text{Gating}(X) = \phi(W^d_1 W^p_1 LN(X)) \odot (W^d_2 W^p_2 LN(X))
        • WpW^p: 1×1 Conv
        • WdW^d: 3×3 Depth-wise Conv
        • ϕ: GELU 활성화
        • ⊙: 원소별 곱(Element-wise product)
    • 효과
      • Gating을 통해 유용한 특징만 다음 계층으로 전달
      • Depth-wise Conv를 통해 공간적 패턴 보존
      • MDTA와 GDFN의 역할
        • MDTA: global context 보강
        • GDFN: feature transformation & 정보 제어

3.3. Progressive Learning

  • 기존 CNN-based restoration models
    • 고정된 크기의 이미지 패치로 학습
  • 기존 Transformer
    • 작은 크기의 cropped patches로만 학습
    • 문제: global image statistics 학습 능력↓
    • 테스트 시 전체 해상도 이미지를 복원할 때 성능이 최적보다 낮음
  • Progressive Learning
    • 초기에 작은 패치로 학습 : simpler task
    • 후반에 점차 큰 패치로 학습 : complex task
    • mixed-size patch로 학습한 모델은 테스트 시 다양한 해상도의 이미지를 처리할 수 있음
    • 큰 패치 학습은 시간이 오래 걸리기 때문에, batch 크기를 줄여 학습 시간을 비슷하게 유지

0개의 댓글