통합 연구 보고서¶
물리적 정합성 확보를 위한 고해상도 HDR 파노라마 생성 모델 (Rev. 1.2)
1. 서론 및 문서 통합 전략¶
1.1 프로젝트 배경¶
본 프로젝트는 제한된 시야(Narrow-Field-of-View, NFoV)를 가진 단일 HDR 이미지로부터 물리적으로 정확한 180도 광각 HDR 파노라마를 생성하여, 신뢰할 수 있는 주광 눈부심 확률(Daylight Glare Probability, DGP) 시뮬레이션을 수행하는 것을 목표로 한다.
1.2 문서 통합 구조¶
이 통합 보고서는 향후 프로젝트 진행의 단일 진실 공급원(Single Source of Truth) 역할을 수행하며, 이론적 배경부터 구체적인 코드 구현 레벨의 전략까지 포괄한다.
통합된 내용:
| 출처 문서 | 통합 위치 |
|---|---|
| 이론 및 아키텍쳐 정의서 | 제2~3장 |
| 조도 적응형 마스크(DTAM) 연구 | 제4장 손실 함수 |
| 마일스톤 | 제7장 로드맵 |
| S2R-HDR 및 Laval 데이터셋 스펙 | 제6장 데이터 파이프라인 |
2. 이론적 배경¶
2.1 주광 눈부심 확률(DGP)의 물리적 메커니즘¶
DGP는 단순한 시각적 불쾌감을 넘어, 조명 환경의 물리적 에너지가 인간의 생리적 반응에 미치는 영향을 정량화한 지표이다.
DGP 수식:
2.1.1 수직 조도(\(E_v\))와 순응(Adaptation)의 관계¶
수식에서 \(E_v\)는 로그 항의 분모에 위치한다는 점이 중요하다.
- 인간의 눈은 주변 환경의 밝기(\(E_v\))에 순응(Adaptation)
- 순응 레벨이 높을수록 동일한 강도의 광원에 대해 덜 민감하게 반응
- 이는 베버-페히너 법칙(Weber-Fechner Law)을 반영
핵심 문제점
생성 모델이 벽면이나 창문의 확산광을 실제보다 어둡게 생성하면 (예: 300 → 100 \(cd/m^2\)), \(E_v\) 값이 급격히 감소하고 DGP가 폭발적으로 증가하여 거짓 양성(False Positive) 결과를 초래한다.
2.2 기존 컴퓨터 비전 모델의 한계¶
현재 주류 생성형 AI 모델들(Stable Diffusion, Midjourney 등)은 8-bit RGB 이미지(LDR)를 기반으로 학습된다.
| 문제점 | 설명 |
|---|---|
| 클리핑(Clipping) | 고휘도 영역(수십만 \(cd/m^2\))이 255(흰색)로 잘려나감 |
| 물리적 선형성 결여 | 감마 보정/톤 매핑으로 \(Pixel \propto Energy\) 관계가 파괴됨 |
| LDM VAE 트랩 | VAE 압축 과정에서 작은 광원의 피크 휘도가 평탄화(Smoothing)됨 |
2.3 23mm 협각 렌즈의 한계¶
건축 현장에서 흔히 사용되는 23mm 광각 렌즈는 약 63°의 시야각(FoV)을 가진다.
| 문제 | 영향 |
|---|---|
| 누락된 데이터 | 전체 반구 면적의 약 80% 이상 누락 |
| 광원 누락 | 창문이나 조명이 프레임 밖에 위치할 경우 주요 눈부심 원인 놓침 |
| \(E_v\) 과소평가 | 누락된 영역의 빛 에너지가 적분에서 제외되어 실제의 1/5 수준 |
3. 아키텍처 정의¶
3.1 기반 모델 선정: StyleGAN2¶
최근 Diffusion Model이 트렌드이지만, 본 연구에서는 StyleGAN2 (StyleLight 변형)를 채택한다.
| 장점 | 설명 |
|---|---|
| 픽셀 공간 직접 연산 | VAE 없이 픽셀 공간으로 직접 매핑, HDR 동적 범위 손실 없음 |
| 고해상도 안정성 | \(1024 \times 1024\) 이상에서 검증된 안정성 |
| GAN Inversion | NFoV 이미지를 잠재 공간에 역투영하여 Outpainting에 구조적 적합 |
3.2 목표 해상도¶
\(512 \times 1024\) (Equirectangular Format) Native 출력
- 기존 StyleLight (\(256 \times 512\))보다 상향
- 1:2 비율의 비정사각형 데이터
3.3 Full FP32 정밀도 정책¶
본 프로젝트의 가장 중요한 기술적 차별점이다.
FP16(Mixed Precision)의 문제¶
| 문제 | 설명 |
|---|---|
| Overflow | FP16 최대값 65,504 < 태양 휘도(수백만 \(cd/m^2\)). 강제 클리핑 발생 |
| Underflow | 어두운 그림자(\(10^{-3} cd/m^2\))에서 그래디언트 소실 |
해결책¶
데이터 로딩, 모델 가중치, 활성화 함수, 손실 계산 등 전 과정을 float32로 통일
3.4 출력층 활성화 함수 변경¶
기존 StyleGAN2는 Tanh (\([-1, 1]\))를 사용하지만, 물리적 휘도는: - 음수일 수 없음 (\(L \ge 0\)) - 상한선이 없음
해결책: Softplus 활성화 함수
| 특성 | 설명 |
|---|---|
| 비음수성 | 항상 양수 출력 |
| 무한 동적 범위 | 상한 없음, 고휘도 직접 회귀 가능 |
| 미분 가능 | ReLU와 달리 0 근처에서 부드러움 |
4. 핵심 방법론¶
4.1 2-Stage 하이브리드 학습 전략¶
데이터 편향 문제를 해결하고 물리적 정확도를 확보하기 위한 전략이다.
| 단계 | 데이터셋 | 목표 | 학습 방식 | DTAM |
|---|---|---|---|---|
| Stage 1 | S2R-HDR (24k, 합성) | 구조적 일반화 | Scratch Training | 미적용 |
| Stage 2 | Laval Indoor (1.7k, 실측) | 물리적 도메인 적응 | S2R-Adapter | 적용 |
Stage 1: 구조 학습¶
- 데이터셋: S2R-HDR (Unreal Engine 5로 생성된 24,000장 합성 HDR)
- 전략: 물리적 휘도 정확성보다 인페인팅/아웃페인팅 능력 배양에 집중
- DTAM: 미적용 (합성 데이터의 물리량이 실제와 다를 수 있음)
Stage 2: 물리 보정¶
- 데이터셋: Laval Photometric Indoor HDR (색차계 보정된 1,700장 실측 데이터)
- S2R-Adapter: Stage 1의 \(G\) 가중치 동결, 2-브랜치 어댑터만 학습
- r1=1 (미세 조정)
- r2=128 (광범위 적응)
- scale1, scale2: 학습 가능 파라미터로 자동 최적화
Test-Time Adaptation (TTA) - 선택적 기능¶
- 목적: 새로운 도메인 데이터에 대한 추론 시 동적 적응
- 작동 원리:
- 입력에 N개 증강(ExpAug, WBAug, FlipAug, PermAug) 적용
- 출력들의 분산으로 불확실성 \(U(x)\) 계산
- 스케일 동적 조절: \(\alpha_1 = 1 - U(x)\), \(\alpha_2 = 1 + U(x)\)
- 사용 시나리오:
- Laval 파인튜닝 후: TTA 불필요 (기본 off)
- 새 도메인 추론 시: TTA 선택적 활성화
4.2 구조적 일관성 손실 (\(\mathcal{L}_{Consist}\))¶
Stage 2에서 Laval 데이터에 과적합되어 Stage 1의 구조 지식이 무너지는 것을 방지한다.
- Stage 1 모델 = Teacher
- Stage 2 모델 = Student
- 물리적 휘도 스케일은 변경하되, 내용과 구조는 Stage 1 지식을 따르도록 강제
4.3 DTAM (이중 임계값 적응형 마스킹)¶
Stage 2 학습의 핵심 손실 함수 전략이다.
가중치 함수 \(W(L)\)¶
| 휘도 구간 (\(cd/m^2\)) | 가중치 | 역할 |
|---|---|---|
| 0 ~ 300 | 1.0 | 배경/텍스처 학습 |
| 300 ~ 1,000 | 1.0 → 10.0 | 전이 구간, \(E_v\) 정합성 보장 |
| 1,000+ | 10.0 | 광원 피크 정밀 복원 |
최종 물리 손실 함수¶
- PU21: 인간의 시각적 인지 특성 반영
- \(W_{DTAM}\): 조명 공학적 중요도 반영
- 적용 대상: Generator 가중치 업데이트에만 사용
5. 계산 인프라¶
5.1 GPU 및 VRAM 요구사항¶
\(512 \times 1024\) 해상도의 Full FP32 학습을 위해 NVIDIA RTX 5090을 사용한다.
| 항목 | 스펙 |
|---|---|
| GPU | NVIDIA RTX 5090 |
| VRAM | 32GB GDDR7 (예상) |
| 배치 사이즈 | 1~2 (FP32 기준) |
| 정밀도 | amp 비활성화, 전 과정 float32 |
5.2 학습 안정화: Gradient Accumulation¶
배치 사이즈 제약을 극복하기 위해 16~32 스텝 동안 그래디언트를 누적한 후 역전파를 수행한다.
6. 데이터셋 구성 및 전처리¶
6.1 S2R-HDR (Synthetic to Real HDR)¶
| 항목 | 내용 |
|---|---|
| 장수 | 24,000장 |
| 해상도 | \(1920 \times 1080\) |
| 포맷 | EXR |
전처리 과정:
- \(1024\) 폭에 맞춰 다운샘플링 (Lanczos 필터)
- pytorch360convert로 \(512 \times 1024\) Equirectangular 변환
- float32 변환 (톤 매핑 없이 선형 휘도 유지)
6.2 Laval Photometric Indoor HDR¶
| 항목 | 내용 |
|---|---|
| 장수 | 1,719장 |
| 특징 | 물리적 휘도 보정 완료 |
| 포맷 | HDR |
전처리 과정:
- .hdr 파일 헤더의 노출 값(Exposure) 반영
- 절대 휘도(\(cd/m^2\))로 변환
- FP32 텐서화
7. 연구 개발 로드맵¶
Milestone 1~3: 기반 구축 및 Stage 1¶
| 마일스톤 | 내용 |
|---|---|
| M1 | 데이터셋(S2R/Laval) 확보, pytorch360convert 파이프라인 구축 |
| M2 | 출력층 Softplus 변경, Full FP32 로더 구현 |
| M3 | S2R-HDR로 구조 학습 (DTAM 미적용) → Checkpoint-Stage1 |
Milestone 4: Stage 2 학습¶
세부 활동:
- Checkpoint-Stage1 로드 및 \(G\) 동결
- S2R-Adapter 적용
- \(\mathcal{L}_{Phys} + \mathcal{L}_{Consist}\) 복합 손실 함수로 학습
- → Checkpoint-Final
Milestone 5: 검증 파이프라인¶
8. 검증 방법론¶
8.1 검증 파이프라인 (Validation Workflow)¶
| 단계 | 작업 | 출력 |
|---|---|---|
| 1 | 생성 | \(512 \times 1024\) Equirectangular HDR (FP32) |
| 2 | 크롭 | 전방 180° 영역 (\(512 \times 512\)) |
| 3 | 초해상도 (SR) | \(1024 \times 1024\) (SwinIR 등) |
| 4 | 투영 변환 | Angular Fisheye (-vta) 포맷 |
| 5 | 헤더 주입 | VIEW= -vta -vv 180 -vh 180 |
| 6 | DGP 산출 | evalglare 실행 |
8.2 평가 지표¶
| 지표 | 설명 | 목표 |
|---|---|---|
| \(\Delta E_v\) | 수직 조도 오차율 | < 10% |
| \(RMSE_{trans}\) | 전이 구간(300~1,000 \(cd/m^2\)) 오차 | 최소화 |
| DGP Class Accuracy | 눈부심 등급 분류 정확도 | 최대화 |
9. 결론 및 기대 효과¶
본 연구 보고서는 다음의 핵심 기술을 통해 이론적 완성도를 높였다:
| 기술 | 역할 |
|---|---|
| S2R-Adapter | 2-브랜치 도메인 적응으로 효율적 물리 보정 |
| 스케일 학습 | 파인튜닝 시 scale1, scale2 자동 최적화 |
| TTA (Test-Time Adaptation) | 불확실성 기반 동적 스케일 조절 (선택적) |
| 구조적 일관성 손실 (\(\mathcal{L}_{Consist}\)) | Stage 1 지식 보존 |
| Softplus 활성화 함수 | 무한 동적 범위 지원 |
| Full FP32 파이프라인 | 물리적 휘도 정밀도 확보 |
| DTAM | 전이 구간 학습 강화 |
| SR 후처리 | 작은 광원 소실 방지 |
S2R-Adapter 구현 상세¶
S2R-Adapter의 핵심 구성요소:
| 구성요소 | 파일 | 설명 |
|---|---|---|
| S2R-Adapter 코어 | training/s2r_adapter.py |
2-브랜치 어댑터, 스케일 조절 함수 |
| TTA 증강 | training/tta_augment.py |
ExpAug, WBAug, FlipAug, PermAug |
| TTA 통합 | training/coaches/my_coach.py |
train_with_tta() 메서드 |
스케일 조절 전략:
- 파인튜닝 시 (Stage 2):
make_scales_learnable()호출-
역전파를 통해 최적 scale1, scale2 자동 학습
-
추론 시 (TTA 활성화):
- 불확실성 \(U(x)\) 계산
- \(\alpha_1 = 1 - U(x)\), \(\alpha_2 = 1 + U(x)\) 적용
- 새로운 도메인에서만 선택적 사용
기대 효과:
RTX 5090 기반 Full FP32 연산과 SR 후처리 파이프라인의 결합은 물리적 휘도 정보의 손실을 극소화하여, 23mm 협각 사진 한 장만으로도 신뢰할 수 있는 수준의 조명 시뮬레이션을 가능하게 할 것이다.
이는 건축 및 조명 설계 분야에서 고가의 장비 없이도 정밀한 환경 분석을 수행할 수 있는 혁신적인 도구가 될 것이다.