このリポジトリには、Jia-Ren ChangとYong-Sheng Chenによる「Pyramid Stereo Matching Network」Paper(CVPR 2018)のコード(Pytorch)が含まれています。
2020/12/20:PSMNETの更新:トーチ1.6.0/TorchVision 0.5.0およびPython 3.7をサポートし、一貫性のないインデントを削除しました。
2020/12/20:提案されているリアルタイムステレオは、リアルタイムステレオで見つけることができます。
@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}
}
最近の研究では、ステレオペアの画像からの深度推定は、畳み込みニューラルネットワーク(CNNS)で解決するための監視された学習タスクとして定式化できることが示されています。ただし、現在のアーキテクチャは、パッチベースのシャムネットワークに依存しており、不適切な地域で対応を見つけるためのコンテキスト情報を活用する手段がありません。この問題に取り組むために、2つの主要なモジュールで構成されるピラミッドステレオマッチングネットワークであるPSMNETを提案します:空間ピラミッドプーリングと3D CNN。空間ピラミッドプーリングモジュールは、さまざまなスケールと場所でコンテキストを集約してコストボリュームを形成することにより、グローバルコンテキスト情報の能力を活用します。 3D CNNは、中間監督と組み合わせて、積み重ねられた複数の砂時計ネットワークを使用してコストボリュームを正規化することを学びます。

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".
例として、次のコマンドを使用して、シーンフローでPSMNETをトレーニングします
python main.py --maxdisp 192
--model stackhourglass
--datapath (your scene flow data folder)
--epochs 10
--loadmodel (optional)
--savemodel (path for saving model)
別の例として、次のコマンドを使用して、Kitti 2015でPSMNETをFINTUNE
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)
run.sh.でこれらの例を見ることもできます。
次のコマンドを使用して、Kitti 2015テストデータでトレーニングされたPSMNETを評価します
python submission.py --maxdisp 192
--model stackhourglass
--KITTI 2015
--datapath (KITTI 2015 test data folder)
--loadmodel (finetuned PSMNet)
※注:事前に抑制されたモデルは.tarで保存されました。しかし、あなたはそれをunする必要はありません。 torch.load()を使用してロードします。
更新:2018/9/6事前に訓練されたKitti 2012モデルをリリースしました。
更新:2021/9/22トーチ1.8.1を使用した前提型モデル(以前のモデルの重量はトレーニングされたトーチ0.4.1)
| Kitti 2015 | シーンフロー | Kitti 2012 | シーンフロー(トーチ1.8.1) |
|---|---|---|---|
| Googleドライブ | Googleドライブ | Googleドライブ | Googleドライブ |
python Test_img.py --loadmodel (finetuned PSMNet) --leftimg ./left.png --rightimg ./right.png

codeコードではなく、Kittiの公式MATLABコードを使用して、報告された3-PX検証エラーが計算されたことに注意してください。
リーダーボードリンク
| 方法 | D1-All(すべて) | D1-All(NOC) | ランタイム |
|---|---|---|---|
| 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 |
PSMNET、フル設定、ベースラインのさまざまな設定の受容フィールドを視覚化します。
フル設定:拡張具体、spp、積み重ねられた砂時計
ベースライン:拡張されたコンビュート、spp、積み重ねられた砂時計はありません
受容フィールドは、赤十字で示された画像中心のピクセルについて計算されました。

議論や懸念は歓迎されます!