См. статью ГЕНЕРАТИВНЫЕ МОДЕЛИ ДЛЯ ЗАВЕРШЕНИЯ 3D-ФОРМЫ.
Репозиторий содержит код для обучения и выборки из генеративной модели для завершения 3D-форм. Модель, реализованная в этом репозитории, основана на модели диффузии, предложенной в статье DiffComplete: генеративное завершение трехмерной формы на основе диффузии.
Кредиты :
база взята из улучшенной диффузии.
оценочная часть взята из PatchComplete.
Предварительно обученные модели можно скачать по этой ссылке.
virtualenv -p python3.8 venv
source venv/bin/activate
export PYTHONPATH= " ${PYTHONPATH} : ${pwd} "
pip install -r requirements.txt
Примечание. Для запуска кода требуется CUDA (из-за оценочной части).
Для создания набора данных для завершения формы используется скрипт dataset_hole.py
. Чтобы использовать ту же модель, что и в статье, используйте опцию --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
Чтобы выбрать одну фигуру из модели сетки, выполните следующую команду:
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 |
Л1 | 0,0264 | 0,0187 |
Примечание. CD и IoU масштабируются на 100. Более низкие значения лучше для CD и L1, а более высокие значения лучше для IoU.
Состояние | Прогноз | Основная истина |
---|---|---|