Real-ESRGAN 아키텍처: RRDB와 고주파 생성
이 글은 Tistory에서 이전된 포스팅입니다. 원본은 여기에서 확인할 수 있습니다.
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 모델을 고려할 수 있다.

