Este repositorio contiene el código (en Pytorch) para el papel "Red de coincidencia de estéreo piramidal" (CVPR 2018) de Jia-Ren Chang y Yong-sheng Chen.
2020/12/20: Actualizar PSMNET: ahora admite la antorcha 1.6.0/TorchVision 0.5.0 y Python 3.7, se eliminó la sangría inconsistente.
2020/12/20: Nuestro estéreo en tiempo real propuesto se puede encontrar aquí estéreo en tiempo real.
@inproceedings{chang2018pyramid,
title={Pyramid Stereo Matching Network},
author={Chang, Jia-Ren and Chen, Yong-Sheng},
booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition},
pages={5410--5418},
year={2018}
}
El trabajo reciente ha demostrado que la estimación de profundidad de un par de imágenes estéreo puede formularse como una tarea de aprendizaje supervisada para resolverse con redes neuronales convolucionales (CNN). Sin embargo, las arquitecturas actuales se basan en redes siamesas basadas en parches, que carecen de los medios para explotar la información de contexto para encontrar la correspondencia en regiones ilustradas. Para abordar este problema, proponemos PSMNET, una red de coincidencia estéreo piramidal que consta de dos módulos principales: agrupación de pirámide espacial y CNN 3D. El módulo de agrupación de pirámides espaciales aprovecha la capacidad de la información del contexto global al agregar el contexto en diferentes escalas y ubicaciones para formar un volumen de costos. El CNN 3D aprende a regularizar el volumen de costos utilizando múltiples redes de reloj de arena apiladas junto con la supervisión intermedia.

Usage of Scene Flow dataset
Download RGB cleanpass images and its disparity for three subset: FlyingThings3D, Driving, and Monkaa.
Put them in the same folder.
And rename the folder as: "driving_frames_cleanpass", "driving_disparity", "monkaa_frames_cleanpass", "monkaa_disparity", "frames_cleanpass", "frames_disparity".
Como ejemplo, use el siguiente comando para entrenar un PSMNet en el flujo de escena
python main.py --maxdisp 192
--model stackhourglass
--datapath (your scene flow data folder)
--epochs 10
--loadmodel (optional)
--savemodel (path for saving model)
Como otro ejemplo, use el siguiente comando para Finet un PSMNET en Kitti 2015
python finetune.py --maxdisp 192
--model stackhourglass
--datatype 2015
--datapath (KITTI 2015 training data folder)
--epochs 300
--loadmodel (pretrained PSMNet)
--savemodel (path for saving model)
También puede ver esos ejemplos en Run.sh.
Use el siguiente comando para evaluar el PSMNET capacitado en los datos de prueba de Kitti 2015
python submission.py --maxdisp 192
--model stackhourglass
--KITTI 2015
--datapath (KITTI 2015 test data folder)
--loadmodel (finetuned PSMNet)
※ NOTA: El modelo previamente se guardó en .tar; Sin embargo, no necesitas desanimarlo. Use torch.load () para cargarlo.
Actualización: 2018/9/6 Lanzamos el modelo Kitti 2012 previamente capacitado.
ACTUALIZACIÓN: 2021/9/22 Un modelo previo a la aparición usando la antorcha 1.8.1 (el peso del modelo anterior está entrenado con antorcha 0.4.1)
| Kitti 2015 | Flujo de escenas | Kitti 2012 | Flujo de escena (antorcha 1.8.1) |
|---|---|---|---|
| Google Drive | Google Drive | Google Drive | Google Drive |
python Test_img.py --loadmodel (finetuned PSMNet) --leftimg ./left.png --rightimg ./right.png

※ Tenga en cuenta que los errores de validación de 3 PX informados se calcularon utilizando el código MATLAB oficial de Kitti, no nuestro código.
Enlace de tabla de clasificación
| Método | D1-all (todos) | D1-all (NOC) | Tiempo de ejecución |
|---|---|---|---|
| PSMNET | 2.32 % | 2.14 % | 0.41 |
| IRESNET-I2 | 2.44 % | 2.19 % | 0.12 |
| Net GC | 2.87 % | 2.61 % | 0.90 |
| MC-CNN | 3.89 % | 3.33 % | 67 |
Visualizamos los campos receptivos de diferentes configuraciones de PSMNET, configuración completa y línea de base.
Configuración completa: Conv, spp dilatado, reloj de arena apilada
Línea de base: sin convivencia dilatada, sin spp, sin reloj de arena apilada
Los campos receptivos se calcularon para el píxel en el centro de imágenes, indicado por la Cruz Roja.

¡Cualquier discusión o inquietud es bienvenida!