
conda create - n echoscene python = 3.8
conda activate echosceneLo hemos probado en Ubuntu 20.04 con Pytorch 1.11.0, Cuda 11.3 y Pytorch3d.
pip install - r requirements . txt
pip install einops omegaconf tensorboardx open3d(Nota: Si uno encuentra un problema con Pyyaml, consulte este enlace).
Instalar MMCV-DET3D (opcional):
mim install mmengine
mim install mmcv
mim install mmdet
mim install mmdet3dInstalar clip:
pip install ftfy regex tqdm
pip install git + https : //github.com/openai/CLIP.gitI. Descargar 3D-Future-SDF. Esto es procesado por nosotros mismos en las mallas del futuro 3D utilizando herramientas en SDFusion.
II. Siga esta página para descargar el conjunto de datos del frente SG y acceder a más información.
Iii. Opcional
Descargue el conjunto de datos 3D-front desde su sitio oficial.
Preprocese el conjunto de datos después de ATISS.
IV. Cree una carpeta llamada FRONT y copie todos los archivos.
La estructura debe ser similar como esta:
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)
Esencial: descargue el modelo VQ-VAE previamente a la carpeta a los scripts/checkpoint de la carpeta.
Opcional: proporcionamos dos modelos capacitados: EchoLayout disponible aquí y EchoScene disponible aquí.
Para entrenar las modelos, ejecute:
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 : La ruta donde los modelos y los registros entrenados les gustaría almacenarse.
--room_type : habitaciones para entrenar, por ejemplo, 'sala de estar', 'sala de comedor', 'dormitorio' y 'todos'. Entrenamos todas las habitaciones juntos en la implementación.
--network_type : la red a ser entrenada. echoscene es equosceno, echolayout es Echolayout (método de recuperación, rama de generación de diseño único).
--with_SDF : establecer en True if trin y el equosceno.
--batch_size : el tamaño de lotes para el entrenamiento de rama de diseño.
--large : el valor predeterminado es False , True significa categorías más concretas.
Para evaluar los modelos ejecutados:
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 : donde se almacenan los modelos. Si uno quiere cargar nuestros modelos proporcionados, la ruta debe alinearse con
--gen_shape : Establezca True si uno quiere hacer que la rama de la forma funcione.
Esta métrica tiene como objetivo evaluar la fidelidad a nivel de escena. Para evaluar el FID/Kid, primero debe descargar imágenes renderizadas de GT de arriba hacia abajo para los métodos de recuperación y las imágenes renderizadas SDF para métodos generativos, o coleccionar representaciones modificando y ejecutando collect_gt_sdf_images.py . Tenga en cuenta que el indicador without_lamp se establece en True en nuestro experimento.
Luego, las representaciones de las escenas generadas se pueden obtener dentro de eval_3dfront.py .
Después de obtener ambas imágenes de verdad en tierra y representaciones de escenas generadas, ejecute compute_fid_scores_3dfront.py .
Esta métrica tiene como objetivo evaluar la fidelidad a nivel de objeto. Para evaluar esto, primero debe obtener mallas de objeto de verdad de tierra desde aquí (~ 5g).
En segundo lugar, almacene por objeto generado en las escenas generadas, que se pueden hacer en eval_3dfront.py . Después de obtener mallas de objeto, modifique la ruta en compute_mmd_cov_1nn.py y ejecútela para tener los resultados.
Esta métrica se basa en la distancia del chaflán. que verifica cómo las formas generadas de dos objetos idénticos son similares entre sí. Para evaluar esto, debe descargar la información de consistencia desde aquí, modificar las rutas en consistency_check.py y ejecutar este script.
Trabajo relevante: Gráfico a 3D, Commonscenes, Diffusceno, Instructscene, Scenetex.
Descargo de responsabilidad: este es un repositorio de código solo para referencia; En caso de discrepancias, prevalecerá el documento.
Agradecemos al autor de difusceno, Jiapeng Tang, y al autor de Instruccene, Chenguo Lin, por proporcionar el código y las discusiones útiles, y además agradecen a Mahdi Saleh por titular el documento como EchoScene , que es vívido y pegadizo :)