[ICCV 23] DLT: Konditionierte Layout-Generierung mit Joint Discrete-Continuous Diffusion Layout Transformer
Dieses Repository ist eine offizielle Implementierung des DLT-Papiers. Weitere Einzelheiten finden Sie im Dokument und auf der Projektseite für einen allgemeinen Überblick.
Bedingungslos | Kategorie | Kategorie + Größe |
---|---|---|
Alle relevanten Anforderungen sind in der Datei „environment.yml“ aufgeführt. Wir empfehlen die Verwendung von Conda, um die entsprechende Umgebung zu erstellen und die Abhängigkeiten zu installieren:
conda env create -f environment.yml
conda activate dlt
Bitte laden Sie die öffentlichen Datensätze auf den folgenden Webseiten herunter. Legen Sie es in Ihrem Ordner ab und aktualisieren Sie ./dlt/configs/remote/dataset_config.yaml
entsprechend.
Sie können das Modell mit jedem Konfigurationsskript im Konfigurationsordner trainieren. Wenn Sie beispielsweise das bereitgestellte DLT-Modell auf dem Publaynet-Datensatz trainieren möchten, lautet der Befehl wie folgt:
cd dlt
python main.py --config configs/remote/dlt_publaynet_config.yaml --workdir < WORKDIR >
Bitte beachten Sie, dass der Code beschleunigerunabhängig ist. Wenn Sie die Ergebnisse nicht in Wandb protokollieren möchten, legen Sie einfach --workdir test
in den Argumenten fest.
Gehen Sie folgendermaßen vor, um Beispiele für die Auswertung im Testsatz zu generieren:
# 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
Dabei kann <COND_TYPE>
sein: (all, Whole_box, loc) – (unbedingt, Kategorie, Kategorie+Größe) bzw. <EPOCH>
ist die Epochennummer des Modells, das Sie auswerten möchten, und <WORKDIR>
ist der Pfad zum Ordner, in dem die Modellgewichte gespeichert sind (z. B. rico_final). Die generierten Beispiele werden im Ordner logs/<WORKDIR>/samples
gespeichert, wenn „True“ save
.
Eine Ausgabe davon ist eine Pickle-Datei mit generierten Beispielen. Sie können damit Kennzahlen berechnen.
Der Ordner mit den Gewichten nach dem Training hat diesen Aufbau:
logs
├── magazine_final
│ ├── checkpoints
│ └── samples
├── publaynet_final
│ ├── checkpoints
│ └── samples
└── rico_final
├── checkpoints
└── samples
Wenn Sie diesen Code für Ihre Forschung nützlich finden, zitieren Sie bitte unseren Artikel:
@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}
}