Dale Decatur, Itai Lang, Kfir Aberman, Rana Hanocka



ในงานนี้เราพัฒนาพู่กัน 3 มิติซึ่งเป็นเทคนิคสำหรับการทำให้พื้นที่ความหมายในท้องถิ่นโดยอัตโนมัติบนตาข่ายผ่านคำอธิบายข้อความ วิธีการของเราได้รับการออกแบบให้ทำงานโดยตรงบนตาข่ายสร้างแผนที่พื้นผิวซึ่งรวมเข้ากับท่อกราฟิกมาตรฐานได้อย่างราบรื่น เราเลือกที่จะสร้างแผนที่โลคัลไลเซชั่นพร้อมกัน (เพื่อระบุภูมิภาคแก้ไข) และแผนที่พื้นผิวที่สอดคล้องกับมัน วิธีการเสริมฤทธิ์กันนี้ช่วยปรับปรุงคุณภาพของทั้งการแปลและการจัดสไตล์ เพื่อปรับปรุงรายละเอียดและความละเอียดของพื้นที่พื้นผิวเราใช้ประโยชน์จากหลายขั้นตอนของรูปแบบการแพร่กระจายแบบเรียงซ้อนเพื่อควบคุมเทคนิคการแก้ไขท้องถิ่นของเรากับนักบวชกำเนิดที่เรียนรู้จากภาพที่ความละเอียดที่แตกต่างกัน เทคนิคของเราเรียกว่าการกลั่นคะแนนแบบ cascaded (CSD), การกลั่นคะแนนพร้อมกันในหลาย ๆ มติในรูปแบบที่เรียงซ้อนกันช่วยให้สามารถควบคุมทั้งความละเอียดและความเข้าใจทั่วโลกของการกำกับดูแล เราแสดงให้เห็นถึงประสิทธิภาพของพู่กัน 3 มิติเพื่อพื้นผิวในท้องถิ่นความหลากหลายของรูปร่างภายในภูมิภาคความหมายที่แตกต่างกัน
หากต้องการดูการสาธิตการสูญเสียคะแนนการกลั่น (CSD) ให้ลองดูสมุดบันทึกนี้ที่ใช้ CSD กับการสร้างภาพและการแก้ไขภาพ CSD ช่วยให้เราสามารถควบคุมการเพิ่มประสิทธิภาพของเราด้วยหลายขั้นตอนของแบบจำลองการแพร่กระจายแทนเพียงแค่ขั้นตอนพื้นฐานที่ใช้ใน SDS มาตรฐาน เรากลั่นคะแนนในหลายขั้นตอนของแบบจำลองการแพร่กระจายแบบเรียงซ้อนกันเพื่อใช้ประโยชน์จากการรับรู้ทั่วโลกของขั้นตอนแรกและรายละเอียดที่สูงขึ้นในระยะต่อมา

หากคุณมีหน่วยความจำ GPU น้อยกว่า 48 GB คุณยังสามารถเรียกใช้รหัสดูส่วนบนการเพิ่มประสิทธิภาพหน่วยความจำสำหรับรายละเอียดเพิ่มเติม
ก่อนอื่นสร้างสภาพแวดล้อม conda:
conda create -n "3d-paintbrush" python=3.10
และเปิดใช้งานด้วย:
conda activate 3d-paintbrush
ถัดไปติดตั้งแพ็คเกจที่ต้องการโดยเรียกใช้สคริปต์การติดตั้ง ตรวจสอบให้แน่ใจว่าได้เรียกใช้สคริปต์นี้ด้วยการเข้าถึง GPU
bash ./install_environment.sh
คำแนะนำจาก Deepfloyd ถ้า:
huggingface_hub pip install huggingface_hub --upgrade
เรียกใช้ฟังก์ชั่นการเข้าสู่ระบบในเชลล์หลาม
from huggingface_hub import login
login()
และป้อนโทเค็นการเข้าถึง Hub Hub ของคุณ
หากต้องการใช้โมเดลที่ผ่านการฝึกอบรมมาก่อนของเราให้ดาวน์โหลดทั้งโฟลเดอร์ trained_models และ inverse_map_cache จากที่นี่และเพิ่มภายใต้โฟลเดอร์ข้อมูลเพื่อสร้างโครงสร้างไดเรกทอรีต่อไปนี้:
├── data
│ ├── inverse_map_cache
│ ├── trained_models
│ ├── hand.obj
...
│ ├── spot.obj
ในการเรียกใช้โมเดลที่ผ่านการฝึกอบรมมาก่อนให้ใช้คำสั่งด้านล่าง ผลลัพธ์จะถูกบันทึกไว้ที่ results/[name-of-mesh]/[name-of-edit]/renders/infernce.png
จุด:
python src/main.py --config_path demo/spot/gold_chain_necklace.yaml --log.inference true --log.model_path ./data/trained_models/spot/gold_chain_necklace.pth
python src/main.py --config_path demo/spot/heart-shaped_sunglasses.yaml --log.inference true --log.model_path ./data/trained_models/spot/heart-shaped_sunglasses.pth
python src/main.py --config_path demo/spot/colorful_crochet_hat.yaml --log.inference true --log.model_path ./data/trained_models/spot/colorful_crochet_hat.pth






