ดูกระดาษ GENERATIVE MODELS FOR 3D SHAPE COMPLETION
พื้นที่เก็บข้อมูลประกอบด้วยโค้ดสำหรับการฝึกและการสุ่มตัวอย่างจากแบบจำลองกำเนิดเพื่อสร้างรูปร่าง 3 มิติให้สมบูรณ์ แบบจำลองที่นำมาใช้ในพื้นที่เก็บข้อมูลนี้อิงตามแบบจำลองการแพร่กระจายที่เสนอในเอกสาร DiffComplete: Diffusion-based Generative 3D Shape Completion
เครดิต :
ฐานนำมาจากการแพร่กระจายที่ดีขึ้น
ส่วนการประเมินผลที่นำมาจาก PatchComplete
สามารถดาวน์โหลดโมเดลที่ฝึกไว้ล่วงหน้าได้จากลิงค์นี้
virtualenv -p python3.8 venv
source venv/bin/activate
export PYTHONPATH= " ${PYTHONPATH} : ${pwd} "
pip install -r requirements.txt
หมายเหตุ: ต้องใช้ CUDA เพื่อรันโค้ด (เนื่องจากเป็นส่วนหนึ่งของการประเมิน)
ในการสร้างชุดข้อมูลสำหรับการทำให้รูปร่างสมบูรณ์ จะใช้สคริปต์ dataset_hole.py
หากต้องการใช้ moddel แบบเดียวกับในกระดาษ ให้ใช้ตัวเลือก --filter_path
เพื่อระบุเส้นทางไปยังไฟล์พร้อมรายการโมเดลที่จะใช้สำหรับชุดข้อมูลที่กำหนด ไฟล์อยู่ในไดเร็กทอรี ./datasets/txt
อาร์กิวเมนต์ที่ใช้ได้ทั้งหมดสามารถพบได้โดยการเรียกใช้ python ./dataset_hole.py --help
แหล่งข้อมูล:
หากต้องการสร้างชุดข้อมูลการเติมรูปร่างให้สมบูรณ์ ให้รันคำสั่งต่อไปนี้:
cd dataset_processing
ออบจาเวิร์สเฟอร์นิเจอร์
python ./dataset_hole.py --output datasets/objaverse-furniture --tag_names chair lamp bathtub chandelier bench bed table sofa toilet
ยานพาหนะ objaverse
python ./dataset_hole.py --output datasets/objaverse-vehicles --category_names cars-vehicles --tag_names car truck bus airplane
สัตว์ข้างเคียง
python ./dataset_hole.py --output datasets/objaverse-animals --category_names animals-pets --tag_names cat dog
เชพเน็ต
python ./dataset_hole.py --dataset shapenet --source SHAPENET_DIR_PATH --output datasets/shapenet
รุ่น Net40
python ./dataset_hole.py --dataset modelnet --source MODELNET40_DIR_PATH --output datasets/modelnet40
ชุดข้อมูลความละเอียดขั้นสูงที่ใช้สำหรับการฝึกถูกสร้างขึ้นโดยการรันโมเดลการสร้างรูปร่างให้สมบูรณ์บนชุดข้อมูลการฝึกอบรมและการตรวจสอบความถูกต้อง เพื่อให้ได้รูปร่างที่คาดการณ์ไว้ ซึ่งใช้เป็นอินพุตสำหรับโมเดลความละเอียดสูงพิเศษ
ในการฝึกโมเดลจะใช้สคริปต์ train.py
อาร์กิวเมนต์ที่ใช้ได้ทั้งหมดสามารถพบได้โดยการเรียกใช้ python ./train.py --help
หากต้องการฝึกโมเดล BaseComplete ให้รันคำสั่งต่อไปนี้:
python ./scripts/train.py --batch_size 32
--data_path " ./datasets/objaverse-furniture/32/ "
--train_file_path " ../datasets/objaverse-furniture/train.txt "
--val_file_path " ../datasets/objaverse-furniture/val.txt "
--dataset_name complete
เพื่อฝึกด้วยมาสก์ ROI ให้เพิ่ม --use_roi = True
หากต้องการฝึกโมเดล การประมวลผลความละเอียดต่ำ ให้รันคำสั่งต่อไปนี้:
python ./scripts/train.py --batch_size 32
... # data options
--in_scale_factor 1
--dataset_name complete_32_64
หากต้องการฝึกโมเดล superes ให้รันคำสั่งต่อไปนี้:
python ./scripts/train.py --batch_size 32
--data_path " ./datasets/objaverse-furniture-sr/ "
--val_data_path " ./datasets/objaverse-furniture-sr-val/ "
--super_res True
--dataset_name sr
หากต้องการตัวอย่างหนึ่งรูปร่างจากโมเดล mesh ให้รันคำสั่งต่อไปนี้:
python ./scripts/sample.py --model_path MODEL_PATH
--sample_path SAMPLE_PATH # Condition
--input_mesh True
--condition_size 32 # Expected condition size
--output_size 32 # Expected output size
หรือใช้ไฟล์ .npy เป็นอินพุต:
python ./scripts/sample.py --model_path MODEL_PATH
--sample_path SAMPLE_PATH # Condition
--input_mesh False
--output_size 32 # Expected output size
ในการประเมินชุดข้อมูลทั้งหมดให้รันคำสั่งต่อไปนี้:
python ./scripts/evaluate_dataset.py
--data_path " ./datasets/objaverse-furniture/32 "
--file_path " ./datasets/objaverse-furniture/test.txt "
--model_path MODEL_PATH
การประเมินชุดข้อมูล TEST :
เมตริก | ฐานเสร็จสมบูรณ์ | หน้ากาก BaseComplete + ROI |
---|---|---|
ซีดี | 3.53 | 2.86 |
ไอโอยู | 81.62 | 84.77 |
L1 | 0.0264 | 0.0187 |
หมายเหตุ: CD และ IoU ได้รับการปรับขนาดเป็น 100 ค่าที่ต่ำกว่าจะดีกว่าสำหรับ CD และ L1 ในขณะที่ค่าที่สูงกว่าจะดีกว่าสำหรับ IoU
เงื่อนไข | การทำนาย | ความจริงพื้นฐาน |
---|---|---|