狠狠撸

狠狠撸Share a Scribd company logo
単眼深度推定ManyDepthの紹介
2021/7/31 neka-nat
注意
● ミスがあったため、発表時の資料から修正を加えています。(2021/8/2)
自己紹介
● 名前:neka-nat
● 画像処理、ロボティクスなどをやってるフリー
ランスエンジニア(約半年)
https://twitter.com/neka_nat
https://github.com/neka-nat
自己紹介
● 名前:neka-nat
● 画像処理、ロボティクスなどをやってるフリー
ランスエンジニア(約半年)
● 前職は超ホワイトなJTC
https://twitter.com/neka_nat
https://github.com/neka-nat
自己紹介
● 名前:neka-nat
● 画像処理、ロボティクスなどをやってるフリー
ランスエンジニア(約半年)
● 前職は超ホワイトなJTC
● フリーランス意外に楽しい!
https://twitter.com/neka_nat
https://github.com/neka-nat
本日紹介する論文
● The Temporal Opportunist: Self-Supervised Multi-Frame Monocular Depth
● J.Watsonら、Niantic、エディンバラ大学などの共著
本日紹介する論文
● The Temporal Opportunist: Self-Supervised Multi-Frame Monocular Depth
● J.Watsonら、Niantic、エディンバラ大学などの共著
● 概要
○ 自己教師あり学習の単眼深度推定モデルで
SOTA
○ 単眼による推論とマルチフレームによる推論の両方を同じモデルで扱える
ようにしたよ!
選んだ理由
● 単眼深度推定の研究で有名なNianticの最新論文
● CVPR2021では他の単眼深度推定の論文(WaveletMonoDepth)も出しているが、精度
的にはこの論文のほうが良さそう
選んだ理由
● 単眼深度推定の研究で有名なNianticの最新論文
● CVPR2021では他の単眼深度推定の論文(WaveletMonoDepth)も出しているが、精度
的にはこの論文のほうが良さそう
● Nianticが提供しているAR用SDK「LightShip」にも本手法が組み込まれている
● 単眼深度推定ができればLiDARやステレオに比べてコストダウンが期待できる
デモ画像
本日の内容
● 単眼の深度推定について
● 複眼の深度推定について
● 本研究の貢献部分と内容
● 実験結果
● まとめ
単眼深度推定の問題設定
● 推論時:単一の画像から深度画像を推定する
● 学習時:教師信号の種類
○ 深度センサから取得した深度画像
○ ステレオ画像
○ 単眼のマルチフレーム
単眼深度推定の問題設定
● 推論時:単一の画像から深度画像を推定する
● 学習時:教師信号の種類
○ 深度センサから取得した深度画像
○ ステレオ画像
○ 単眼のマルチフレーム 自己教師あり単眼深度推定
ステレオ マルチフレーム
単眼深度推定の問題設定
● 推論時:単一の画像から深度画像を推定する
● 学習時:教師信号の種類
○ 深度センサから取得した深度画像
○ ステレオ画像
○ 単眼のマルチフレーム
ステレオ マルチフレーム
● 一台のカメラでデータが取れる
● 動いているものを考慮する必要があるため難し
い教師信号
● 主な手法
○ SfMLearner, MonoDepth2, PackNetなど
自己教師あり単眼深度推定
マルチフレームを使った単眼深度の学習(SfMLearner, MonoDepth2, PackNetなど)
Target Image
Source Images
Time T
Time T - 1
マルチフレームを使った単眼深度の学習(SfMLearner, MonoDepth2, PackNetなど)
Target Image
Source Images
Generated Depth Image
6D Pose
Depth
Encoder/Decoder
Pose CNN
マルチフレームを使った単眼深度の学習(SfMLearner, MonoDepth2, PackNetなど)
Target Image
Source Images
Generated Depth Image
6D Pose
Depth
Encoder/Decoder
Pose CNN
マルチフレームを使った単眼深度の学習(SfMLearner, MonoDepth2, PackNetなど)
Target Image
Source Images
Generated Depth Image
6D Pose
Depth
Encoder/Decoder
Pose CNN Target view Image
マルチフレームを使った単眼深度の学習(SfMLearner, MonoDepth2, PackNetなど)
Target Image
Source Images
Generated Depth Image
6D Pose
Depth
Encoder/Decoder
Pose CNN Target view Image
Reconstruction Loss(L1, SSIM,...)
単眼深度モデルの課題
● スケールが曖昧になる
○ Target画像上の点ptをSource画像に投影した際に同じ点psになる深度dと相対カメ
ラ座標Tは無数に存在する
d1
d2
pt
ps
ps
T1
T2
単眼深度モデルの課題
● スケールが曖昧になる
○ Target画像上の点ptをSource画像に投影した際に同じ点psになる深度dと相対カメ
ラ座標Tは無数に存在する
● 惭辞苍辞顿别辫迟丑2などでは顿别辫迟丑の平均値で正规化することで极端な値を防いでいた
単眼深度モデルの課題
● スケールが曖昧になる
○ Target画像上の点ptをSource画像に投影した際に同じ点psになる深度dと相対カメ
ラ座標Tは無数に存在する
● 惭辞苍辞顿别辫迟丑2などでは顿别辫迟丑の平均値で正规化することで极端な値を防いでいた
極端な値はでなくなるが、現実のスケールファクターとは異なる
複眼深度推定の問題設定
● 推論時:複数画像から深度を推定する
● マルチビュー
○ 異なる位置に配置された複数カメラの画像
● マルチフレーム
○ 動画のような連続的な単眼画像
マルチフレームによる深度推定
● 参考論文
○ Don’t Forget The Past: Recurrent Depth Estimation from Monocular
Video[V.Patilら, 2020]
● 単眼深度推定+リカレント層が使われている
● 幾何学的な制約を使っていない
マルチビューによる深度推定
● 参考論文
○ Learning Unsupervised Multi-View Stereopsis via Robust Photometric
Consistency[T.Khotら, CVPR2019]
● 複数の画像をfeature mapに変換しCost Volumeを求めて深度推定を行う
● 相対的なカメラ位置関係は既知
Encoder/
Decoder
Cost Volumeの計算
● Target画像に対してDepth平面を仮定してSourceのWarp画像を作成
● 各Depth平面のTarget画像とWarp画像の差をコストとして保持する
Cost
Volume
Target
Camera Source
Camera
Target Image
Source Image
Target
Image
マルチビューモデルをマルチフレームで使う場合の課題①
● MVSで使われていたモデルをマルチフレームで使うとうまく推定できない
● Cost Volume Over?tting
○ 移動体に対してオーバーフィットが起きてしまう
マルチビューモデルをマルチフレームで使う場合の課題①
● MVSで使われていたモデルをマルチフレームで使うとうまく推定できない
● Cost Volume Over?tting
○ 移動体に対してオーバーフィットが起きてしまう
マルチビューモデルをマルチフレームで使う場合の課題①
● MVSで使われていたモデルをマルチフレームで使うとうまく推定できない
● Cost Volume Over?tting
○ 移動体に対してオーバーフィットが起きてしまう
マルチビューモデルをマルチフレームで使う場合の課題②
● 以下の状況でCost Volumeがうまく求まらない
○ 前回フレームが無い/同じフレームが続く状態
○ カメラの移動が止まっている状態
マルチビューモデルをマルチフレームで使う場合の課題②
● 以下の状況でCost Volumeがうまく求まらない
○ 前回フレームが無い/同じフレームが続く状態→Cost Volumeが0
○ カメラの移動が止まっている状態→Cost Volumeが深度に対して変化しない
本論文の貢献ポイント
● 自己教師あり単眼/マルチフレーム深度推定において以下の問題を克服
○ 単眼深度推定におけるスケールの曖昧さを解決
○ 単眼深度推定におけるスケールの曖昧さをCost Volumeで扱えるようにした
○ マルチフレーム深度推定での動く物体がある場合の推論精度向上
○ マルチフレーム深度推定での静止しているカメラの影響の低減
ネットワーク全体像
● MVSで使われていたモデルにPoseCNNによる姿勢推定を追加した形
ネットワーク全体像
● MVSで使われていたモデルにPoseCNNによる姿勢推定を追加した形
前フレーム、現フレームから姿勢推定
ネットワーク全体像
● MVSで使われていたモデルにPoseCNNによる姿勢推定を追加した形
Cost VolumeだけでなくTarget frameも入力にする
前フレーム、現フレームから姿勢推定
Adaptive Cost Volume
● スケールの曖昧さを解決するためにAdaptive Cost Volumeを導入
● 内部パラメタを用いてCost Volumeが計算されるので推定される深度自体は現実スケー
ルとほぼ合っている
● 問題はCost Volumeの範囲[dmin, dmax]をどう設定するか?
Cost Volume
H
W
D
dmin
dmax
Adaptive Cost Volume
● スケールの曖昧さを解決するためにAdaptive Cost Volumeを導入
● 内部パラメタを用いてCost Volumeが計算されるので推定される深度自体は現実スケー
ルとほぼ合っている
● 問題はCost Volumeの範囲[dmin, dmax]をどう設定するか?
○ 学習時にdminとdmaxを深度の予測結果から推定
Cost Volume
H
W
D
dmin
dmax
Cost Volume Over?ttingの対策
● 動いているものをマスクするために単眼深度推定モデル(Consistency Network)を用意
する
● 単眼深度推定モデルであればそれなりに動いているものを識別できる
Training Network
Consistency Network
Cost Volume Over?ttingの対策
● Consistency Networkの推定結果とCost Volumeのベスト値の深度との差が大きい領
域をReconstruction Lossから外し、Consistency Lossに追加
静止しているカメラの影響低減
● 前回フレームが無い/同じフレームが続く状態
○ Cost Volumeが0
● カメラの移動が止まっている状態
○ Cost Volumeが深度に対して変化しない
静止しているカメラの影響低減
● 前回フレームが無い/同じフレームが続く状態
○ Cost Volumeが0
● カメラの移動が止まっている状態
○ Cost Volumeが深度に対して変化しない
● Cost VolumeとTarget画像の両方を入力にする
● 学習時に一定の確率で以下の状況での学習を行う
○ Cost Volumeを0にする
○ Source画像をTarget画像の色を変えたものに変
更する
その他の工夫:Test Time Re?nement
● Deep系のマルチフレーム深度推定でちょくちょく使われている
○ Depth Prediction Without the Sensors: Leveraging Structure for Unsupervised
Learning from Monocular Videos[V.Casserら, AAAI2019]
● マルチフレーム自己教師あり学習の特徴を活かし、推論時に学習しながら推論する
実験结果:碍滨罢罢滨
PackNet-
SFM
DFTP
Many
Depth
(+TTR)
Many
Depth
Mono
Depth2
Input&
GT
実験结果:碍滨罢罢滨
PackNet-
SFM
DFTP
Many
Depth
(+TTR)
Many
Depth
Mono
Depth2
Input&
GT
実験结果:碍滨罢罢滨
実験结果:碍滨罢罢滨
実験结果:碍滨罢罢滨
実験結果:Ablation Study
Monodepth2のモーションマスク
FlowNetを使ったモーションマスク
マスク使わない
マスク使わない、静止画対応しない
Reconstruction lossにマスク使用
使うフレームを3フレームにした
2フレームMonodepth2
MVSを使った推定手法
まとめ
● 単眼深度推定とマルチフレームの深度推定モデルうまく合わせたモデル
● 参考文献が多く今までの手法を幅広く調べていて、良かったものをいろいろと取り入れてい
る
● デモの点群がすごいきれい、深度センサ代りに使えそう
● 著者実装
○ https://github.com/nianticlabs/manydepth
参考記事
● Qiita, takoroyさん
○ https://qiita.com/takoroy/items/191ec46211838daa47e1
○ https://qiita.com/takoroy/items/c5f650a5141874420a77
○ https://qiita.com/takoroy/items/96ad3e2ad14ba036df67
● Qiita, masataka46さん
○ https://qiita.com/masataka46/items/64a85e2929b8565a226d
○ https://qiita.com/masataka46/items/9c034056ca0a5707b77a
● SfM Learner系単眼深度推定手法について
● 【MonoDepth】mono cameraによるdepth estimation基礎理解(Deep Learning編)
● 論文「Unsupervised Monocular Depth Estimation with Left-Right Consistency」を読んでみ
ました (2):論文調査編
● Midas : 奥行きを推定する機械学習モデル
● 単眼深度推定モデルMiDaS の解説と SageMaker へのデプロイ
● できる!マネキンチャレンジデータセット(
SfM?MVS編)
● MonoDepth2でKITTI Datasetを単眼Depth推定してみる
おわり

More Related Content

Cvpr 2021 manydepth