Slide 1

Slide 1 text

Research modeで取得した 深度(Depth)データを可視化する 2018/04/17 Soichiro Sugimoto sotan(@sotanmochi)

Slide 2

Slide 2 text

自己紹介 氏名:杉本 宗一郎 所属:TIS株式会社・戦略技術センター 最近作っているもの(個人): ユニティちゃんと鬼ごっこするアプリ (コンテスト応募に向けて最終調整中) 2018/04/17 2

Slide 3

Slide 3 text

C++のサンプル(HoloLensForCV/Streamer)を動かしてみた 2018/04/17 3 深度(Depth)センサーで取得したデータを可視化してみたが,ほとんど見えない. なぜか全体的に暗い. ※ スライド用に画像の明るさを+40%にしている 近距離深度 (ShortThrowToFDepth) 遠距離深度 (LongThrowToFDepth) https://github.com/Microsoft/HoloLensForCV/tree/feature/api_updates

Slide 4

Slide 4 text

C++のサンプル(HoloLensForCV/Streamer)を動かしてみた 2018/04/17 4 テクスチャのフォーマットを変えてみたら,全体的に明るくなった. 深度に差分はあるはずだが,違いが分からない. 近距離深度 (ShortThrowToFDepth) 遠距離深度 (LongThrowToFDepth) https://github.com/Microsoft/HoloLensForCV/tree/feature/api_updates

Slide 5

Slide 5 text

C#のサンプル(Windows-universal-sample/CameraFrames)を動かしてみた 2018/04/17 5 深度の差が見えない.全然分からない. ※ スライド用に画像の明るさを+40%にしている 近距離深度 (ShortThrowToFDepth) https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/CameraFrames

Slide 6

Slide 6 text

深度(Depth)データを分かりやすく可視化してみた 2018/04/17 6 近距離深度 (ShortThrowToFDepth) 遠距離深度 (LongThrowToFDepth)

Slide 7

Slide 7 text

深度(Depth)データを分かりやすく可視化してみた 2018/04/17 7 デモ動画 https://www.youtube.com/watch?v=Yl_hut20K5A

Slide 8

Slide 8 text

深度(Depth)をHSV形式で色に変換して可視化する 2018/04/17 8 画像出典・参考: Wikipedia「色相」 https://ja.wikipedia.org/wiki/%E8%89%B2%E7%9B%B8 Wikipedia「HSV色空間」 https://ja.wikipedia.org/wiki/HSV%E8%89%B2%E7%A9%BA%E9%96%93 1. 深度値を色相(Hue)に変換する.(SとVの値は基本的に1.0に固定) 深度(Depth): 0m 0.84m 1.68m 3.36m 4.2m 色相(Hue) : 0° 60° 120° 240° 300°

Slide 9

Slide 9 text

深度(Depth)をHSV形式で色に変換して可視化する 2018/04/17 9 2. HSV(0.0~1.0)をRGB(0.0~1.0)に変換する. Alpha(8bit) R(8bit) G(8bit) B(8bit) 3. RGB(0.0~1.0)の値をピクセルデータに変換して配列に書き込む. 0 ~ 255 0 ~ 255 0 ~ 255 0 ~ 255 参考: t-pot『HSV変換』 http://t-pot.com/program/112_HSV/index.html Wikipedia「HSV色空間」 https://ja.wikipedia.org/wiki/HSV%E8%89%B2%E7%A9%BA%E9%96%93 変換の計算式は省略.

Slide 10

Slide 10 text

可視化するために試行錯誤して分かったこと 2018/04/17 10 下記の値から計算した深度値の有効範囲は 0.001 ~ 65.535mだが, 実際の有効範囲より大きすぎるため,可視化にはあまり使えない. DepthMediaFrame.DepthFormat.DepthScaleInMeters: 0.001 DepthMediaFrame.MinReliableDepth: 1 DepthMediaFrame.MaxReliableDepth: 65535 MinReliableDepthとMaxReliableDepthは固定値であり,実行時の 変化は特にない.

Slide 11

Slide 11 text

可視化するために試行錯誤して分かったこと 2018/04/17 11 深度情報のフォーマット: - 16bit 符号なし整数 (0 ~ 65535) - 単位: ミリメートル (mm) 深度値の有効範囲(検証結果から推定): - 近距離(ShortThrowToFDepth):0.156 ~ 0.95 m - 遠距離(LongThrowToFDepth) : 0.95 ~ 3.52 m 有効範囲外の深度値を持つピクセルには最大深度値(?)として 4.091~4.095 m が設定される.

Slide 12

Slide 12 text

有効範囲外に入った時の変化(近距離深度) 2018/04/17 12 Before

Slide 13

Slide 13 text

有効範囲外に入った時の変化(近距離深度) 2018/04/17 13 After

Slide 14

Slide 14 text

有効範囲外に入った時の変化(遠距離深度) 2018/04/17 14 Before

Slide 15

Slide 15 text

有効範囲外に入った時の変化(遠距離深度) 2018/04/17 15 After

Slide 16

Slide 16 text

まとめ • Research modeで取得した深度情報を分かりやすく可視化できた • 明暗の違いよりも色の違いの方が識別しやすい • 深度情報の形式と値の有効範囲が分かった • 深度値の有効範囲については追加検証した方が良いかもしれない (or 公式情報を待つ) 2018/04/17 16

Slide 17

Slide 17 text

ありがとうございました