บุคคล:
python src/main.py --config_path demo/person/tie-dye_apron.yaml --log.inference true --log.model_path ./data/trained_models/person/tie-dye_apron.pth
python src/main.py --config_path demo/person/colorful_polo_shirt.yaml --log.inference true --log.model_path ./data/trained_models/person/colorful_polo_shirt.pth
python src/main.py --config_path demo/person/superman_chest_emblem.yaml --log.inference true --log.model_path ./data/trained_models/person/superman_chest_emblem.pth






เลโก้ minfigure:
python src/main.py --config_path demo/lego_minifig/barcelona_jersey.yaml --log.inference true --log.model_path ./data/trained_models/lego_minifig/barcelona_jersey.pth
python src/main.py --config_path demo/lego_minifig/blue_denim_overalls.yaml --log.inference true --log.model_path ./data/trained_models/lego_minifig/blue_denim_overalls.pth
python src/main.py --config_path demo/lego_minifig/red_bow_tie.yaml --log.inference true --log.model_path ./data/trained_models/lego_minifig/red_bow_tie.pth






มือ:
python src/main.py --config_path demo/hand/fancy_gold_watch.yaml --log.inference true --log.model_path ./data/trained_models/hand/fancy_gold_watch.pth


ในการทำซ้ำผลลัพธ์จากกระดาษตั้งแต่เริ่มต้นเพียงแค่ผ่านไฟล์กำหนดค่าการสาธิตที่กำหนดไว้ล่วงหน้า ผลลัพธ์จะถูกบันทึกไว้ที่ results/[name-of-mesh]/[name-of-edit]
จุด:
python src/main.py --config_path demo/spot/gold_chain_necklace.yaml
python src/main.py --config_path demo/spot/heart-shaped_sunglasses.yaml
python src/main.py --config_path demo/spot/colorful_crochet_hat.yaml
บุคคล:
python src/main.py --config_path demo/person/tie-dye_apron.yaml
python src/main.py --config_path demo/person/colorful_polo.yaml
python src/main.py --config_path demo/person/superman_chest_emblem.yaml
เลโก้ minifigure:
python src/main.py --config_path demo/lego_minifig/barcelona_jersey.yaml
python src/main.py --config_path demo/lego_minifig/blue_denim_overalls.yaml
python src/main.py --config_path demo/lego_minifig/red_bow_tie.yaml
มือ:
python src/main.py --config_path demo/hand/fancy_gold_watch.yaml
ในการเรียกใช้ตัวอย่างของคุณเองคุณสามารถสร้างไฟล์กำหนดค่าของคุณเองและส่งผ่านไฟล์ดังกล่าวในส่วนก่อนหน้า นอกจากนี้คุณสามารถส่งผ่านค่าใด ๆ สำหรับฟิลด์ใด ๆ ใน src/configs/train_config เป็นอาร์กิวเมนต์บรรทัดคำสั่ง ตัวอย่างเช่นในการเรียกใช้ตัวอย่างมือโดยไม่ผ่านไฟล์กำหนดค่าคุณสามารถโทร:
python src/main.py --log.exp_dir results/hand/fancy_gold_watch --mesh.path ./data/spot.obj --guidance.object_name "hand" --guidance.style "fancy gold" --guidance.edit "watch"
หากคุณไม่สามารถเข้าถึง GPU 48 GB คุณสามารถ ...
cpu_offload เป็น True ใน src/configs/guidance_config.py สิ่งนี้จะลดการใช้หน่วยความจำอย่างมีนัยสำคัญ แต่มาจากค่าใช้จ่ายของความเร็วbatch_size ด้วยอาร์กิวเมนต์บรรทัดคำสั่ง --optim.batch_size หรือในไฟล์กำหนดค่าที่กำหนดเอง ในขณะที่สิ่งนี้จะช่วยลดการใช้หน่วยความจำ แต่ก็สามารถส่งผลกระทบต่อความแม่นยำsample_points เป็น True และปรับ mlp_batch_size ) ในขณะที่สิ่งนี้จะช่วยลดการใช้หน่วยความจำ แต่ก็สามารถส่งผลกระทบต่อความแม่นยำbatched_sd เป็น False ) สิ่งนี้จะช่วยลดการใช้หน่วยความจำ แต่มาด้วยค่าใช้จ่าย codebase ของเราขึ้นอยู่กับแฝง-NENF/แฝง Paint และรหัสคำแนะนำ CSD ของเรามีโครงสร้างในรูปแบบของโมดูลคำแนะนำของ Threestudio เราขอขอบคุณผู้เขียนเหล่านี้สำหรับงานที่น่าทึ่งของพวกเขา
หากคุณพบว่ารหัสนี้มีประโยชน์สำหรับการวิจัยของคุณโปรดอ้างอิงกระดาษพู่กัน 3 มิติกระดาษของเรา: การจัดแต่งทรงผมในรูปแบบ 3 มิติพร้อมการกลั่นคะแนน cascaded
@article{decatur2023paintbrush,
author = {Decatur, Dale and Lang, Itai and Aberman, Kfir and Hanocka, Rana},
title = {3D Paintbrush: Local Stylization of 3D Shapes with Cascaded Score Distillation},
journal = {arXiv},
year = {2023}
}