DLゼミ

FastDepth: Fast Monocular Depth Estimation on
Embedded Systems

1
北海道大学大学院情報科学院

調和系工学研究室

修士1年 森 雄斗

論文情報
 2
● タイトル

– FastDepth: Fast Monocular Depth Estimation on Embedded Systems
● 学会

– ICRA (IEEE International Conference on Robotics and Automation)2019
● 著者

– Diana Wofk*,
Fangchang Ma*
, Tien-Ju Yang, Sertac Karaman, Vivienne Sze
• The Massachusetts Institute of Techonology

● Github

– https://github.com/dwofk/fast-depth(PyTorch)
● Webサイト

– http://fastdepth.mit.edu/

概要

● 従来の単眼深度推定アルゴリズムは高性能のGPUを要し、

リアルタイム推論に時間がかかる

● 軽量なエンコーダ/デコーダネットワークアーキテクチャで構築し、

計算の複雑さと遅延を低減するためのネットワークプルージングを適用

● エッジデバイスにおいて、最も低いレイテンシと最も高いスループット

3
GT
Image
 Fast Depth

組み込みシステムのための単眼深度推定
背景

● 既存の深度センサはかさばり、消費電力が高いため、単眼カメラを用いた深度
推定が望まれる

● 従来の単眼深度推定は、精度向上のみに焦点が当てられ、結果的に計算リ
ソースが大きいアルゴリズムを採用している

● これからの課題は、アルゴリズムの精度と計算及び実行時間のコストのバラ
ンスをとること

4
深度センサ 単眼カメラ
単眼深度推定

アルゴリズム
小型・低コストのために

が大きな計算リソースを必要としている
から
 へ
しかし、
ex: LiDAR, 構造光3Dスキャナー
ex: ReDWeb, struct2depth

背景

● 既存の深度センサはかさばり、消費電力が高いため、単眼カメラを用いた深度
推定が望まれる

● 従来の単眼深度推定は、精度向上のみに焦点が当てられ、結果的に計算リ
ソースが大きいアルゴリズムを採用している

● これからの課題は、アルゴリズムの精度と計算及び実行時間のコストのバラ
ンスをとること

5
深度センサ 単眼カメラ
単眼深度推定

アルゴリズム
小型・低コストのために

が大きな計算リソースを必要としている
から
 へ
しかし、
ex: LiDAR, 構造光3Dスキャナー
ex: ReDWeb, struct2depth

バランスが

重要

関連研究 | 単眼深度推定
Monocular Relative Depth Perception with Web
Stereo Data Supervision [1]

6
Deeper Depth Prediction with Fully
Convolutional Residual Networks[2]

関連研究 | 単眼深度推定 (Monocular Depth Estimation)

どちらも高精度なモデルを作成するアプローチ

[1] Xian, Ke, et al. "Monocular relative depth perception with web stereo data supervision." Proceedings of the IEEE Conference on Computer Vision and Pattern
Recognition. 2018.
[2] Laina, Iro, et al. "Deeper depth prediction with fully convolutional residual networks." 2016 Fourth international conference on 3D vision (3DV). IEEE, 2016.
関連研究 | その他

● Efficient Neural Networks

○ 画像分類 | VGG → MobileNet

○ 物体検出 | SSD → FasterRCNN









● Network Pruning

○ 冗長なパラメータや計算と特定して除去

○ ex: NetAdapt



7
ラベルに縮小するエンコーダーネットワークに焦点が当てられている

デコーダーネットワークを持つピクセルベースの効率性についてはあまり検討されていない

図1 | https://missinglink.ai/guides/tensorflow/tensorflow-conv2d-layers-practical-guide/ より引用

図1: 一般的なCNN

一般的にエンコーダーネットワークに適用されている

エンコーダーとデコーダーの両方の効率性がプルーニングによって向上するかを実証する

提案手法

● ネットワーク構成















● ネットワークコンパイル



8
● Network Pruning

提案手法 | ネットワーク構成
 9
Fully convolutional encoder-decoder

入力サイズと同じ出力サイズを出力するには、”Fully Convolutional”が効果的[3]

全結合層を1×1の畳み込みで置き換える

