Veja o artigo MODELOS GERATIVOS PARA COMPLEÇÃO DE FORMA 3D.
O repositório contém código para treinamento e amostragem de um modelo generativo para conclusão de formas 3D. O modelo implementado neste repositório é baseado no modelo de difusão proposto no artigo DiffComplete: Diffusion-based Generative 3D Shape Completion.
Créditos :
base retirada da difusão melhorada.
parte de avaliação retirada do PatchComplete.
Modelos pré-treinados podem ser baixados neste link.
virtualenv -p python3.8 venv
source venv/bin/activate
export PYTHONPATH= " ${PYTHONPATH} : ${pwd} "
pip install -r requirements.txt
Nota: CUDA é necessário para executar o código (por causa da parte de avaliação).
Para gerar o conjunto de dados para o script de conclusão de forma, dataset_hole.py
é usado. Para ter o mesmo moddel usado no artigo, use a opção --filter_path
para especificar o caminho para o arquivo com a lista de modelos a serem usados para determinado conjunto de dados. Os arquivos estão localizados no diretório ./datasets/txt.
Todos os argumentos disponíveis podem ser encontrados executando python ./dataset_hole.py --help
.
Fontes de dados:
Para gerar o conjunto de dados de conclusão de forma, execute o seguinte comando:
cd dataset_processing
Móveis Objaverso
python ./dataset_hole.py --output datasets/objaverse-furniture --tag_names chair lamp bathtub chandelier bench bed table sofa toilet
Veículos Objaversos
python ./dataset_hole.py --output datasets/objaverse-vehicles --category_names cars-vehicles --tag_names car truck bus airplane
Animais do Objaverso
python ./dataset_hole.py --output datasets/objaverse-animals --category_names animals-pets --tag_names cat dog
ShapeNet
python ./dataset_hole.py --dataset shapenet --source SHAPENET_DIR_PATH --output datasets/shapenet
ModeloNet40
python ./dataset_hole.py --dataset modelnet --source MODELNET40_DIR_PATH --output datasets/modelnet40
O conjunto de dados de super resolução usado para treinamento foi criado executando o modelo de conclusão de forma sobre o conjunto de dados de treinamento e validação para obter as formas previstas, que foram usadas como entrada para o modelo de super resolução.
Para treinar o modelo, o script train.py
é usado. Todos os argumentos disponíveis podem ser encontrados executando python ./train.py --help
.
Para treinar o modelo BaseComplete execute o seguinte comando:
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
para treinar com máscara ROI adicione a opção --use_roi = True
.
Para treinar o modelo de processamento de baixa resolução, execute o seguinte comando:
python ./scripts/train.py --batch_size 32
... # data options
--in_scale_factor 1
--dataset_name complete_32_64
Para treinar o modelo superes execute o seguinte comando:
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
Para obter amostra de uma forma do modelo de malha, execute o seguinte comando:
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
ou usando o arquivo .npy como entrada:
python ./scripts/sample.py --model_path MODEL_PATH
--sample_path SAMPLE_PATH # Condition
--input_mesh False
--output_size 32 # Expected output size
Para avaliar todo o conjunto de dados, execute o seguinte comando:
python ./scripts/evaluate_dataset.py
--data_path " ./datasets/objaverse-furniture/32 "
--file_path " ./datasets/objaverse-furniture/test.txt "
--model_path MODEL_PATH
Avaliação no conjunto de dados TEST :
Métrica | BaseCompleta | Máscara BaseComplete + ROI |
---|---|---|
CD | 3,53 | 2,86 |
IoU | 81,62 | 84,77 |
L1 | 0,0264 | 0,0187 |
Observação: CD e IoU são dimensionados em 100. Valores mais baixos são melhores para CD e L1, enquanto valores mais altos são melhores para IoU.
Doença | Previsão | Verdade fundamental |
---|---|---|