OccDepth: 3D 시맨틱 점유 네트워크를 위한 깊이 인식 방법
요약
OccDepth는 스테레오 이미지 또는 RGBD 이미지를 활용하여 3D 기하학적 구조 복구를 돕는 새로운 방법론입니다. Stereo Soft Feature Assignment (Stereo-SFA) 모듈을 통해 깊이 인식 특징을 효과적으로 융합하며, Occupancy Aware Depth (OAD) 모듈로 지식 증류를 수행합니다. 이는 3D 시맨틱 장면 완성(Semantic Scene Completion) 분야의 발전을 보여줍니다.
핵심 포인트
- 스테레오/RGBD 이미지를 활용한 3D 기하학 구조 복구 방법론 제시
- Stereo-SFA 모듈로 깊이 인식 특징을 효과적으로 융합함
- OAD 모듈을 통해 사전 학습된 깊이 모델의 지식을 증류하여 사용
- SemanticKITTI 등에서 높은 성능(IoU 41.60, mIoU 12.84) 달성
OccDepth: 3D Semantic Occupancy Network를 위한 깊이 인식 방법
뉴스
- 2023/03/30 GeForce RTX 2080 Ti에서 학습된 모델 출시.
- 2023/02/28 초기 코드 공개. 스테레오 이미지와 RGB-D 이미지를 모두 입력으로 지원함.
- 2023/02/28 Arxiv에 논문 게재.
- 2023/02/17 데모 출시.
초록 (Abstract)
본 논문에서 우리는 스테레오 이미지(또는 RGBD 이미지)의 암시적 깊이 정보를 완전히 활용하여 3D 기하학적 구조 복구를 돕는 최초의 스테레오 SSC 방법인 OccDepth를 제안합니다. Stereo Soft Feature Assignment (Stereo-SFA) 모듈을 제안하여 스테레오 이미지를 통해 상관관계를 암시적으로 학습함으로써 3D 깊이 인식 특징(depth-aware features)을 더 잘 융합합니다. 특히, 입력이 RGBD 이미지인 경우, 원본 RGB 이미지와 깊이 맵을 통해 가상 스테레오 이미지를 생성할 수 있습니다. 또한, Occupancy Aware Depth (OAD) 모듈을 사용하여 사전 학습된 깊이 모델(pre-trained depth models)의 지식 증류(knowledge distillation)를 통해 기하학 인식 3D 특징을 얻습니다.
비디오 데모
KITTI-08에서 Ground Truth와 비교한 Mesh 결과:
<p align="center"> <img src="./assets/demo.gif" alt="video loading..." /> </p> Voxel 결과는 KITTI-08에서 Ground Truth와 비교: <p align="center"> <img src="./assets/demo_voxel.gif" alt="video loading..." /> </p> 전체 데모 비디오는 `git lfs pull`을 통해 다운로드할 수 있으며, 데모 비디오는GeForce RTX 2080 Ti에서 학습된 모델을 제공합니다:
참고: 더 나은 결과를 얻으려면 share_2d_backbone_gradient = false, backbone_2d_name = tf_efficientnet_b7_ns 및 GPU 메모리가 더 많이 필요한 feature = feature_2d_oc = 64 (SemanticKITTI)를 설정해야 합니다.
정성적 결과
<div align="center"> <img width=374 src="./assets/result1-1.png"/><img width=400 src="./assets/result1-2.png"/>그림 1: 깊이 인식(depth-aware) 유무에 따른 RGB 기반 시맨틱 장면 완성 (Semantic Scene Completion). (a) 제안하는 OccDepth 방법은 더 작고 먼 물체를 감지할 수 있습니다. (b) 제안하는 OccDepth 방법이 도로를 더 잘 완성합니다.
</div>SemanticKITTI에서의 정량적 결과
<div align="center"> 표 1. SemanticKITTI 성능 (숨겨진 테스트 세트).| Method | Input | SC IoU | SSC mIoU |
|---|---|---|---|
| 2.5D/3D | |||
| ... | </div> | ||
| 장면 완성(SC IoU) 및 시맨틱 장면 완성(SSC mIoU)은 수정된 기준선(표시 'st')과 OccDepth에 대해 보고되었습니다. |
SemanticKITTI에서의 상세 결과.
<div align="center"> <img src="./assets/result2.png"/> </div>기준선과의 비교.
<div align="center"> <img width=400 src="./assets/result3.png"/> </div> 2.5D/3D 입력 방식의 기준선들. '∗'는 MonoScene에서 인용된 결과를 의미합니다. '/'는 누락된 결과를 의미합니다.사용법
환경 설정 (Environment)
- conda 환경 생성:
conda create -y -n occdepth python=3.7
conda activate occdepth
conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia
- 의존성 설치:
pip install -r requirements.txt
conda install -c bioconda tbb=2020.2
준비 (Preparing)
SemanticKITTI
-
kitti 오도메트리 및 시맨틱 데이터셋 다운로드
-
전처리된 깊이(depth) 다운로드
-
전처리된 kitti 시맨틱 데이터
cd OccDepth/
python occdepth/data/semantic_kitti/preprocess.py data_root="/path/to/semantic_kitti" data_preprocess_root="/path/to/kitti/preprocess/folder"
### NYUv2
- NYUv2 데이터셋 다운로드
- [NYUv2](https://www.rocq.inria.fr/rits_files/computer-vision/monoscene/nyu.zip)
- 전처리된 NYUv2 데이터
``` bash
cd OccDepth/
python occdepth/data/NYU/preprocess.py data_root="/path/to/NYU/depthbin"
data_preprocess_root="/path/to/NYU/preprocess/folder"
설정 (Settings)
env_{dataset}.sh에서DATA_LOG,DATA_CONFIG설정, 예시:
##examples
export DATA_LOG=$workdir/logdir/semanticKITTI
export DATA_CONFIG=$workdir/occdepth/config/semantic_kitti/multicam_flospdepth_crp_stereodepth_cascadecls_2080ti.yaml
2. 설정 파일 (occdepth/config/xxxx.yaml)에서 `data_root`, `data_preprocess_root` 및 `data_stereo_depth_root` 설정, 예시:
``` yaml
##examples
data_root: '/data/dataset/KITTI_Odometry_Semantic'
data_preprocess_root: '/data/dataset/kitti_semantic_preprocess'
...
추론 (Inference)
평가 (Evaluation)
cd OccDepth/
source env_{dataset}.sh
## 학습된 모델을 OccDepth/trained_models/occdepth.ckpt로 이동합니다.
...
학습 (Training)
cd OccDepth/
source env_{dataset}.sh
## 4개의 GPU와 각 GPU당 배치 크기는 1입니다.
...
라이선스 (License)
이 저장소는 LICENSE 파일에 명시된 Apache 2.0 라이선스 하에 공개되었습니다.
감사의 말 (Acknowledgements)
저희의 코드는 다음 우수한 오픈 소스 프로젝트들을 기반으로 합니다:
이 모든 프로젝트에 깊이 감사드립니다!
관련 저장소 (Related Repos)
- https://github.com/wzzheng/TPVFormer
- https://github.com/FANG-MING/occupancy-for-nuscenes
- https://github.com/nvlabs/voxformer
인용 (Citation)
본 프로젝트가 연구에 유용하다고 생각되시면, 다음을 인용해 주시기 바랍니다:
@article{miao2023occdepth,
Author = {Ruihang Miao and Weizhou Liu and Mingrui Chen and Zheng Gong and Weixin Xu and Chen Hu and Shuchang Zhou},
Title = {OccDepth: A Depth-Aware Method for 3D Semantic Scene Completion},
...
문의 (Contact)
궁금한 점이 있으시면, 이슈를 열거나 [email protected] 또는 [email protected]으로 연락 주십시오.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub GameDev의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기