[3] Long, Jonathan, Evan Shelhamer, and Trevor Darrell. "Fully convolutional networks for semantic
segmentation." Proceedings of the IEEE conference on computer vision and pattern recognition. 2015.
提案手法 | ネットワーク構成
 10
● 低レイテンシを目標とし、MobileNet_v1[4]を採用

[4] A. G. Howard, M. Zhu, B. Chen, D. Kalenichenko, W. Wang, T. Weyand, M. Andreetto, and H. Adam, “MobileNets: Efficient
convolutional neural networks for mobile vision applications,” arXiv preprint arXiv:1704.04861, 2017.
(a) 通常の畳み込み演算

(b) 下がMobileNetの畳み込み演算

空間方向とチャネル方向の畳み込みを同時に行わず、 

Depthwise(空間方向)とPointwise(チャネル方向)を順に行う 

m×m×nの標準的な畳込みレイヤの場合

MAC(積和演算)の回数がm 倍少ない

2

提案手法 | ネットワーク構成
 11
● Decoder

○ 5×5のアップサンプリングレイヤーを使用

○ 中間特徴マップのサイズを倍にし、チャネル数を半分にする

○ 本研究ではNNconv5と定義



● Skip Connection (U-Net, DeeperLabにも使用されている)

○ エンコーダによって失われた画像情報を追加する

○ エンコーダの中間の3層をアップサンプリングレイヤーに加算





提案手法 | ネットワーク構成
 12
● Decoder

○ 5×5のアップサンプリングレイヤーを使用

○ 中間特徴マップのサイズを倍にし、チャネル数を半分にする

○ 本研究ではNNconv5と定義



● Skip Connection (U-Net, DeeperLabにも使用されている)

○ エンコーダによって失われた画像情報を追加する

○ エンコーダの中間の3層をアップサンプリングレイヤーに加算





提案手法 | ネットワークコンパイル

● TVMコンパイラスタック[5]を使用

○ ハードウェア上でのランタイム削減のために最適化









13
[5] T. Chen, T. Moreau, Z. Jiang, L. Zheng, E. Yan, H. Shen, M. Cowan, L. Wang, Y. Hu, L. Ceze et al., “TVM: An
Automated End-to-End Optimizing Compiler for Deep Learning,” in 13th USENIX Symposium on Operating Systems
Design and Implementation (OSDI 18), 2018, pp. 578–594.
web: https://tvm.apache.org/2017/10/06/nnvm-compiler-announcement
提案手法 | Network Pruning

● NetAdapt[6]を使用

○ 使用率の低いアクティベーションチャネルを減少させる

○ 精度と複雑さのトレードオフで最も良いネットワーク提案



14
[6] T.-J. Yang, A. Howard, B. Chen, X. Zhang, A. Go, M. Sadler, V. Sze, and H. Adam, “NetAdapt: PlatformAware Neural Network
Adaptation for Mobile Applications,” in European Conference on Computer Vision (ECCV), 2018. 

・github | https://github.com/denru01/netadapt/

実験 | 設定

● データセット

○ NYU Depth Dataset v2 [7]

■ Microsoft Kinectで撮影した室内の画像(1449個)

■ ダウンロードurl: https://cs.nyu.edu/~silberman/datasets/nyu_depth_v2.html



● エンコーダー

○ ImageNetで事前学習

● プラットフォーム

○ Jetson TX2



● 実験概要

○ 先行研究との比較

○ エンコーダーの検証

○ デコーダーの検証

○ Network Pruningの効果

15
[7] N. Silberman, D. Hoiem, P. Kohli, and R. Fergus, “Indoor segmentation and support inference from RGBD images,” in
European Conference on Computer Vision (ECCV), 2012, pp. 746–760. 

サンプル画像

推論の時間と精度を確認

実験 | 先行研究との比較

● 推論時はデコーダー部分で時間がかかる

● ベースラインと比較して、同程度の精度かつ総ランタイムを約65倍に短
縮

16
先行研究との比較 

MACs: 積和演算 

RMSE: 平均平方二乗誤差 

δ : 相対誤差が25%以内の   
予測ピクセルの割合 

実験 | エンコーダーの検証

● エンコーダー部分のみを変更して推論

○ 精度は落ちるが、ランタイム時間を大幅に減少

17
実験 | エンコーダーの検証

