Repositori ini berisi kode (di Pytorch) untuk kertas "Jaringan Pencocokan Stereo Piramida" (CVPR 2018) oleh Jia-Ren Chang dan Yong-Sheng Chen.
2020/12/20: Perbarui PSMNET: Sekarang Dukung Obor 1.6.0/TorchVision 0.5.0 dan Python 3.7, lekukan lekukan yang tidak konsisten.
2020/12/20: Stereo real-time yang kami usulkan dapat ditemukan di sini stereo real-time.
@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}
}
Pekerjaan terbaru telah menunjukkan bahwa estimasi kedalaman dari sepasang gambar stereo dapat diformulasikan sebagai tugas pembelajaran yang diawasi untuk diselesaikan dengan jaringan saraf konvolusional (CNNs). Namun, arsitektur saat ini mengandalkan jaringan Siam berbasis tambalan, tidak memiliki sarana untuk mengeksploitasi informasi konteks untuk menemukan korespondensi di daerah yang tidak lawan. Untuk mengatasi masalah ini, kami mengusulkan PSMNET, jaringan pencocokan stereo piramida yang terdiri dari dua modul utama: pengumpulan piramida spasial dan CNN 3D. Modul pengumpulan piramida spasial memanfaatkan kapasitas informasi konteks global dengan agregat konteks dalam berbagai skala dan lokasi untuk membentuk volume biaya. 3D CNN belajar untuk mengatur volume biaya menggunakan jaringan jam pasir yang ditumpuk bersama dengan pengawasan menengah.

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".
Sebagai contoh, gunakan perintah berikut untuk melatih PSMNET pada aliran adegan
python main.py --maxdisp 192
--model stackhourglass
--datapath (your scene flow data folder)
--epochs 10
--loadmodel (optional)
--savemodel (path for saving model)
Sebagai contoh lain, gunakan perintah berikut untuk finetune psmnet pada 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)
Anda juga dapat melihat contoh -contoh itu di run.sh.
Gunakan perintah berikut untuk mengevaluasi data uji PSMNET pada Kitti 2015 yang terlatih
python submission.py --maxdisp 192
--model stackhourglass
--KITTI 2015
--datapath (KITTI 2015 test data folder)
--loadmodel (finetuned PSMNet)
※ Catatan: Model pretrain disimpan di .tar; Namun, Anda tidak perlu menyelesaikannya. Gunakan torch.load () untuk memuatnya.
UPDATE: 2018/9/6 Kami merilis model Kitti 2012 pra-terlatih.
UPDATE: 2021/9/22 Model pretrained menggunakan obor 1.8.1 (berat model sebelumnya dilatih obor 0.4.1)
| Kitti 2015 | Aliran adegan | Kitti 2012 | Aliran adegan (obor 1.8.1) |
|---|---|---|---|
| Google Drive | Google Drive | Google Drive | Google Drive |
python Test_img.py --loadmodel (finetuned PSMNet) --leftimg ./left.png --rightimg ./right.png

※ Perhatikan bahwa kesalahan validasi 3-px yang dilaporkan dihitung menggunakan kode MATLAB resmi Kitti, bukan kode kami.
Tautan papan peringkat
| Metode | D1-all (semua) | D1-all (noc) | Runtime |
|---|---|---|---|
| Psmnet | 2,32 % | 2,14 % | 0.41 |
| IRESNET-I2 | 2,44 % | 2,19 % | 0.12 |
| GC-NET | 2,87 % | 2,61 % | 0,90 |
| MC-CNN | 3,89 % | 3,33 % | 67 |
Kami memvisualisasikan bidang reseptif dari pengaturan PSMNET yang berbeda, pengaturan penuh dan baseline.
Pengaturan Penuh: Conv, SPP, Hour Glass yang Ditumpuk
Baseline: Tidak ada pelebaran, tidak ada SPP, tidak ada jam pasir yang ditumpuk
Bidang reseptif dihitung untuk piksel di pusat gambar, ditunjukkan oleh Palang Merah.

Diskusi atau masalah apa pun disambut!