ESRGAN 기본 아키텍처

 

Real-ESRGAN은 RRDB 기반 CNN Generator를 GAN 방식으로 학습한 Super-Resolution 모델이다.

Low-Resolution(저주파) 이미지를 High-Resolution(고주파) 이미지로 만든다.

Input (LR Image)
 → Conv
 → RRDB × N
 → Conv
 → Upsampling (x2 / x4)
 → Conv
 → Output (HR Image)

 

RRDB (Residual-in-Residual Dense Block)

 

RRDB 가 하는 일은 다음과 같다.

LR image
→ Conv
→ RRDB blocks
→ "이 위치엔 이런 엣지/텍스처가 있어야 한다"
→ 고주파 feature maps 생성

이미지에서 주파수

저주파

- 밝기 변화

- 큰 구조, 윤곽, 형태

- ex) 사진의 전체적인 색감, 눈·코·입의 대략적인 위치, 건물의 큰 실루엣

 

고주파

- 엣지

- 텍스처

- ex) 잔머리, 피부결, 글자 테두리

 

일반적으로 해상도 감소는 고주파 제거가 수학적으로 필연적이고,

Low-Resolution Image는 고주파 성분이 손실된 상태다.

왜 RRDB 구조가 고주파에 강한가?

Residual은 수식적으로:

(Residual = 입력을 출력에 더해주는 skip connection 구조)

Output = Input + Δ

 

여기서 Δ(델타)가 기존 이미지에 더해질 변화량(=고주파 성분)이다.

즉 RRDB는 구조적으로 저주파는 입력에 남겨두고 고주파만 학습하도록 유도한다.

 

그리고 Dense 연결은

- 얕은 층의 엣지 정보

- 깊은 층의 복잡한 텍스처

모두 유지한다.

Upsampling

업스케일링은 고주파를 만드는 단계가 아니라  이미 만들어진 고주파를 펼치는 단계이다.

Feature Map (H, W, C) = RRDB output
 → Conv (C × r²)
 → PixelShuffle
 → (H×r, W×r, C)
 → Conv

PixelShuffle은 채널 차원에 저장된 업스케일 대상 픽셀 정보를 공간 차원(H, W)으로 재배치하는 연산이다.

(H, W, C×r²) → (rH, rW, C)

 

원본(저주파)은 보존되는가

GAN 방식으로 학습된 모델이기 때문에 Adversarial loss가 너무 크면 원본까지 왜곡이 될 수 있다.

 

매우 작은 해상도 → 큰 배율 업스케일

ex) 64x64 → 1024x1024

이 경우, 저주파 정보 자체가 부족하여 원본이 변형될 수 있다.

 

SR(Super-Resolution)은 필요하지만 원본이 보존되어야 하는 경우 (의료, 계측, 정량 분석 등)

잘 통제된 설정에서 사용하거나 non-GAN SR 모델을 고려할 수 있다.