포스트

Real-ESRGAN 아키텍처: RRDB와 고주파 생성

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 모델을 고려할 수 있다.

같이 보면 좋은 글

2026.06.02 - 공간 분해능의 이해

이 기사는 저작권자의 CC BY-NC 4.0 라이센스를 따릅니다.