
conda create - n echoscene python = 3.8
conda activate echoscene우리는 Pytorch 1.11.0, Cuda 11.3 및 Pytorch3d로 Ubuntu 20.04에서 테스트했습니다.
pip install - r requirements . txt
pip install einops omegaconf tensorboardx open3d(참고 : Pyyaml과 문제가 발생하면이 링크를 참조하십시오.)
MMCV-DET3D 설치 (선택 사항) :
mim install mmengine
mim install mmcv
mim install mmdet
mim install mmdet3d클립 설치 :
pip install ftfy regex tqdm
pip install git + https : //github.com/openai/CLIP.gitI. 3D- 미래 SDF를 다운로드하십시오. 이것은 sdfusion의 도구를 사용하여 3D 미래 메시에서 직접 처리됩니다.
II. SG-Front 데이터 세트를 다운로드하고 추가 정보에 액세스하려면이 페이지를 따르십시오.
III. 선택 과목
공식 사이트에서 3d-Front 데이터 세트를 다운로드하십시오.
ATISS 다음에 데이터 세트를 전처리하십시오.
IV. FRONT 라는 폴더를 작성하고 모든 파일을 복사하십시오.
구조는 다음과 비슷해야합니다.
FRONT
|--3D-FUTURE-SDF
|--All SG-FRONT files (.json and .txt)
|--3D-FRONT (optional)
|--3D-FRONT-texture (optional)
|--3D-FUTURE-model (optional)
|--3D-FUTURE-scene (optional)
|--3D-FRONT_preprocessed (optional, by ATISS)
|--threed_front.pkl (optional, by ATISS)
필수 : 여기에서 폴더 scripts/checkpoint 로 사기가 발생한 VQ-VAE 모델을 다운로드하십시오.
선택 사항 : 우리는 두 가지 훈련 EchoLayout 모델을 제공 EchoScene .
모델을 훈련 시키려면 실행 :
cd scripts
python train_3dfront.py --exp /path/to/exp_folder --room_type all --dataset /path/to/dataset --residual True --network_type echoscene --with_SDF True --with_CLIP True --batchSize 64 --workers 8 --loadmodel False --nepoch 10000 --large False --use_scene_rels True
--exp : 훈련 된 모델과 로그가 저장되기를 원하는 경로.
--room_type : 훈련 할 방, 예를 들어 '거실', '식당', '침실'및 '모두'. 우리는 구현에서 모든 객실을 함께 훈련시킵니다.
--network_type : 훈련 할 네트워크. echoscene 은 에코 스킨이며, echolayout 에코 레이 아웃 (검색 방법, 단일 레이아웃 생성 분기)입니다.
--with_SDF : Train echoscene이라면 True 로 설정하십시오.
--batch_size : 레이아웃 브랜치 훈련을위한 배치 크기.
--large : 기본값은 False 이고, True 더 구체적인 범주를 의미합니다.
실행 모델을 평가하려면 :
cd scripts
python eval_3dfront.py --exp /path/to/trained_model --dataset /path/to/dataset --epoch 2050 --visualize True --room_type all --render_type echoscene --gen_shape True
--exp : 모델이 저장되는 곳. 제공된 모델을로드하려면 경로를 정렬해야합니다.
--gen_shape : Shape Branch 작업을 원한다면 True 설정하십시오.
이 메트릭은 장면 수준의 충실도를 평가하는 것을 목표로합니다. FID/KID를 평가하려면 먼저 검색 방법 및 SDF 렌더링 이미지를위한 하향식 GT 렌더링 이미지를 다운로드하거나 collect_gt_sdf_images.py 수정하고 실행하여 렌더링을 수집해야합니다. without_lamp 플래그는 실험에서 True 로 설정됩니다.
그런 다음 생성 된 장면의 렌더링은 eval_3dfront.py 에서 얻을 수 있습니다.
지상 진실 이미지와 생성 된 장면 렌더링을 모두 얻은 후 compute_fid_scores_3dfront.py 실행하십시오.
이 메트릭은 객체 수준의 충실도를 평가하는 것을 목표로합니다. 이를 평가하려면 먼저 여기에서 지상 진실 객체 메쉬를 얻어야합니다 (~ 5g).
둘째, 생성 된 장면에서 생성 된 물체 당 저장은 eval_3dfront.py 에서 수행 할 수 있습니다. 객체 메쉬를 얻은 후 compute_mmd_cov_1nn.py 에서 경로를 수정하고 결과를 얻으려면 실행하십시오.
이 메트릭은 모따기 거리를 기반으로합니다. 두 개의 동일한 객체의 생성 된 모양이 서로 비슷한 방법을 확인합니다. 이를 평가하려면 여기에서 일관성 정보를 다운로드하고 consistency_check.py 에서 경로를 수정 하고이 스크립트를 실행해야합니다.
관련 작업 : Graph-to-3D, Commonscenes, Diffuscene, orderctscene, sateetex.
면책 조항 : 참조 용 코드 저장소입니다. 불일치의 경우 논문이 우선합니다.
우리는 Difpuscene의 저자 인 Jiapeng Tang과 코드와 유용한 토론을 제공해 주신 Thructscene의 저자 Chenguo Lin에게 감사의 말씀을 전합니다. 또한 종이를 EchoScene 으로 제목으로 한 Mahdi Saleh에게 감사합니다.