● エンコーダー部分のみを変更して推論

○ 精度は落ちるが、ランタイム時間を大幅に減少

18
深層学習フレームワークが今回の実装において最
適化されていないことに起因 ..?
深層学習コンパイラの必要性あり
実験 | デコーダーの検証 | アップサンプリング処理

● 4つのアップサンプリング処理を比較

○ 高い精度と低いランタイム時間を持つNNConv5を採用

19
2×2の

Unpooling

サイズを2倍にする 

最近傍補間

実験 | デコーダーの検証 | depthwise and skip connection

● 標準的なデコーダーとdepthwise デコーダーの比較

○ depthwise: 畳み込みの深さ方向に分解する (MobileNetの構造に近い)

● additive skip connectionsとconcatenative skip connectionsの比較

○ concatの場合、チャネル数が増え、複雑度が増える

      → 精度は向上する一方、ランタイム時間も増加

● skip connectionを持つと深度画像の鮮明さが向上 (定性評価)



20
GT

skip

connectio

なし

skip

connectio

あり

結果から depthwise decoder + skip-add を採用

実験 | Network Pruningの効果

● NetAdaptを使用

○ 各レイヤーのチャネル数を効率良く減らし、複雑度を減少













○ ほぼ同じ精度でGPUでの実行時間を1.5倍に削減

21
網掛け部分が

pruning前のチャネル数

デモ映像 @ ICRA 2019
 22
FastDepth: Fast Monocular
Depth Estimation on Embedded Systems @
ICRA 2019
url : https://youtu.be/gRqrYJWyXyI?t=38
Demo of FastDepth on iPhone @ ICRA 2019
url: https://youtu.be/gtXfRTPnz6Y
まとめ

● 従来の単眼深度推定アルゴリズムは高性能のGPUを要し、

リアルタイム推論に時間がかかる

● 軽量なエンコーダ/デコーダネットワークアーキテクチャで構築し、

計算の複雑さと遅延を低減するためのネットワークプルージングを適用

● エッジデバイスにおいて、最も低いレイテンシと最も高いスループット

23
GT
Image
 Fast Depth

組み込みシステムのための単眼深度推定

FastDepth: Fast Monocular Depth Estimation on Embedded Systems

  • 1.
    DLゼミ
 FastDepth: Fast MonocularDepth Estimation on Embedded Systems
 1 北海道大学大学院情報科学院
 調和系工学研究室
 修士1年 森 雄斗

  • 2.
    論文情報
 2 ● タイトル
 –FastDepth: Fast Monocular Depth Estimation on Embedded Systems ● 学会
 – ICRA (IEEE International Conference on Robotics and Automation)2019 ● 著者
 – Diana Wofk*, Fangchang Ma* , Tien-Ju Yang, Sertac Karaman, Vivienne Sze • The Massachusetts Institute of Techonology
 ● Github
 – https://github.com/dwofk/fast-depth(PyTorch) ● Webサイト
 – http://fastdepth.mit.edu/

  • 3.
  • 4.
    背景
 ● 既存の深度センサはかさばり、消費電力が高いため、単眼カメラを用いた深度 推定が望まれる
 ● 従来の単眼深度推定は、精度向上のみに焦点が当てられ、結果的に計算リ ソースが大きいアルゴリズムを採用している
 ●これからの課題は、アルゴリズムの精度と計算及び実行時間のコストのバラ ンスをとること
 4 深度センサ 単眼カメラ 単眼深度推定
 アルゴリズム 小型・低コストのために
 が大きな計算リソースを必要としている から
 へ しかし、 ex: LiDAR, 構造光3Dスキャナー ex: ReDWeb, struct2depth

  • 5.
    背景
 ● 既存の深度センサはかさばり、消費電力が高いため、単眼カメラを用いた深度 推定が望まれる
 ● 従来の単眼深度推定は、精度向上のみに焦点が当てられ、結果的に計算リ ソースが大きいアルゴリズムを採用している
 ●これからの課題は、アルゴリズムの精度と計算及び実行時間のコストのバラ ンスをとること
 5 深度センサ 単眼カメラ 単眼深度推定
 アルゴリズム 小型・低コストのために
 が大きな計算リソースを必要としている から
 へ しかし、 ex: LiDAR, 構造光3Dスキャナー ex: ReDWeb, struct2depth
 バランスが
 重要

  • 6.
    関連研究 | 単眼深度推定
