[논문 리뷰] Restormer: Efficient Transformer for High-Resolution Image Restoration
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)
- 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 주입
- 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)))
- Spatial context를 반영하기 위해 depth-wise convolution 사용
- 공간적 특징(인접 픽셀 간 관계)을 고려한 채널 표현을 학습할 수 있음
- Gating Mechanism을 통해 어떤 보완적 특징을 앞으로 전달할 지 제어하여,
이후 layer들이 더 정교한 특징에 집중하도록 함
Progressive Learning Strategy
- 초기 학습: 작은 이미지 패치 + 큰 배치 크기
- 후반 학습: 점차 큰 이미지 패치 + 작은 배치 크기
- 효과: 큰 이미지 문맥 학습 → 테스트 시 품질 향상
2 Background
Image Restoration
- CNN 기반 복원 모델
- U-Net 계열(인코더-디코더): 계층적 다중 스케일 표현으로 복원 성능, 연산 효율 높음
- Skip Connection: 잔차 신호 학습에 효과적
- Attention 모듈: 공간 및 채널 어텐션을 활용해 관련 정보에 선택적으로 집중
- 이미지를 패치 단위(로컬 윈도우) 시퀀스로 분해 후 패치 간 관계 학습
- long-range dependency 학습 능력 + 입력에 따라 적응하는 특성
- 문제: Self-Attention의 연산량이 패치 수에 대해 2차로 증가 → 고해상도 이미지에 적용하기 어려움
- 대안: Swin Transformer 방식 / 로컬 윈도우 내 Self-Attention
- 문제: 문맥 집약 범위가 지역으로 제한 → 원래 트랜스포머의 장점인 전역 문맥 학습 능력 상실
Restormer
- Long-term dependency + Computational efficiency
3 Method
- 목표: 고해상도 이미지 복원에도 적용 가능한 효율적인 Transformer 모델
- Computational Bottleneck 문제 해결을 위한 방안
- Multi-head SA layer
- Multi-scale heirarchical module
Overall Pipeline
- 초기 특징 추출
- 입력: Degraded Image I∈RH×W×3
- Convolution 적용
- 출력: Low-level feature embeddings F0∈RH×W×C
- 4-level Symmetric Encoder-Decoder
- Encoder-Decoder
- 각 레벨마다 다수의 Transformer block 포함
- 아래로 갈수록 블록 수 증가 → 효율성 유지
- Encoder
- Decoder
- 입력: 저해상도 잠재 특징 Fl∈RH/8×W/8×8C
- 점진적으로 고해상도 복원
- Down/Upsampling
- Pixel-Unshuffle, Pixel-Shuffle 사용
- Skip Connection
- 인코더 특징+디코더 특징 연결 → 1×1 컨볼루션으로 채널 수 절반으로 축소 (상위 레벨 제외)
- Level-1
- 인코더의 저수준 특징 + 디코더의 고수준 특징을 Transformer 블록에서 결합
- fine structural, textural details 보존에 효과적
- Refinement Stage
- Deep features Fd을 고해상도 상태에서 추가 변환 → quality improvement
- 출력 생성
- Convolution 적용
- 잔차 이미지 R∈RH×W×3 생성
- 복원 이미지: I^=I+R
3.1 Multi-Dconv Head Transposed Attention
- 기존 Self-Attention
- 입력 이미지 크기: H×W . 모든 픽셀을 토큰으로 취급
- Attention Map 크기: (H×W)×(H×W)
- 연산 복잡도:
- O((HW)2)
- 문제: ****고해상도 이미지일수록 HW가 매우 크기 때문에 연산량과 메모리 사용량 폭발
- MDTA
- “채널 기반” (픽셀 기반 X)
- 채널 단위에서 attention map ← 채널-채널 간 상관관계
- Depth-wise Convolution
- 일반 convolution은 채널 간 연산량 ↑↑
- depth-wise convolution은 각 채널별 독립적으로 처리 → 연산량↓ & 공간적 특징 추가 가능
- 채널 축에서 어텐션 계산 → 복잡도는 O(C2)로 줄어듦
- MDTA의 동작 과정
- 입력 정규화
- 입력: X∈RH×W×C
- Layer Normalization 적용 → Y
- Q, K, V 생성
- 일반 SA
- Q=WQY,K=WKY,V=WVY (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=WVdWVpY
- Wp: 1×1 conv (pointwise conv)
- Wd: 3×3 depth-wise conv
- Attention Map 계산
- Q, K를 reshape하여 채널 축 기반의 공분산(cross-covariance) 계산
- Q^∈RHW×C
- K^∈RC×HW
- Attention 맵 크기: RC×C
- A=Softmax(αK^Q^),A∈RC×C
- α: 학습 가능한 scaling parameter
- 출력 생성
- Value V와 Attention map A를 곱해 최종 출력 계산 X^=Wp(V^⋅A)+X
- 마지막에는 residual connection을 더해 안정적으로 학습
3.2. Gated-Dconv Feed-Forward Network
- 기존 Feed-Forward Network (FN)
- 픽셀 위치별로 독립적, 동일하게 연산
- 구조: 1×1 Conv(채널 수 확장) → 비선형 활성 함수 → 1×1 Conv(채널 수 축소)
- GDFN
- Gating Mechanism
- FN 내부를 2개의 병렬 경로로 나눔
1 ) GELU 활성화 함수 적용
2 ) 선형 변환
- 마지막에 Element-wise multiplication으로 결합
Gating(X)=ϕ(W1dW1pLN(X))⊙(W2dW2pLN(X))
- Depth-wise Convolution
- 3×3 depth-wise conv를 포함
- 각 채널이 주변 픽셀의 local spatial context 반영
- 수식
- 입력: X∈RH^×W^×C^
- 출력: X^=W0p⋅Gating(X)+X
- Gating: Gating(X)=ϕ(W1dW1pLN(X))⊙(W2dW2pLN(X))
- Wp: 1×1 Conv
- Wd: 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 크기를 줄여 학습 시간을 비슷하게 유지