Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

HoloLensで目論むAugmented Human@.NET Conf 2018 Tokyo

1,452 views

Published on

.NET Conf 2018 Tokyo, Japanで登壇した
HoloLensで目論むAugmented Human
のスライドです。

Published in: Technology
  • Be the first to comment

HoloLensで目論むAugmented Human@.NET Conf 2018 Tokyo

  1. 1. HoloLensで目論む Augmented Human 2018/10/13 .NET Conf 2018 Tokyo TIS株式会社 森真吾
  2. 2. 自己紹介 • 森真吾 • TIS株式会社 戦略技術センター(R&D部門)所属 • 会社でHoloLensやってます • Twitter→@morio36 • Microsoft MVP for Windows Development • 複合現実感研究委員会(SIG-MR)委員 • HoloMagicians
  3. 3. HoloLensミートアップやってます!次回12/15!
  4. 4. はじめに
  5. 5. Augmented Humanってなに?
  6. 6. Augmented Human(AH)とは • 東大暦本教授が提唱している考え方 ※森自身は特に暦本研と接点なし “医工学の分野では電子義足や人工内耳などの技術開発 が進 展していますが、本研究室では人間とネットワークや情報技術 との一体化に着目しています。これをオーグメンテッド・ヒューマ ン (Augmented-Human)と呼んでいます。” 暦本研究室HPより引用 https://lab.rekimoto.org/about/
  7. 7. HoloLensを使って、 人間の知覚、能力を 拡張した(い)話
  8. 8. WindowsMLについて
  9. 9. WindowsMLとは 必見!
  10. 10. WindowsMLとは 必見! https://www.microsoft.com/ja-jp/events/decode/2018/online/archive.aspx
  11. 11. WindowsMLとは • 学習済みモデルをクライアント側で実行するためのフレームワーク •10月上旬、RS5が公開開始し、 パッケージが Windows.AI.MachineLearning.Preview; から Windows.AI.MachineLearning; になりました!(Previewが消えた) •とはいえまだいろいろあるので・・・ https://docs.microsoft.com/en-us/windows/ai/
  12. 12. WindowsMLとは • 使用できるONNXバージョンに制約がある模様 •実験①下記の1.0、1.2をそれぞれインポート https://github.com/onnx/models/tree/master/emotion_ferplus どちらもWrapperクラスの 生成に成功!
  13. 13. WindowsMLとは • 実験②下記のモデルをインポート https://gallery.azure.ai/Model/FER-Emotion-Recognition mlgen failed: Missing opset in the model. 発生。
  14. 14. WindowsMLとは • ONNXモデルを見てみる。下記のブラウザ版を使用。 https://github.com/lutzroeder/netron わからなかった・・・ ONNXのバージョン??
  15. 15. HoloLens+WindowsML関連情報の取得 • HoloLensでCustom Vision Serviceを使った オフライン推論を試した話 https://www.slideshare.net/TakahiroMiyaura/hololenscustom-vision-service •HoloLensでWindowsMLを試してみる(Unity利用編) http://akihiro-document.azurewebsites.net/post/hololens_windowsmachinelearningunity/ •「モデルを取りこんだら簡単に使えるよ」ってほど簡単でもない。 CustomVisionからエクスポートしたモデルならまだ取り扱いは楽だけど・・・
  16. 16. HoloLens+WindowsML関連情報の取得 タグと確率が返ってくるだけ なのでわかりやすい。
  17. 17. HoloLensのWindowsML事情 • HoloLensはRS5公開がまだ ※2018/10/13現在 最新版(Previewじゃないやつ)を使いたければ、 InsiderPreviewの適用が必要。 http://bluebirdofoz.hatenablog.com/entry/2018/07/25/084022
  18. 18. なにはともあれ、AHしてみた
  19. 19. 動画
  20. 20. アプリケーションの機能 •カメラに写っている人物の表情を認識 •表情に合わせた絵、エフェクトを表示 「鈍感な僕でも人の感情を把握できる!!! これぞ人間拡張だ!!!!」
  21. 21. イメージはこれ Sight - a short film by Eran May-raz and Daniel Lazo https://www.youtube.com/watch?v=OstCyV0nOGs
  22. 22. 関連情報 •元論文 Training Deep Networks for Facial Expression Recognition with Crowd-Sourced Label Distribution https://github.com/Microsoft/FERPlus •ONNXモデル(今回、下記のONNX Version1.2を使用) https://github.com/onnx/models/tree/master/emotion_ferplus •参考UWPアプリ https://github.com/ChangweiZhang/Awesome-WindowsML-ONNX- Models
  23. 23. アプリ実装について
  24. 24. 開発環境 •Unity: 2017.4.8f1 •HoloToolkit:使ってません •Visual Studio:15.8.6(※) •HoloLens:10.0.17134.111(RS4) ※PCはRS5に上げたが、HoloLensがRS4のままのため、 ビルドのターゲットバージョンは17134(RS4)で実施
  25. 25. アプリ構成 ①WebCamTextureで 写真撮影 ②画像を元に推論実行 ③推論結果を数値化 ④結果を元に画像・ エフェクト表示 <Point> 通信不要
  26. 26. コーディング • 前述したホロラボ社アキヒロさんのブログが非常に有用。 モデル活用部分はだいぶコピれる。 ※RS4時点での実装のため、最新環境で実装する場合には注意。 • HoloLensでWindowsMLを試してみる(Unity利用編) http://akihiro-document.azurewebsites.net/post/hololens_windowsmachinelearningunity/
  27. 27. コーディング • メイン処理は画像取得と推論処理 • この2つの処理が個別スレッドで実行され続ける • 推論完了し、画面描画する際にUnityAPIの描画処理をコール バッファ領域 Unity側API WebCamTextureで取得した カメラ画像をひたすら格納する UWP側API バッファに格納された画像を ひたすら推論する。 推論完了したらバッファクリア 描画呼び出し 格納 取得 消去
  28. 28. Wrapperクラス • VisualStudioで自動生成。生成用に個別PJ作った。 bind周りの処理は アキヒロさんblog とちょっと違う 環境の都合上、 Wrapperクラスだけは RS4のモデルで生成
  29. 29. ONNX利用のための事前処理、事後処理 64x64のグレースケール 戻り値をSoftMax関数通してね
  30. 30. ONNX利用のための事前処理、事後処理 •事前処理で、RGB画像をモノクロ変換 http://www.noshimemo.com/entry/image-processing •リサイズしなくても使えたからそのまま使った・・・
  31. 31. ONNX利用のための事前処理、事後処理 •事後処理で、確率算出する処理(SoftMax関数)を実装。 SoftMax関数=数値の並びを確率に変換するための関数 (機械学習界隈ではよく知られた関数のようです) 3.968127 0.02596408 -2.957808 3.576429 1.515554 -1.03024 -3.516108 -1.154131 0.556904 0.01080739 0.000546871 0.376416 0.04793373 0.003758521 0.0003129091 0.003320565 百分率に変換 neutralが 55.69%で最大
  32. 32. ONNX利用のための事前処理、事後処理 •Softmax関数はコピった。 https://github.com/ChangweiZhang/Awesome-WindowsML-ONNX-Models MathF.Expだけ UnityのAPIに変更
  33. 33. 画面の描画まわり •取得した推論結果を元にswitch文書いただけ。 UWPのTaskからUnityAPI叩いてるので、 UnityEngine.WSA.Application.InvokeOnAppThread内に実装。 •左上の猫の絵はいらすとや •パーティクルはこちら(Free)
  34. 34. ビルド!! •HoloLensのバージョンと「ターゲットバージョン」を合わせる •Unity側も注意
  35. 35. 改善案 •INPUTのリサイズすればもっと高速かつ精度上がるかも (改善というか、必須ですね。。) •「知りたいときに知りたいことを提示する」のがARの本質 文脈を把握してON/OFFできたらいいな。
  36. 36. 改善案 •例えばJINS MEMEでやってみたアイトラッキングとか、 OpenCVで顔検知した時だけ流すとか。
  37. 37. 改善案 •FaceAPIと合わせて、個人特定と表情認識して さらにDB登録しておくとか。 •一日集計して「こんなんだったで。もうちょい笑わせよう」とか。 •ストレスチェックに使ったり? 今のHoloLensのサイズ、バッテリーでは無理。 だが、デバイスは必ず進化する!! Augmented Humanの時代がやってくる!!
  38. 38.
  39. 39. 最初にやりたかったこと •Tiny-YOLOで物体認識したかった。 単純にHoloにデプロイ したところ、一瞬動い てすぐ停止・・・。 モデルにもまだ いろいろありそう。
  40. 40. 本当に重要なこと •ローカルで動作する •任意のモデルを利用できる モデルを簡単に利用できるような、 もう一枚間に入るものがあれば ビジネスになりうるのでは?
  41. 41. その他、やってみたこと
  42. 42. de:code 2018で話したやつ
  43. 43. まとめ
  44. 44. まとめ •WindowsMLの機能を用いて、HoloLens単体で 機械学習モデルを動かした •実装はまだそれなりに大変・・・ だけど我々MVPはこういう新しいのどんどん使って 耕していきます。期待してね! •PCはRS5、HoloLensはRS4の過渡期 •レイテンシや通信発生を気にしなくてよいのなら AzureのAPIを使うのが楽
  45. 45. Let’s Augment!!

×