MonocularRelative Depth Perception with Web Stereo Data Supervision [1]
 6 Deeper Depth Prediction with Fully Convolutional Residual Networks[2]
 関連研究 | 単眼深度推定 (Monocular Depth Estimation)
 どちらも高精度なモデルを作成するアプローチ
 [1] Xian, Ke, et al. "Monocular relative depth perception with web stereo data supervision." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018. [2] Laina, Iro, et al. "Deeper depth prediction with fully convolutional residual networks." 2016 Fourth international conference on 3D vision (3DV). IEEE, 2016.
  • 7.
    関連研究 | その他
 ●Efficient Neural Networks
 ○ 画像分類 | VGG → MobileNet
 ○ 物体検出 | SSD → FasterRCNN
 
 
 
 
 ● Network Pruning
 ○ 冗長なパラメータや計算と特定して除去
 ○ ex: NetAdapt
 
 7 ラベルに縮小するエンコーダーネットワークに焦点が当てられている
 デコーダーネットワークを持つピクセルベースの効率性についてはあまり検討されていない
 図1 | https://missinglink.ai/guides/tensorflow/tensorflow-conv2d-layers-practical-guide/ より引用
 図1: 一般的なCNN
 一般的にエンコーダーネットワークに適用されている
 エンコーダーとデコーダーの両方の効率性がプルーニングによって向上するかを実証する

  • 8.
  • 9.
    提案手法 | ネットワーク構成
9 Fully convolutional encoder-decoder
 入力サイズと同じ出力サイズを出力するには、”Fully Convolutional”が効果的[3]
 全結合層を1×1の畳み込みで置き換える
 [3] Long, Jonathan, Evan Shelhamer, and Trevor Darrell. "Fully convolutional networks for semantic segmentation." Proceedings of the IEEE conference on computer vision and pattern recognition. 2015.
  • 10.
    提案手法 | ネットワーク構成
10 ● 低レイテンシを目標とし、MobileNet_v1[4]を採用
 [4] A. G. Howard, M. Zhu, B. Chen, D. Kalenichenko, W. Wang, T. Weyand, M. Andreetto, and H. Adam, “MobileNets: Efficient convolutional neural networks for mobile vision applications,” arXiv preprint arXiv:1704.04861, 2017. (a) 通常の畳み込み演算
 (b) 下がMobileNetの畳み込み演算
 空間方向とチャネル方向の畳み込みを同時に行わず、 
 Depthwise(空間方向)とPointwise(チャネル方向)を順に行う 
 m×m×nの標準的な畳込みレイヤの場合
 MAC(積和演算)の回数がm 倍少ない
 2

  • 11.
    提案手法 | ネットワーク構成
11 ● Decoder
 ○ 5×5のアップサンプリングレイヤーを使用
 ○ 中間特徴マップのサイズを倍にし、チャネル数を半分にする
 ○ 本研究ではNNconv5と定義
 
 ● Skip Connection (U-Net, DeeperLabにも使用されている)
 ○ エンコーダによって失われた画像情報を追加する
 ○ エンコーダの中間の3層をアップサンプリングレイヤーに加算
 
 

  • 12.
    提案手法 | ネットワーク構成
