Este repositório é a implementação pytorch do nosso artigo:
CenterSnap: reconstrução de forma 3D multiobjeto de disparo único e estimativa categórica de pose e tamanho 6D
Muhammad Zubair Irshad , Thomas Kollar, Michael Laskey, Kevin Stone, Zsolt Kira
Conferência Internacional sobre Robótica e Automação (ICRA), 2022
[Página do projeto] [arXiv] [PDF] [Vídeo] [Pôster]
Trabalho de acompanhamento do ECCV'22:
ShAPO: representações implícitas para otimização de formato, aparência e pose de vários objetos
Muhammad Zubair Irshad , Sergey Zakharov, Rares Ambrus, Thomas Kollar, Zsolt Kira, Adrien Gaidon
Conferência Europeia sobre Visão Computacional (ECCV), 2022
[Página do projeto] [arXiv] [PDF] [Vídeo] [Pôster]
Se você achar este repositório útil, considere citar:
@inproceedings{irshad2022centersnap,
title = {CenterSnap: Single-Shot Multi-Object 3D Shape Reconstruction and Categorical 6D Pose and Size Estimation},
author = {Muhammad Zubair Irshad and Thomas Kollar and Michael Laskey and Kevin Stone and Zsolt Kira},
journal = {IEEE International Conference on Robotics and Automation (ICRA)},
year = {2022}
}
@inproceedings{irshad2022shapo,
title = {ShAPO: Implicit Representations for Multi-Object Shape Appearance and Pose Optimization},
author = {Muhammad Zubair Irshad and Sergey Zakharov and Rares Ambrus and Thomas Kollar and Zsolt Kira and Adrien Gaidon},
journal = {European Conference on Computer Vision (ECCV)},
year = {2022}
}
Crie um ambiente virtual python 3.8 e instale os requisitos:
cd $CenterSnap_Repo
conda create -y --prefix ./env python=3.8
conda activate ./env/
./env/bin/python -m pip install --upgrade pip
./env/bin/python -m pip install -r requirements.txt
Instale torch==1.7.1 torchvision==0.8.2
com base na sua versão CUDA. O código foi construído e testado em cuda 10.2 . Um exemplo de comando para instalar o torch no cuda 10.2 é o seguinte:
pip install torch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2
Nova atualização : verifique o script distribuído de nosso novo ShAPO de trabalho ECCV'22 se desejar coletar seus próprios dados do zero em algumas horas. Esse script distribuído coleta os dados no mesmo formato exigido pelo CenterSnap , embora com algumas pequenas modificações mencionadas naquele repositório.
Recomendamos baixar o conjunto de dados pré-processado para treinar e avaliar o modelo CenterSnap. Baixe e descompacte conjuntos de dados sintéticos (868 GB) e reais (70 GB). Esses arquivos contêm todo o treinamento e validação necessários para replicar nossos resultados.
cd $CenterSnap_REPO/data
wget https://tri-robotics-public.s3.amazonaws.com/centersnap/CAMERA.tar.gz
tar -xzvf CAMERA.tar.gz
wget https://tri-robotics-public.s3.amazonaws.com/centersnap/Real.tar.gz
tar -xzvf Real.tar.gz
A estrutura do diretório de dados deve seguir:
data
├── CAMERA
│ ├── train
│ └── val_subset
├── Real
│ ├── train
└── └── test
./runner.sh net_train.py @configs/net_config.txt
Observe que runner.sh é equivalente a usar python para executar o script. Além disso, ele configura o PYTHONPATH e o CenterSnap Enviornment Path automaticamente.
./runner.sh net_train.py @configs/net_config_real_resume.txt --checkpoint p ath t o b est c heckpoint
Baixe um pequeno subconjunto NOCS Real em [aqui]
./runner.sh inference/inference_real.py @configs/net_config.txt --data_dir path_to_nocs_test_subset --checkpoint checkpoint_path_here
Você deverá ver as visualizações salvas em results/CenterSnap
. Altere --ouput_path em *config.txt para salvá-los em uma pasta diferente
Fornecemos um modelo pré-treinado para codificador automático de forma a ser usado para coleta e inferência de dados. Embora nossa base de código não exija o treinamento separado do codificador automático de formas, se você desejar fazer isso, fornecemos scripts adicionais em external/shape_pretraining
1. Não estou obtendo um bom desempenho em minhas imagens de câmera personalizadas, ou seja, Realsense, OAK-D ou outras.
2. Como gerar bons resultados de disparo zero na câmera do robô HSR:
3. no cuda GPUs available
durante a execução do colab.
Make sure that you have enabled the GPU under Runtime-> Change runtime type!
4. Estou recebendo raise RuntimeError('received %d items of ancdata' % RuntimeError: received 0 items of ancdata
uimit -n 2048
5. Estou recebendo RuntimeError: CUDA error: no kernel image is available for execution on the device
ou You requested GPUs: [0] But your machine only has: []
Instalando o cuda 10.2 e executando o mesmo script em requisitos.txt
Instalando a versão relevante do pytorch cuda, ou seja, alterando esta linha no requirements.txt
torch==1.7.1
torchvision==0.8.2
6. Estou vendo métricas de valor zero no wandb
Nosso trabalho de acompanhamento do ECCV:
Outros trabalhos de acompanhamento (gritos aos autores pelo excelente trabalho):