[ICCV 23] DLT: Generación de diseño condicionado con transformador de diseño conjunto de difusión discreta-continua
Este repositorio es una implementación oficial del documento DLT. Consulte el documento para obtener más detalles y la página del proyecto para obtener una descripción general.
Incondicional | Categoría | Categoría + Tamaño |
---|---|---|
Todos los requisitos relevantes se enumeran en Environment.yml. Recomendamos usar conda para crear el entorno apropiado e instalar las dependencias:
conda env create -f environment.yml
conda activate dlt
Descargue los conjuntos de datos públicos en las siguientes páginas web. Colóquelo en su carpeta y actualice ./dlt/configs/remote/dataset_config.yaml
en consecuencia.
Puede entrenar el modelo utilizando cualquier script de configuración en la carpeta de configuración. Por ejemplo, si desea entrenar el modelo DLT proporcionado en el conjunto de datos de publaynet, el comando es el siguiente:
cd dlt
python main.py --config configs/remote/dlt_publaynet_config.yaml --workdir < WORKDIR >
Por favor, asegúrese de que el código sea independiente del acelerador. Si no desea registrar resultados en wandb, simplemente configure --workdir test
en args.
Para generar muestras para su evaluación en el conjunto de prueba, siga estos pasos:
# put weights in config.logs folder
DATASET = " publaynet " # or "rico" or "magazine"
python generate_samples.py --config configs/remote/dlt_{ $DATASET }_config.yaml \
--workdir < WORKDIR > --epoch < EPOCH > --cond_type < COND_TYPE > \
--save True
# get all the metrics
# update path to pickle file in dlt/evaluation/metric_comp.py
./download_fid_model.sh
python metric_comp.py
donde <COND_TYPE>
puede ser: (all, Whole_box, loc) - (incondicional, categoría, categoría+tamaño) respectivamente, <EPOCH>
es el número de época del modelo que desea evaluar y <WORKDIR>
es la ruta al Carpeta donde se guardan los pesos del modelo (por ejemplo, rico_final). Las muestras generadas se guardarán en la carpeta logs/<WORKDIR>/samples
si save
en True.
Una salida es un archivo pickle con muestras generadas. Puedes usarlo para calcular métricas.
La carpeta con pesas después del entrenamiento tiene esta estructura:
logs
├── magazine_final
│ ├── checkpoints
│ └── samples
├── publaynet_final
│ ├── checkpoints
│ └── samples
└── rico_final
├── checkpoints
└── samples
Si encuentra este código útil para su investigación, cite nuestro artículo:
@misc{levi2023dlt,
title={DLT: Conditioned layout generation with Joint Discrete-Continuous Diffusion Layout Transformer},
author={Elad Levi and Eli Brosh and Mykola Mykhailych and Meir Perez},
year={2023},
eprint={2303.03755},
archivePrefix={arXiv},
primaryClass={cs.CV}
}