PSMNet:
Pyramid Stereo Matching Network (CVPR 2018)
Hiroaki Sugisaki, 上智大学 B4(休)
1
スライドについて
● Google Slideで公開
○ 誤り等のご指摘があれば修正しますので最新版は以下のURLよりお願いします。
○ https://docs.google.com/presentation/d/1lcTaWmU4ZIBO91cuyJWK-rHbevgwcUFBH--he-
F7DKI/edit?usp=sharing
2
論文情報
● 書誌情報
○ Pyramid Stereo Matching Network (CVPR 2018)
○ https://arxiv.org/abs/1803.08669
○ Jia-Ren Chang, Yong-Sheng Chen
● 要約
○ END-to-ENDなステレオマッチングモデル
○ END-to-ENDが苦手とするill-posedな領域の精度をあげた (occulusion/繰り返しパターン)
■ SPPM (Spatial Pyramid Pooling Module) によって画像全体の中での文脈を把握(Global
Context)
■ downsampleとupsampleを繰り返す3D CNNに通すことで出力を調整
○ 個人的にはSemantic Segmentationに用いられている手法をStereo Matchingに適応している
印象がある
3
内容
● ステレオマッチングについて
● 関連研究
● PSMNet
● 実験と結果
● 結論
4
● ステレオマッチングについて
○ ステレオマッチング
○ Disparity Map
5
ステレオマッチング
● ステレオカメラ
○ 対象物を複数の異なる方向から同時に撮影することのできるカメラ
● ステレオマッチング
○ ステレオカメラによって撮影された画像の視差(disparity)を求めること
○ また求めた視差から三角測量を用いて被写体の深度を求めること.
6
右左
- ステレオカメラ - Wikipedia : https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%86%E3%83%AC%E3%82%AA%E3%82%AB%E3%83%A1%E3%83%A9
- 2003 Stereo Datasets : http://vision.middlebury.edu/stereo/data/scenes2003/
Disparity Map
● Disparity
○ 被写体の対応点の左右画像におけるピクセル差.
○ 対称点の視差が大きいほど手前にある.
● Disparity Map
○ 各ピクセルにおける視差の大きさを2次元画像とし
て表したもの.
7
右
左
Disparity
Disparity Map
- 2003 Stereo Datasets : http://vision.middlebury.edu/stereo/data/scenes2003/
● 関連研究
○ Dilated Convolution
○ SPP (Spatial Pyramid Pooling)
○ PSPNet (Pyramid Scene Parsing Network)
8
Dilated Convolution
● 以前までの受容野を広げる方法
○ 層の数を増やす => 解像度が大きいと限界
○ フィルターを大きくする => 解像度が大きいと限界
○ プーリング層を使う => 解像度が落ちる
● メリット
○ 簡単にかつ解像度を失わずに受容野(Receptive Field)を広げることができる
○ 線形増加するパラメータ数に対して受容野は指数関数的に広がる
■ の受容野は
9
- Dilated Convolution - ジョイジョイジョイ : http://joisino.hatenablog.com/
- arXiv : Multi-Scale Context Aggregation by Dilated Convolutions : https://arxiv.org/abs/1511.07122
- https://towardsdatascience.com/review-dilated-convolution-semantic-segmentation-9d5a5bd768f5
2-dilated
1-dilated
= 普通のConv
SPP (Spatial Pyramid Pooling)
● プーリングサイズではなく,プーリング
を行う領域数を固定
○ 当初は様々な解像度の画像に対
して一様に処理する目的で考案
された
● 四分木のようなスケール構造に分けた
各層に対してプーリングを行う
○ 各スケールごとの情報を得る
○ Global Context
10
- Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition : https://arxiv.org/abs/1406.4729
PSPNet (Pyramid Scene Parsing Network)
● Pyramid Pooling Module
○ 処理の流れ
■ → SPPのプーリング
■ → 各スケールごとに1x1のConvフィルタに通すことでチャネル方向を圧縮
■ → プーリング前のサイズにupsample
○ 各スケールの内包関係などの階層的情報を伝達
11
- [1612.01105] Pyramid Scene Parsing Network : https://arxiv.org/abs/1612.01105
Stacked Hourglass Networks
● Hourglassデザイン
○ 様々なスケールにおける情報を取得するモチベーション
○ Human Pose Estimationで体の部位の関係を取得するのに利用
12- [1603.06937] Stacked Hourglass Networks for Human Pose Estimation : https://arxiv.org/abs/1603.06937
● PSMNet
○ 全体構造
○ CNNによる特徴抽出
○ SPP Module
○ Cost Volume
○ 3D CNN
○ Loss
13
PSMNetの全体構造
● 左右の画像を入力として1枚のDisparity Mapを出力
14
CNNによる特徴抽出
● conv0
○ 3つの3x3フィルタで7x7のreceptive fieldを
カバー
● conv1_x, conv2_x, conv3_x, conv4_x
○ ResNet
● conv3_x, conv4_x
○ Dilated Convolution
● 受容野を広くとりたいモチベーション
- https://towardsdatascience.com/review-dilated-convolution-semantic-segmentation-9d5a5bd768f5 15
Dilated
Convolution
SPP Module
● Spatial Pyramid Pooling
Module
○ PSPNetのPyramid Pooling
Moduleを取り入れている
16
Cost Volume
● shifted right
○ 左の画像に対して右の画像をwidth方
向に1ピクセルずつずらして Max
Disparity までずらした各画像とを
ConcatすることでD x H x W x Cの4
次元の出力になる
○ ここではHとWがそれぞれ1/4されて
いるのでD方向も1/4
17
3D CNN
● BasicとStacked Hourglassの2種類を
提案して実験
● Basic
○ 単純にResBlockの配置し最後に
元のサイズにupsample
● Stacked Hourglass
○ Stacked Hourglass Networksの
ブロックを少し変えて適用
○ 様々なスケールの情報の獲得に
期待
○ 3つの出力
■ ロス計算に利用
■ 推論時は最後の出力のみ
利用
18
Disparity Regression
● regressionに渡される出力 は各disparity(d)に対するコストを表す
● σはソフトマックス関数
● 以下のような重み積で表すことで連続的な出力が得られる
● クラス分類で表すよりロバスト性があるらしい (※)
19
- ※ [1703.04309] End-to-End Learning of Geometry and Context for Deep Stereo Regression : https://arxiv.org/abs/1703.04309
Loss
● Smooth L1
○ 外れ値に対してロバスト性があり,物体検出のBoundingBoxのLossでも使われている
20
● 実験と結果
○ データセット
○ 学習
○ Stacked Hourglassの実験
○ Lossの比重を変えた実験
○ KITTIの結果
21
データセット
● Scene Flow … シミュレーションから生成されたデータセット
○ H = 540, W = 960 の画像
○ train : 35,454枚, test: 4370枚
○ 密なDensity MapのGT (Ground Truth)
● KITTI 2015 … 自動車ビジョンデータセット
○ H = 376, W = 1240 の画像
○ train : 200枚 → 80% (train), 20% (validation)
○ LiDARによって取得した疎なDensity MapのGT
● KITTI 2012
○ H = 376, W = 1240 の画像
○ train : 194枚 → 160枚 (train), 34枚 (validation)
○ LiDARによって取得した疎なDensity MapのGT
22
学習
● 画像中からランダムに H=256, W=512 を切り出して学習
● OptimizerにAdamを使用
● maximum disparity (D) を 192 と指定
● Scene Flowに対して10エポック学習. (そのままScene Flowの評価に使用)
● Scene Flowで学習したものをKITTIデータセットを用いてfine-tuning (100エポック)
23
Stacked Hourglassの実験
24
Lossの比重を変えた実験
25
Loss_1 Loss_2 Loss_3
KITTI 2012
26
KITTI 2015
27
結論
● SPPとDilated convolutionを用いることでピクセルレベルから異なるスケール
の領域ごとの情報を取得
● Stacked Hourglass 3D CNNにおけるtop-down/bottom-up方式でglobal context
の獲得に寄与
28

