Content-aware graphic layout generation
มุ่งหมายเพื่อจัดเรียงองค์ประกอบภาพพร้อมกับเนื้อหาที่กำหนดโดยอัตโนมัติ เช่น รูปภาพผลิตภัณฑ์อีคอมเมิร์ซ พื้นที่เก็บข้อมูลนี้มีจุดมุ่งหมายเพื่อจัดเตรียมแพ็คเกจแบบครบวงจรสำหรับ content-aware layout generation
หากคุณชอบพื้นที่เก็บข้อมูลนี้ โปรดให้ดาวแก่มัน!
ในบทความนี้ เราขอเสนอ Retrieval-augmented content-aware layout generation
เราดึงตัวอย่างเพื่อนบ้านที่ใกล้ที่สุดตามภาพที่นำเข้า และใช้เป็นข้อมูลอ้างอิงเพื่อเพิ่มกระบวนการสร้าง
เราไม่เพียงแต่ให้บริการวิธีการของเรา (RALF / Autoreg Baseline) เท่านั้น แต่ยังรวมถึงวิธีการล้ำสมัยอื่นๆ สำหรับการสร้างเลย์เอาต์ที่คำนึงถึงเนื้อหาอีกด้วย วิธีการต่อไปนี้รวมอยู่ในที่เก็บนี้:
เราขอแนะนำให้ใช้ Docker เพื่อลองใช้โค้ดของเราได้อย่างง่ายดาย
เราขอแนะนำให้ใช้ Poetry (การตั้งค่าและการขึ้นต่อกันทั้งหมดใน pyproject.toml)
curl -sSL https://install.python-poetry.org | python3 -
poetry install
bash scripts/docker/build.sh
bash scripts/docker/exec.sh
poetry install
ควรตั้งค่าตัวแปรบางตัว โปรดสร้าง scripts/bin/setup.sh ด้วยตัวคุณเอง ควรตั้งค่าตัวแปรทั้งสามนี้อย่างน้อย หากคุณดาวน์โหลดไฟล์ zip ที่ให้มา โปรดอย่าสนใจการตั้งค่า
DATA_ROOT= " ./cache/dataset "
ตัวแปรบางตัวอาจถูกตั้งค่าไว้ (เช่น OMP_NUM_THREADS
)
จุดตรวจสอบและเค้าโครงที่สร้างขึ้นของ Autoreg Baseline และ RALF ของเราสำหรับงานที่ไม่มีข้อจำกัดและข้อจำกัดมีอยู่ที่ Google Drive หรือ Microsoft OneDrive หลังจากดาวน์โหลดแล้ว โปรดเรียกใช้ unzip cache.zip
ในไดเร็กทอรีนี้ โปรดทราบว่าขนาดไฟล์คือ 13GB
ไดเรกทอรี cache
ประกอบด้วย:
cache/dataset
cache/PRECOMPUTED_WEIGHT_DIR
cache/eval_gt_features
relationship
ใน cache/pku_cgl_relationships_dic_using_canvas_sort_label_lexico.pt
cache/training_logs
เราทำการประมวลผลล่วงหน้าบนชุดข้อมูล PKU และ CGL โดยแบ่งพาร์ติชันชุดการฝึกอบรมออกเป็นชุดย่อยการตรวจสอบและการทดสอบ ตามที่อธิบายไว้ในส่วนที่ 4.1 ชุดข้อมูล CGL ตามที่กระจายอยู่ ได้ถูกแบ่งออกเป็นแผนกต่างๆ เหล่านี้แล้ว สำหรับการจำลองผลลัพธ์ของเรา เราจะจัดเตรียมรายละเอียดของชื่อไฟล์ภายในไดเร็กทอรี data_splits/splits/
เราสนับสนุนให้ใช้การแยกที่กำหนดไว้ล่วงหน้าเหล่านี้เมื่อทำการทดลองตามการตั้งค่าของเรา และใช้คะแนนที่รายงานของเรา เช่น CGL-GAN และ DS-GAN
เราใช้การแบ่งการฝึกเป็นแหล่งการดึงข้อมูล ตัวอย่างเช่น เมื่อ RALF ได้รับการฝึกอบรมกับ PKU การแบ่งการฝึกอบรมของ PKU จะใช้สำหรับการฝึกอบรมและการประเมินผล เราจัดทำจดหมายโต้ตอบที่คำนวณไว้ล่วงหน้าโดยใช้ DreamSim [Fu+ NeurIPS23] ใน data_splits/retrieval/
โครงสร้างข้อมูลดังต่อไปนี้
FILENAME :
- FILENAME top1
- FILENAME top2
...
- FILENAME top16
คุณสามารถโหลดรูปภาพจาก
เราขอแนะนำอย่างยิ่งให้ประมวลผลชุดข้อมูลล่วงหน้าเนื่องจากคุณสามารถทำการทดสอบได้โดยเร็วที่สุด!!
แต่ละสคริปต์สามารถใช้ในการประมวลผลทั้ง PKU และ CGL โดยการระบุ --dataset_type (pku|cgl)
ชื่อโฟลเดอร์ที่มีวงเล็บจะถูกสร้างขึ้นโดยไปป์ไลน์นี้
| - annotation
| | (for PKU)
| | - train_csv_9973.csv
| | - [test_csv_905.csv](https://drive.google.com/file/d/19BIHOdOzVPBqf26SZY0hu1bImIYlRqVd/view?usp=sharing)
| | (for CGL)
| | - layout_train_6w_fixed_v2.json
| | - layout_test_6w_fixed_v2.json
| | - yinhe.json
| - image
| | - train
| | | - original: image with layout elements
| | | - (input): image without layout elements (by inpainting)
| | | - (saliency)
| | | - (saliency_sub)
| | - test
| | | - input: image without layout elements
| | | - (saliency)
| | | - (saliency_sub)
poetry run python image2layout/hfds_builder/inpainting.py --dataset_root < DATASET_ROOT >
poetry run python image2layout/hfds_builder/saliency_detection.py --input_dir < INPUT_DIR > --output_dir < OUTPUT_DIR > (--algorithm (isnet | basnet))
poetry run python image2layout/hfds_builder/dump_dataset.py --dataset_root < DATASET_ROOT > --output_dir < OUTPUT_DIR >
configs/
มีไฮเปอร์พารามิเตอร์และการตั้งค่าสำหรับแต่ละวิธีและชุดข้อมูล โปรดดูไฟล์สำหรับรายละเอียด โดยเฉพาะอย่างยิ่ง โปรดตรวจสอบว่าโหมดการดีบัก DEBUG=True or False
กรุณาวิ่ง
bash scripts/train/autoreg_cgl.sh < GPU_ID > < TASK_NAME >
# If you wanna run train and eval, please run
bash scripts/run_job/end_to_end.sh < GPU_ID e.g. 0> autoreg cgl < TASK_NAME e.g. uncond >
โดยที่ TASK_NAME
บ่งบอกถึงงานที่ไม่ถูกจำกัดและถูกจำกัด โปรดดูรายการงานด้านล่าง:
uncond
: การสร้างที่ไม่มีข้อจำกัดc
: หมวดหมู่ → ขนาด + ตำแหน่งcwh
: หมวดหมู่ + ขนาด → ตำแหน่งpartial
: เสร็จสมบูรณ์refinement
: การปรับแต่งrelation
: ความสัมพันธ์ชุดข้อมูลที่มี inpainting
กรุณาวิ่ง
bash scripts/train/ralf_cgl.sh < GPU_ID > < TASK_NAME >
# If you wanna run train and eval, please run
bash scripts/run_job/end_to_end.sh < GPU_ID e.g. 0> ralf cgl < TASK_NAME e.g. uncond >
ตัวอย่างเช่น สคริปต์เหล่านี้มีประโยชน์ end_to_end.sh
เป็นสคริปต์ wrapper สำหรับการฝึกอบรม การอนุมาน และการประเมินผล
# DS-GAN with CGL dataset
bash scripts/run_job/end_to_end.sh 0 dsgan cgl uncond
# LayoutDM with CGL dataset
bash scripts/run_job/end_to_end.sh 2 layoutdm cgl uncond
# CGL-GAN + Retrieval Augmentation with CGL dataset
bash scripts/run_job/end_to_end.sh 2 cglgan_ra cgl uncond
ผลการทดลองมีอยู่ใน cache/training_logs
ตัวอย่างเช่น ไดเร็กทอรีของ autoreg_c_cgl
ซึ่งผลลัพธ์ของงาน Autoreg Baseline with Category → Size + Position ประกอบด้วย:
test_.pkl
: โครงร่างที่สร้างขึ้นlayout_test_.png
: เลย์เอาต์ที่แสดงผล โดยตัวอย่างบนสุดคือความจริงภาคพื้นดิน และตัวอย่างล่างคือตัวอย่างที่คาดการณ์ไว้gen_final_model.pt
: ด่านสุดท้ายscores_test.tex
: สรุปผลลัพธ์เชิงคุณภาพโปรดดูและวิ่ง
bash scripts/eval_inference/eval_inference.sh < GPU_ID > < JOB_DIR > < COND_TYPE > cgl
ตัวอย่างเช่น,
# Autoreg Baseline with Unconstraint generation
bash scripts/eval_inference/eval_inference.sh 0 " cache/training_logs/autoreg_uncond_cgl " uncond cgl
ชุดข้อมูลที่มี Canvas จริง เช่น ไม่มีการวาดภาพ
โปรดดูและวิ่ง
bash scripts/eval_inference/eval_inference_all.sh < GPU_ID >
กรุณาวิ่ง
bash scripts/run_job/inference_single_data.sh < GPU_ID > < JOB_DIR > cgl < SAMPLE_ID >
โดยที่ SAMPLE_ID
สามารถเลือกตั้งค่าเป็นดัชนีชุดข้อมูลได้
ตัวอย่างเช่น,
bash scripts/run_job/inference_single_data.sh 0 " ./cache/training_logs/ralf_uncond_cgl " cgl
โปรดปรับแต่ง image2layout/train/inference_single_data.py เพื่อโหลดข้อมูลของคุณ
หากคุณพบว่างานของเรามีประโยชน์ในการวิจัยของคุณ โปรดพิจารณาการอ้างอิง:
@article { horita2024retrievalaugmented ,
title = { {Retrieval-Augmented Layout Transformer for Content-Aware Layout Generation} } ,
author = { Daichi Horita and Naoto Inoue and Kotaro Kikuchi and Kota Yamaguchi and Kiyoharu Aizawa } ,
booktitle = { CVPR } ,
year = { 2024 }
}