
conda create - n echoscene python = 3.8
conda activate echosceneМы проверили его на Ubuntu 20.04 с Pytorch 1.11.0, CUDA 11.3 и Pytorch3d.
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-FUTURE-SDF. Это обрабатывается самим в сетках с 3D-веществом, используя инструменты в SDFusion.
II Следите за этой страницей для загрузки набора данных SG-Front и доступа к дополнительной информации.
Iii. Необязательный
Загрузите набор данных 3D-фронта с их официального сайта.
Предварительно обрабатывать набор данных после 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)
Essential: Загрузите предварительную модель VQ-VAE отсюда в scripts/checkpoint .
Необязательно: мы предоставляем две обученные модели: 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 : установить в 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 : Установите True если кто-то хочет сформировать работу с филиалом.
Этот показатель стремится оценить точность на уровне сцены. Чтобы оценить FID/KID, вам сначала необходимо загрузить изображения с нисходящим GT для методов поиска и рендерированных изображений SDF для генеративных методов или собирать визуализации путем изменения и запуска 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 и запустить этот сценарий.
Соответствующая работа: график к 3D, Commonscenes, Diffuscene, InstructScene, Sciestex.
Отказ от ответственности: это хранилище кода только для справки; В случае любых расхождений, документ должен преобладать.
Мы благодарим автора Diffuscene Jiapeng Tang и автора Instructscene Chenguo Lin предоставить код и полезные обсуждения, а также благодарить Махди Салеха за то, что он назвал газету EchoScene , что является ярким и запоминающимся :)