[DL輪読会]Pyramid Stereo Matching Network

  • 1.
    PSMNet: Pyramid Stereo MatchingNetwork (CVPR 2018) Hiroaki Sugisaki, 上智大学 B4(休) 1
  • 2.
    スライドについて ● Google Slideで公開 ○誤り等のご指摘があれば修正しますので最新版は以下のURLよりお願いします。 ○ https://docs.google.com/presentation/d/1lcTaWmU4ZIBO91cuyJWK-rHbevgwcUFBH--he- F7DKI/edit?usp=sharing 2
  • 3.
    論文情報 ● 書誌情報 ○ PyramidStereo Matching Network (CVPR 2018) ○ https://arxiv.org/abs/1803.08669 ○ Jia-Ren Chang, Yong-Sheng Chen ● 要約 ○ END-to-ENDなステレオマッチングモデル ○ END-to-ENDが苦手とするill-posedな領域の精度をあげた (occulusion/繰り返しパターン) ■ SPPM (Spatial Pyramid Pooling Module) によって画像全体の中での文脈を把握(Global Context) ■ downsampleとupsampleを繰り返す3D CNNに通すことで出力を調整 ○ 個人的にはSemantic Segmentationに用いられている手法をStereo Matchingに適応している 印象がある 3
  • 4.
  • 5.
  • 6.
    ステレオマッチング ● ステレオカメラ ○ 対象物を複数の異なる方向から同時に撮影することのできるカメラ ●ステレオマッチング ○ ステレオカメラによって撮影された画像の視差(disparity)を求めること ○ また求めた視差から三角測量を用いて被写体の深度を求めること. 6 右左 - ステレオカメラ - Wikipedia : https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%86%E3%83%AC%E3%82%AA%E3%82%AB%E3%83%A1%E3%83%A9 - 2003 Stereo Datasets : http://vision.middlebury.edu/stereo/data/scenes2003/
  • 7.
    Disparity Map ● Disparity ○被写体の対応点の左右画像におけるピクセル差. ○ 対称点の視差が大きいほど手前にある. ● Disparity Map ○ 各ピクセルにおける視差の大きさを2次元画像とし て表したもの. 7 右 左 Disparity Disparity Map - 2003 Stereo Datasets : http://vision.middlebury.edu/stereo/data/scenes2003/
  • 8.
    ● 関連研究 ○ DilatedConvolution ○ SPP (Spatial Pyramid Pooling) ○ PSPNet (Pyramid Scene Parsing Network) 8
  • 9.
    Dilated Convolution ● 以前までの受容野を広げる方法 ○層の数を増やす => 解像度が大きいと限界 ○ フィルターを大きくする => 解像度が大きいと限界 ○ プーリング層を使う => 解像度が落ちる ● メリット ○ 簡単にかつ解像度を失わずに受容野(Receptive Field)を広げることができる ○ 線形増加するパラメータ数に対して受容野は指数関数的に広がる ■ の受容野は 9 - Dilated Convolution - ジョイジョイジョイ : http://joisino.hatenablog.com/ - arXiv : Multi-Scale Context Aggregation by Dilated Convolutions : https://arxiv.org/abs/1511.07122 - https://towardsdatascience.com/review-dilated-convolution-semantic-segmentation-9d5a5bd768f5 2-dilated 1-dilated = 普通のConv
  • 10.
    SPP (Spatial PyramidPooling) ● プーリングサイズではなく,プーリング を行う領域数を固定 ○ 当初は様々な解像度の画像に対 して一様に処理する目的で考案 された ● 四分木のようなスケール構造に分けた 各層に対してプーリングを行う ○ 各スケールごとの情報を得る ○ Global Context 10 - Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition : https://arxiv.org/abs/1406.4729
  • 11.
    PSPNet (Pyramid SceneParsing Network) ● Pyramid Pooling Module ○ 処理の流れ ■ → SPPのプーリング ■ → 各スケールごとに1x1のConvフィルタに通すことでチャネル方向を圧縮 ■ → プーリング前のサイズにupsample ○ 各スケールの内包関係などの階層的情報を伝達 11 - [1612.01105] Pyramid Scene Parsing Network : https://arxiv.org/abs/1612.01105
  • 12.
    Stacked Hourglass Networks ●Hourglassデザイン ○ 様々なスケールにおける情報を取得するモチベーション ○ Human Pose Estimationで体の部位の関係を取得するのに利用 12- [1603.06937] Stacked Hourglass Networks for Human Pose Estimation : https://arxiv.org/abs/1603.06937
  • 13.
    ● PSMNet ○ 全体構造 ○CNNによる特徴抽出 ○ SPP Module ○ Cost Volume ○ 3D CNN ○ Loss 13
  • 14.
  • 15.
    CNNによる特徴抽出 ● conv0 ○ 3つの3x3フィルタで7x7のreceptivefieldを カバー ● conv1_x, conv2_x, conv3_x, conv4_x ○ ResNet ● conv3_x, conv4_x ○ Dilated Convolution ● 受容野を広くとりたいモチベーション - https://towardsdatascience.com/review-dilated-convolution-semantic-segmentation-9d5a5bd768f5 15 Dilated Convolution
  • 16.
    SPP Module ● SpatialPyramid Pooling Module ○ PSPNetのPyramid Pooling Moduleを取り入れている 16
  • 17.
    Cost Volume ● shiftedright ○ 左の画像に対して右の画像をwidth方 向に1ピクセルずつずらして Max Disparity までずらした各画像とを ConcatすることでD x H x W x Cの4 次元の出力になる ○ ここではHとWがそれぞれ1/4されて いるのでD方向も1/4 17
  • 18.
    3D CNN ● BasicとStackedHourglassの2種類を 提案して実験 ● Basic ○ 単純にResBlockの配置し最後に 元のサイズにupsample ● Stacked Hourglass ○ Stacked Hourglass Networksの ブロックを少し変えて適用 ○ 様々なスケールの情報の獲得に 期待 ○ 3つの出力 ■ ロス計算に利用 ■ 推論時は最後の出力のみ 利用 18
  • 19.
    Disparity Regression ● regressionに渡される出力は各disparity(d)に対するコストを表す ● σはソフトマックス関数 ● 以下のような重み積で表すことで連続的な出力が得られる ● クラス分類で表すよりロバスト性があるらしい (※) 19 - ※ [1703.04309] End-to-End Learning of Geometry and Context for Deep Stereo Regression : https://arxiv.org/abs/1703.04309
  • 20.
    Loss ● Smooth L1 ○外れ値に対してロバスト性があり,物体検出のBoundingBoxのLossでも使われている 20
  • 21.
    ● 実験と結果 ○ データセット ○学習 ○ Stacked Hourglassの実験 ○ Lossの比重を変えた実験 ○ KITTIの結果 21
  • 22.
    データセット ● Scene Flow… シミュレーションから生成されたデータセット ○ H = 540, W = 960 の画像 ○ train : 35,454枚, test: 4370枚 ○ 密なDensity MapのGT (Ground Truth) ● KITTI 2015 … 自動車ビジョンデータセット ○ H = 376, W = 1240 の画像 ○ train : 200枚 → 80% (train), 20% (validation) ○ LiDARによって取得した疎なDensity MapのGT ● KITTI 2012 ○ H = 376, W = 1240 の画像 ○ train : 194枚 → 160枚 (train), 34枚 (validation) ○ LiDARによって取得した疎なDensity MapのGT 22
  • 23.
    学習 ● 画像中からランダムに H=256,W=512 を切り出して学習 ● OptimizerにAdamを使用 ● maximum disparity (D) を 192 と指定 ● Scene Flowに対して10エポック学習. (そのままScene Flowの評価に使用) ● Scene Flowで学習したものをKITTIデータセットを用いてfine-tuning (100エポック) 23
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
    結論 ● SPPとDilated convolutionを用いることでピクセルレベルから異なるスケール の領域ごとの情報を取得 ●Stacked Hourglass 3D CNNにおけるtop-down/bottom-up方式でglobal context の獲得に寄与 28

Editor's Notes

  • #7 https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%86%E3%83%AC%E3%82%AA%E3%82%AB%E3%83%A1%E3%83%A9 http://vision.middlebury.edu/stereo/data/scenes2003/
  • #8 http://vision.middlebury.edu/stereo/data/scenes2003/