[ICCV 23] DLT: 結合離散連続拡散レイアウト変換器を使用した条件付きレイアウト生成
このリポジトリは DLT ペーパーの公式実装です。詳細については論文を、概要についてはプロジェクト ページを参照してください。
無条件 | カテゴリ | カテゴリ + サイズ |
---|---|---|
関連するすべての要件は、environment.yml にリストされています。 conda を使用して適切な環境を作成し、依存関係をインストールすることをお勧めします。
conda env create -f environment.yml
conda activate dlt
公開データセットは以下のWebページからダウンロードしてください。これをフォルダーに配置し、それに応じて./dlt/configs/remote/dataset_config.yaml
を更新します。
configs フォルダー内の任意の構成スクリプトを使用してモデルをトレーニングできます。たとえば、提供された DLT モデルを publaynet データセットでトレーニングする場合、コマンドは次のようになります。
cd dlt
python main.py --config configs/remote/dlt_publaynet_config.yaml --workdir < WORKDIR >
コードがアクセラレータに依存しないことを確認してください。結果を wandb に記録したくない場合は、引数に--workdir test
設定するだけです。
テスト セットでの評価用のサンプルを生成するには、次の手順に従います。
# 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
ここで、 <COND_TYPE>
それぞれ (all、whole_box、loc) - (unconditional、category、category+size) になります。 <EPOCH>
評価するモデルのエポック番号、 <WORKDIR>
評価するモデルへのパスです。モデルの重みが保存されるフォルダー (例: rico_final)。 save
True の場合、生成されたサンプルはlogs/<WORKDIR>/samples
フォルダーに保存されます。
そこからの出力は、生成されたサンプルを含む pickle ファイルです。これを使用してメトリクスを計算できます。
トレーニング後の重みを含むフォルダーは次の構造になっています。
logs
├── magazine_final
│ ├── checkpoints
│ └── samples
├── publaynet_final
│ ├── checkpoints
│ └── samples
└── rico_final
├── checkpoints
└── samples
このコードが研究に役立つと思われる場合は、論文を引用してください。
@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}
}