콘텐츠로 이동

StyleLight HDR 파노라마 생성

물리적 정합성 기반 HDR 파노라마 생성 모델 문서


프로젝트 개요

23mm 렌즈(약 63° 화각)의 단일 NFoV HDR 이미지로부터 물리적으로 정확한 180° 반구형 HDR 파노라마를 생성합니다.

핵심 목표

목표 설명 지표
DGP 정합성 주광 눈부심 확률 계산에 필요한 절대 휘도 정합성 확보 -
전이 구간 복원 300~1000 cd/m² 구간 정밀 복원 RMSE_trans
수직 조도 정확도 Ev 오차율 최소화 < 10%

주요 기술

기술 설명
2-Stage 학습 S2R-HDR(구조) → Laval(물리 보정)
S2R-Adapter 2-브랜치 도메인 적응 구조 (r1=1, r2=128)
DTAM 이중 임계값 적응형 마스킹
Full FP32 높은 동적 범위를 위한 정밀도 유지

문서 안내

시작하기

문서 설명
프로젝트 소개 StyleLight 배경 및 현재 프로젝트 목표
환경 설정 CUDA 12.1 + GCC 12 환경 구성 (Linux/WSL2)
FAQ 자주 발생하는 오류 해결

학습 가이드

문서 설명
학습 실행 Stage 1/2 학습 명령어 및 데이터 준비

구현

문서 설명
구현 계획 마일스톤 M1~M6 정의
구현 결과 수정/생성 파일 목록 및 변경 내용

기술 문서

문서 설명
S2R-Adapter 2-브랜치 도메인 적응, 스케일 학습, TTA
DTAM 이론 이중 임계값 적응형 마스킹 수식 및 원리
마일스톤 프로젝트 목표 및 단계별 정의
통합 보고서 이론, 아키텍처, 로드맵 통합 (Single Source of Truth)

빠른 시작

1. 환경 설정

conda create -n StyleLight_conda python=3.8
conda activate StyleLight_conda

# PyTorch + CUDA 12.1
conda install pytorch==2.1.0 torchvision==0.16.0 pytorch-cuda=12.1 -c pytorch -c nvidia

2. Stage 1 학습 (구조 학습)

python train_stage1.py \
    --data ./data/s2r_hdr_processed \
    --outdir ./training-runs-stage1 \
    --gpus 1 \
    --batch 4 \
    --kimg 5000

3. Stage 2 학습 (물리 보정)

python train_stage2.py \
    --stage1_ckpt ./training-runs-stage1/network-snapshot.pkl \
    --data ./data/laval_processed \
    --outdir ./training-runs-stage2 \
    --adapter_r1 1 \
    --adapter_r2 128 \
    --dtam_onset 300 \
    --dtam_peak 1000

파일 구조

Stylelight_edit/
├── train_stage1.py           # Stage 1 학습 스크립트
├── train_stage2.py           # Stage 2 학습 스크립트
├── training/
│   ├── dtam.py               # DTAM 가중치 함수
│   ├── pu21.py               # PU21 인코딩
│   ├── s2r_adapter.py        # S2R-Adapter (2-브랜치, 스케일 조절, TTA 함수)
│   ├── tta_augment.py        # TTA 증강 모듈 (ExpAug, WBAug, FlipAug, PermAug)
│   └── coaches/
│       └── my_coach.py       # MyCoach (train_with_tta 포함)
├── inference/
│   └── validation_pipeline.py
└── metrics/
    └── physical_metrics.py   # 물리적 평가 메트릭

핵심 기술 요약

기술 목적 구현 위치
DTAM 전이 구간(300~1000 cd/m²)에 높은 학습 가중치 부여 training/dtam.py
PU21 물리적 휘도를 지각적으로 균일한 값으로 변환 training/pu21.py
S2R-Adapter Stage 1 구조 보존하면서 효율적인 물리 보정 training/s2r_adapter.py
스케일 학습 파인튜닝 시 scale1, scale2 자동 최적화 training/s2r_adapter.py
TTA 불확실성 기반 동적 스케일 조절 (선택적) training/tta_augment.py
Softplus 비음수 물리적 휘도 출력 보장 training/networks.py
Full FP32 HDR 동적 범위 정밀하게 표현 train.py