DepthCrafter 모델 성능 평가 및 데이터셋 처리 가이드라인

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
이러한 시각화 과정을 통해 지표상으로는 나타나지 않는 기하학적 왜곡이나 프레임 간 불일치 문제를 정성적으로 파악할 수 있습니다.

태그: DepthCrafter ComputerVision DepthEstimation Benchmark python

5월 23일 22:27에 게시됨