Lihat makalah MODEL GENERATIF UNTUK PENYELESAIAN BENTUK 3D.
Repositori berisi kode untuk pelatihan dan pengambilan sampel dari model generatif untuk penyelesaian bentuk 3D. Model yang diimplementasikan dalam repositori ini didasarkan pada model difusi yang diusulkan dalam makalah DiffComplete: Penyelesaian Bentuk 3D Generatif Berbasis Difusi.
Kredit :
dasar diambil dari difusi yang ditingkatkan.
bagian evaluasi diambil dari PatchComplete.
Model yang telah dilatih sebelumnya dapat diunduh dari tautan ini.
virtualenv -p python3.8 venv
source venv/bin/activate
export PYTHONPATH= " ${PYTHONPATH} : ${pwd} "
pip install -r requirements.txt
Catatan: CUDA diperlukan untuk menjalankan kode (karena bagian evaluasi).
Untuk menghasilkan kumpulan data untuk penyelesaian bentuk, skrip dataset_hole.py
digunakan. Untuk menggunakan moddel yang sama seperti di makalah, gunakan opsi --filter_path
untuk menentukan jalur ke file dengan daftar model yang akan digunakan untuk kumpulan data tertentu. File-file tersebut terletak di direktori ./datasets/txt.
Semua argumen yang tersedia dapat ditemukan dengan menjalankan python ./dataset_hole.py --help
.
Sumber data:
Untuk menghasilkan himpunan data penyelesaian bentuk, jalankan perintah berikut:
cd dataset_processing
Furnitur Objaverse
python ./dataset_hole.py --output datasets/objaverse-furniture --tag_names chair lamp bathtub chandelier bench bed table sofa toilet
Kendaraan Objaverse
python ./dataset_hole.py --output datasets/objaverse-vehicles --category_names cars-vehicles --tag_names car truck bus airplane
Hewan Objaverse
python ./dataset_hole.py --output datasets/objaverse-animals --category_names animals-pets --tag_names cat dog
BentukNet
python ./dataset_hole.py --dataset shapenet --source SHAPENET_DIR_PATH --output datasets/shapenet
ModelNet40
python ./dataset_hole.py --dataset modelnet --source MODELNET40_DIR_PATH --output datasets/modelnet40
Dataset resolusi super yang digunakan untuk pelatihan dibuat dengan menjalankan model penyelesaian bentuk melalui dataset pelatihan dan validasi untuk mendapatkan prediksi bentuk, yang kemudian digunakan sebagai masukan untuk model resolusi super.
Untuk melatih model, skrip train.py
digunakan. Semua argumen yang tersedia dapat ditemukan dengan menjalankan python ./train.py --help
.
Untuk melatih model BaseComplete , jalankan perintah berikut:
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
untuk berlatih dengan masker ROI, tambahkan opsi --use_roi = True
.
Untuk melatih model pemrosesan resolusi rendah, jalankan perintah berikut:
python ./scripts/train.py --batch_size 32
... # data options
--in_scale_factor 1
--dataset_name complete_32_64
Untuk melatih model superes , jalankan perintah berikut:
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
Untuk mengambil sampel satu bentuk dari model mesh, jalankan perintah berikut:
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
atau menggunakan file .npy sebagai input:
python ./scripts/sample.py --model_path MODEL_PATH
--sample_path SAMPLE_PATH # Condition
--input_mesh False
--output_size 32 # Expected output size
Untuk mengevaluasi seluruh kumpulan data, jalankan perintah berikut:
python ./scripts/evaluate_dataset.py
--data_path " ./datasets/objaverse-furniture/32 "
--file_path " ./datasets/objaverse-furniture/test.txt "
--model_path MODEL_PATH
Evaluasi pada dataset TEST :
Metrik | Basis Lengkap | BaseComplete + masker ROI |
---|---|---|
CD | 3.53 | 2.86 |
Surat hutang | 81.62 | 84,77 |
L1 | 0,0264 | 0,0187 |
Catatan: CD dan IoU berskala 100. Nilai yang lebih rendah lebih baik untuk CD dan L1, sedangkan nilai yang lebih tinggi lebih baik untuk IoU.
Kondisi | Ramalan | Kebenaran Dasar |
---|---|---|