Implementação PyTorch do nosso artigo:
Correlacionar e Excitar: Correspondência Estéreo em Tempo Real via Excitação de Volume de Custo Guiada
Autores: Antyanta Bangunharcana 1 , Jae Won Cho 2 , Seokju Lee 2 , In So Kweon 2 , Kyung-Soo Kim 1 , Soohyun Kim 1
1 Laboratório MSC, 2 Laboratório RVC, Instituto Avançado de Ciência e Tecnologia da Coreia (KAIST)
Conferência Internacional IEEE/RSJ sobre Robôs e Sistemas Inteligentes (IROS), 2021
[Página do projeto] | [Papel]
Propomos uma excitação de volume de custo guiado (GCE) e uma regressão de disparidade soft-argmax top-k para correspondência estéreo precisa e em tempo real.
Recomendamos usar conda para instalação:
conda env create -f environment.yml
conda activate coex
Nossos pesos SceneFlow pré-treinados podem ser baixados através do seguinte link:
Nosso modelo atinge um novo SceneFlow EPE (End-Point-Error) de 0,596, melhorando o EPE anterior de 0,69 relatado no artigo original.
Para uma demonstração de nosso código no conjunto de dados KITTI, baixe os "[dados sincronizados + retificados]" dos dados brutos do KITTI. Descompacte e coloque as pastas extraídas seguindo a árvore de diretórios abaixo.
Conjunto de dados Sceneflow
Baixe os dados finais do conjunto de dados Sceneflow, bem como os dados de disparidade .
KITTI 2015
Baixe o conjunto de dados kitti15 e descompacte data_scene_flow.zip, renomeie-o como kitti15 e mova-o para o diretório SceneFlow conforme mostrado na árvore abaixo.
KITTI 2012
Baixe o conjunto de dados kitti12. Descompacte data_stereo_flow.zip, renomeie-o como kitti12 e mova-o para o diretório SceneFlow conforme mostrado na árvore abaixo.
Certifique-se de que os nomes dos diretórios correspondam à árvore abaixo para que os dataloaders possam localizar os arquivos.
Em nossa configuração, o conjunto de dados é organizado da seguinte forma
../../data
└── datasets
├── KITTI_raw
| ├── 2011_09_26
| │ ├── 2011_09_26_drive_0001_sync
| │ ├── 2011_09_26_drive_0002_sync
| | :
| |
| ├── 2011_09_28
| │ ├── 2011_09_28_drive_0001_sync
| │ └── 2011_09_28_drive_0002_sync
| | :
| | :
|
└── SceneFlow
├── driving
│ ├── disparity
│ └── frames_finalpass
├── flyingthings3d_final
│ ├── disparity
│ └── frames_finalpass
├── monkaa
│ ├── disparity
│ └── frames_finalpass
├── kitti12
│ ├── testing
│ └── training
└── kitti15
├── testing
└── training
O modelo KITTI pré-treinado já está incluído em './logs'. Correr
python demo.py
para realizar correspondência estéreo na sequência kitti bruta. Aqui está um exemplo de resultado em nosso sistema com RTX 2080Ti no Ubuntu 18.04.
Para mais resultados de demonstração, confira nossa página do projeto
Para treinar novamente o modelo, configure './configs/stereo/cfg_yaml', por exemplo, batch_size, caminhos, número do dispositivo, precisão, etc.
python stereo.py
Se você achar nosso trabalho útil em sua pesquisa, considere citar nosso artigo
@inproceedings{bangunharcana2021correlate,
title={Correlate-and-Excite: Real-Time Stereo Matching via Guided Cost Volume Excitation},
author={Bangunharcana, Antyanta and Cho, Jae Won and Lee, Seokju and Kweon, In So and Kim, Kyung-Soo and Kim, Soohyun},
booktitle={2021 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
pages={3542--3548},
year={2021},
organization={IEEE}
}
Parte do código é adotado de trabalhos anteriores: PSMNet, AANet, GANet, SpixelFCN