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 모델을 고려할 수 있다.
'AI > deep-learning' 카테고리의 다른 글
| TF) Local rendezvous is aborting with status: OUT_OF_RANGE: End of sequence 에러 해결 (0) | 2024.07.28 |
|---|---|
| Segmentation/Detection 방법 (0) | 2024.04.13 |
| CLIP (0) | 2023.11.26 |
| Stable Diffuision을 알아보자 (0) | 2023.11.21 |