
conda create - n echoscene python = 3.8
conda activate echosceneNous l'avons testé sur Ubuntu 20.04 avec Pytorch 1.11.0, CUDA 11.3 et Pytorch3d.
pip install - r requirements . txt
pip install einops omegaconf tensorboardx open3d(Remarque: si l'on rencontre un problème avec Pyyaml, veuillez vous référer à ce lien.)
Installer MMCV-DET3D (Facultatif):
mim install mmengine
mim install mmcv
mim install mmdet
mim install mmdet3dInstallez le clip:
pip install ftfy regex tqdm
pip install git + https : //github.com/openai/CLIP.gitI. Téléchargez 3D-Future-SDF. Ceci est traité par nous-mêmes sur les maillages 3D-future à l'aide d'outils dans SDFusion.
Ii Suivez cette page pour télécharger un ensemble de données SG-Front et accéder à plus d'informations.
Iii. Facultatif
Téléchargez l'ensemble de données 3D-Front à partir de leur site officiel.
Prétraitez l'ensemble de données suivant ATISS.
Iv. Créez un dossier nommé FRONT et copiez tous les fichiers.
La structure doit être similaire comme ceci:
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: Téléchargez le modèle VQ-VAE pré-entraîné à partir d'ici aux scripts/checkpoint .
Facultatif: nous fournissons deux modèles formés: EchoLayout disponible ici et EchoScene disponible ici.
Pour entraîner les modèles, courez:
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 : le chemin où les modèles et les journaux formés aimeraient être stockés.
--room_type : chambres pour s'entraîner, par exemple, «salon», «salle à manger», «chambre» et «tout». Nous formons toutes les pièces ensemble dans la mise en œuvre.
--network_type : le réseau à former. echoscene est l'échoscène, echolayout est Echolayout (méthode de récupération, branche de génération de disposition unique).
--with_SDF : réglé sur True si un échoscène de train.
--batch_size : la taille du lot pour la formation de la branche de disposition.
--large : la valeur par défaut est False , True signifie plus de catégories concrets.
Pour évaluer les modèles exécutés:
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 : où les modèles sont stockés. Si l'on veut charger nos modèles fournis, le chemin doit être aligné avec
--gen_shape : Définissez True si l'on veut faire fonctionner la branche de forme.
Cette métrique vise à évaluer la fidélité au niveau de la scène. Pour évaluer le FID / Kid, vous devez d'abord télécharger des images rendues GT de haut en bas pour les méthodes de récupération et les images rendues SDF pour des méthodes génératives, ou collectez des rendus en modifiant et en exécutant collect_gt_sdf_images.py . Notez que l'indicateur without_lamp est défini sur True dans notre expérience.
Ensuite, les rendus des scènes générés peuvent être obtenus dans eval_3dfront.py .
Après avoir obtenu à la fois des images de vérité au sol et des rendus de scènes générées, exécutez compute_fid_scores_3dfront.py .
Cette métrique vise à évaluer la fidélité au niveau des objets. Pour évaluer cela, vous devez d'abord obtenir des mailles d'objet de vérité au sol à partir d'ici (~ 5G).
Deuxièmement, stockez par objet généré dans les scènes générées, ce qui peut être effectué dans eval_3dfront.py . Après avoir obtenu des mailles d'objet, modifiez le chemin dans compute_mmd_cov_1nn.py et exécutez-le pour avoir les résultats.
Cette métrique est basée sur la distance de chanfrein. qui vérifie comment les formes générées de deux objets identiques sont similaires les uns aux autres. Pour évaluer ceci, vous devez télécharger les informations de cohérence à partir d'ici, modifier les chemins dans consistency_check.py et exécuter ce script.
Travail pertinent: Graph-to-3D, Commonscenes, Diffuscene, instructScene, ScenetEx.
Avertissement: il s'agit d'un référentiel de code pour référence uniquement; En cas de divergences, le document prévaudra.
Nous remercions l'auteur de Diffuscène, Jiapeng Tang et l'auteur de InstructScene, Chenguo Lin d'avoir fourni le code et des discussions utiles, et remercions en outre Mahdi Saleh d'avoir titré le document en tant EchoScene , qui est vif et accrocheur :)