0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

論文まとめ:Deeper Depth Prediction with Fully Convolutional Residual Networks

Last updated at Posted at 2021-02-20

はじめに

depth推定系の論文から、わりと初期の
[1] I. Laina, et. al. "Deeper Depth Prediction with Fully Convolutional Residual Networks
", 2016 Fourth International Conference on 3D Vision (3DV)
のまとめ

arXiv:
https://arxiv.org/abs/1606.00373

github:
https://github.com/iro-cp/FCRN-DepthPrediction
tensorflow実装等。

概要

  • 単眼RGB画像からdepthを推定する
  • モデルはresidualなモジュールを使った全畳み込み層であり、MRF等の後処理等は必要ない
  • モデルの後半でup-samplingを使って解像度を上げるが、この際にup-projectonなる仕組みを用いる
  • reverse Huber lossを用いる

モデル全体のアーキテクチャ

モデルの全体像は以下。

3dv_img_00.png

図の通り、encodeして、その後解像度を上げる形。2列目あたりまではResNet-50を転移学習させたもの。なのでresidualなblockを多段にしたものとなっている。

3列目のup-samplingする部分が本論文の特徴の1つである。

NYU-depth v2 datasetであれば入力サイズを304x228とし、それより少し粗い160x128を出力する。

Up-Projection Blocks

本論文が提案している仕組みの1つ。以下の図で

3dv_img_01.png

(a)はun-poolingした後に5x5のカーネルでconvする単純なblock。

これに対し、Up-Projectionなるblockはun-poolingしたのちに2つのbranchに分ける。

一方は5x5カーネルでconvしたのちに3x3カーネルでconvする。もう一方は5x5カーネルでconvするのみ。これをaddし、さらにconvする。

(a)と(c)との精度の差は後述。

(b)と(d)は略。

Reverse Huber Loss

本論文の特徴の1つ。

L2 lossと以下のHuber lossを試している。

\mathcal{B}(x) = \begin{cases}
    | x | & | x | \leq c, \\
    \frac{x^2 + c^2}{2c} & |x| \geq c.
  \end{cases}

つまり、[-c, c] 間で L1 loss、その外側で L2 lossとしている。

ここで c はバッチ内でpredictとtargetとの差の最大値に対し、その1/5と定める。

c = \frac{1}{5}\max_i (| \tilde{y}_i - y_i| )

ざっくり考えると、L2だとpredictとtargetの差が大きい場合に勾配が大きくなるので、大きな差を縮小させる作用が強いが、一方でpredictとtargetとの差が小さい場合はlossも極端に小さくなり、考慮されない。結果、全体がぼやけたlow distortionのdepth mapが形成されるだろう。

そこで、差が小さい場合はL1とし、小さな差もそこそこ重視する、という感じだろうか。

これが NYU depth dataset のようなものとなったときに、効果を発揮するらしい。同 datasetはこんな感じで

3dv_img_11.png

long tailな分布だそう。画像内に遠い背景が一部写っているような状況だろうか。

そうした場合に、L2 だけだと近いか遠いかは区分できそうだが、近い中のより近いか、ちょっと遠いかは重視できない。だが、おおよそ距離を正確に欲しいのは手前の椅子とか机とかの物体なので、これでは不都合。

reverse Huber lossだと近いものに対してもより正確にその距離を推定できそう。

実験と結果

1. ablation study的なもの

NYU Depth v2 datasetを使った精度は以下。

3dv_img_03.png

ベースとするアーキテクチャに関しては、当然ながらResNetの方がAlexNetやVGGより良い。

またL2 loss と berHu(reverse Huber loss)とを比較した場合、後者の方が微妙に良い。(差はそれほどないね)

さらに、up-convとup-projectionとを比較した場合、後者の方が微妙に良い。(工夫したわりには差が少ない)

2. 他の有名モデルとの比較

以下は他の有名モデルとの比較表で、やはりNYU Depth v2 datasetを用いたもの。

3dv_img_04.png

この論文が出た2016年あたりではSOTA。

3. 定性的評価

NYU Depth dataset を用いた場合のdepth推定結果の例は以下。

3dv_img_05.png

説明が気にも書いてるが、左から4列目のResNet-50はResNetの全結合層を用いた場合(つまり本提案手法のup-projectを全結合+それをreshapeしてマップを作成に変えたもの)

この時代のモデルとしてはよさげ。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?