12 ● Decoder
 ○ 5×5のアップサンプリングレイヤーを使用
 ○ 中間特徴マップのサイズを倍にし、チャネル数を半分にする
 ○ 本研究ではNNconv5と定義
 
 ● Skip Connection (U-Net, DeeperLabにも使用されている)
 ○ エンコーダによって失われた画像情報を追加する
 ○ エンコーダの中間の3層をアップサンプリングレイヤーに加算
 
 

  • 13.
    提案手法 | ネットワークコンパイル
 ●TVMコンパイラスタック[5]を使用
 ○ ハードウェア上でのランタイム削減のために最適化
 
 
 
 
 13 [5] T. Chen, T. Moreau, Z. Jiang, L. Zheng, E. Yan, H. Shen, M. Cowan, L. Wang, Y. Hu, L. Ceze et al., “TVM: An Automated End-to-End Optimizing Compiler for Deep Learning,” in 13th USENIX Symposium on Operating Systems Design and Implementation (OSDI 18), 2018, pp. 578–594. web: https://tvm.apache.org/2017/10/06/nnvm-compiler-announcement
  • 14.
    提案手法 | NetworkPruning
 ● NetAdapt[6]を使用
 ○ 使用率の低いアクティベーションチャネルを減少させる
 ○ 精度と複雑さのトレードオフで最も良いネットワーク提案
 
 14 [6] T.-J. Yang, A. Howard, B. Chen, X. Zhang, A. Go, M. Sadler, V. Sze, and H. Adam, “NetAdapt: PlatformAware Neural Network Adaptation for Mobile Applications,” in European Conference on Computer Vision (ECCV), 2018. 
 ・github | https://github.com/denru01/netadapt/

  • 15.
    実験 | 設定
 ●データセット
 ○ NYU Depth Dataset v2 [7]
 ■ Microsoft Kinectで撮影した室内の画像(1449個)
 ■ ダウンロードurl: https://cs.nyu.edu/~silberman/datasets/nyu_depth_v2.html
 
 ● エンコーダー
 ○ ImageNetで事前学習
 ● プラットフォーム
 ○ Jetson TX2
 
 ● 実験概要
 ○ 先行研究との比較
 ○ エンコーダーの検証
 ○ デコーダーの検証
 ○ Network Pruningの効果
 15 [7] N. Silberman, D. Hoiem, P. Kohli, and R. Fergus, “Indoor segmentation and support inference from RGBD images,” in European Conference on Computer Vision (ECCV), 2012, pp. 746–760. 
 サンプル画像
 推論の時間と精度を確認

  • 16.
    実験 | 先行研究との比較
 ●推論時はデコーダー部分で時間がかかる
 ● ベースラインと比較して、同程度の精度かつ総ランタイムを約65倍に短 縮
 16 先行研究との比較 
 MACs: 積和演算 
 RMSE: 平均平方二乗誤差 
 δ : 相対誤差が25%以内の    予測ピクセルの割合 

  • 17.
    実験 | エンコーダーの検証
 ●エンコーダー部分のみを変更して推論
 ○ 精度は落ちるが、ランタイム時間を大幅に減少
 17
  • 18.
    実験 | エンコーダーの検証
 ●エンコーダー部分のみを変更して推論
 ○ 精度は落ちるが、ランタイム時間を大幅に減少
 18 深層学習フレームワークが今回の実装において最 適化されていないことに起因 ..? 深層学習コンパイラの必要性あり
  • 19.
    実験 | デコーダーの検証| アップサンプリング処理
 ● 4つのアップサンプリング処理を比較
 ○ 高い精度と低いランタイム時間を持つNNConv5を採用
 19 2×2の
 Unpooling
 サイズを2倍にする 
 最近傍補間

  • 20.
    実験 | デコーダーの検証| depthwise and skip connection
 ● 標準的なデコーダーとdepthwise デコーダーの比較
 ○ depthwise: 畳み込みの深さ方向に分解する (MobileNetの構造に近い)
 ● additive skip connectionsとconcatenative skip connectionsの比較
 ○ concatの場合、チャネル数が増え、複雑度が増える
       → 精度は向上する一方、ランタイム時間も増加
 ● skip connectionを持つと深度画像の鮮明さが向上 (定性評価)
 
 20 GT
 skip
 connectio
 なし
 skip
 connectio
 あり
 結果から depthwise decoder + skip-add を採用

  • 21.
    実験 | NetworkPruningの効果
 ● NetAdaptを使用
 ○ 各レイヤーのチャネル数を効率良く減らし、複雑度を減少
 
 
 
 
 
 
 ○ ほぼ同じ精度でGPUでの実行時間を1.5倍に削減
 21 網掛け部分が
 pruning前のチャネル数

  • 22.
    デモ映像 @ ICRA2019
 22 FastDepth: Fast Monocular Depth Estimation on Embedded Systems @ ICRA 2019 url : https://youtu.be/gRqrYJWyXyI?t=38 Demo of FastDepth on iPhone @ ICRA 2019 url: https://youtu.be/gtXfRTPnz6Y
  • 23.