DepthCrafter는 개방형 환경의 비디오에서 일관된 장기 깊이(Depth) 시퀀스를 생성하는 기술로, 모델의 신뢰성을 확보하기 위해서는 체계적인 평가 프로세스가 필수적입니다. 본 가이드는 원천 데이터 가공부터 성능 지표 분석까지 DepthCrafter의 전반적인 벤치마크 평가 흐름을 다룹니다.
1. 벤치마크 데이터셋 전처리 및 추출
DepthCrafter의 성능을 측정하기 위해서는 다양한 공개 데이터셋을 표준화된 형식으로 변환해야 합니다. `benchmark/dataset_extract/` 경로에 포함된 스크립트를 통해 원천 데이터를 처리할 수 있습니다.
- KITTI: 실외 주행 환경 데이터 (dataset_extract_kitti.py)
- NYU Depth V2: 실내 환경 데이터 (dataset_extract_nyu.py)
- Sintel: 그래픽 기반 애니메이션 데이터 (dataset_extract_sintel.py)
- ScanNet: 실내 3D 스캔 데이터 (dataset_extract_scannet.py)
데이터 추출을 실행하는 전형적인 명령은 다음과 같습니다. 원본 데이터 경로와 결과물이 저장될 경로를 지정하여 실행합니다.
python benchmark/dataset_extract/prep_nyu.py \
--src_dir /path/to/raw_nyu \
--dest_dir ./data/nyu_ready
이 과정을 거치면 RGB 이미지와 이에 대응하는 정답(Ground Truth) 깊이 맵이 정렬된 구조로 생성됩니다.
2. 평가 환경 구성 및 실행
데이터 준비가 완료되면 `benchmark/eval/eval.py` 스크립트를 사용하여 실제 모델 평가를 진행합니다. 이 단계에서는 도메인 설정 및 평가 대상 지표를 구성할 수 있습니다.
주요 구성 파라미터는 다음과 같습니다.
--domain: 평가 환경 설정 (예: indoor, outdoor)
--data_path: 전처리된 데이터셋의 루트 경로
--output_dir: 평가 결과 및 로그 저장 위치
--metrics: 산출하고자 하는 특정 지표 목록
실행 예시:
python benchmark/eval/eval_engine.py \
--env indoor \
--dataset_path ./data/nyu_ready \
--save_root ./eval_results/test_run \
--selected_metrics rmse abs_rel sq_rel
3. 핵심 성능 지표 분석
DepthCrafter는 깊이 추정의 정확도를 다각도에서 분석하기 위해 `benchmark/eval/metric.py`를 통해 여러 수학적 지표를 제공합니다.
| 지표 |
설명 |
해석 방향 |
| RMSE |
평균 제곱근 오차. 전체적인 예측 편차를 측정합니다. |
낮을수록 우수 |
| Abs Rel |
절대 상대 오차. 실제 값 대비 오차의 비율을 계산합니다. |
낮을수록 우수 |
| Sq Rel |
제곱 상대 오차. 큰 오차값에 더 높은 가중치를 부여합니다. |
낮을수록 우수 |
| Threshold (δ) |
예측값과 실측값의 비율이 일정 범위(1.25 등) 이내인 비율입니다. |
높을수록 우수 |
시스템은 개별 프레임에 대해 깊이 예측을 수행한 후, 유효하지 않은 영역을 마스킹 처리하고 최종적인 평균 지표를 산출합니다.
4. 대규모 일괄 평가 자동화
여러 시나리오나 다양한 체크포인트를 동시에 검증해야 하는 경우 `benchmark/infer/infer_batch.py`를 활용하여 자동화된 파이프라인을 구축할 수 있습니다.
python benchmark/infer/run_batch_evaluation.py \
--config_file ./configs/eval_setup.yaml \
--export_path ./results/batch_logs
이 방식을 사용하면 YAML 설정 파일을 통해 다수의 데이터셋에 대한 연속적인 추론과 평가를 효율적으로 수행할 수 있습니다.
5. 결과 시각화 및 포인트 클라우드 변환
수치적인 지표 외에도 생성된 깊이 시퀀스의 품질을 시각적으로 확인하는 것이 중요합니다. `visualization/visualization_pcd.py` 도구를 사용하면 예측된 깊이 맵을 3D 포인트 클라우드로 변환하여 입체적인 구조를 확인할 수 있습니다.
python visualization/convert_to_pcd.py \
--depth_src ./eval_results/depth_maps \
--rgb_src ./data/nyu_ready/rgb \
--pcd_out ./visualizations/3d_samples
이러한 시각화 과정을 통해 지표상으로는 나타나지 않는 기하학적 왜곡이나 프레임 간 불일치 문제를 정성적으로 파악할 수 있습니다.