HoloLens Advent Calendar 2018 7日目の記事です。
今日は、今年流行った? 「勝手にブルームするなよ」 についてです。
「勝手にブルームするなよ」とは?
AI・人工知能EXPO2018でHoloLensを展示していたときのことです。
外国人の方がいらっしゃって、デモを体験したいとおっしゃったので、どうぞどうぞと準備をし、HoloLensを被せました。
すると、慣れた手つきでブルームされて、デモが終了しました( ;∀;) ちょ、おまw
その後、はーたんが来てくれてこの話をした時に、生まれた言葉が「勝手にブルームするなよ」です。
「勝手にブルームするなよ」Tシャツの作成
ちょうどUTme!が流行っていたので、「勝手にブルームするなよ」Tシャツを作りました。モデルは僕の手です。
前本さんがUniteTokyo2018に着ていったことで広がりました!(前本さんが作ったみたいw)
勝手にブルームするなよ。 #unitetokyo2018 pic.twitter.com/SuDtJOnmIT
— Satoshi Maemoto (@peugeot106s16) 2018年5月8日
de:code2018ではこんな感じで、勝手にブルームするなよ団ができるほどに!
勝手にブルームするなよ団 #decode18 pic.twitter.com/AOr1GFJXJA
— Satoshi Maemoto (@peugeot106s16) 2018年5月22日
勝手にブルームできない
そんな中で、RS5が発表されてしまいました。
あ,ありのまま起こったことを話すぜ?ブルームしても一発でアプリが落ちなくなりました!!!ホームボタンを押すことでアプリが落ちます。あとは時刻やボリュームも確認できるようになったのも地味にうれしい… #HoloLens pic.twitter.com/aLqjMwJtee
— デコシ (@Ash_Yin) 2018年7月24日
まだブルームで消耗してるの?と言われるようになりました。
まだブルームで消耗してるの? pic.twitter.com/XMo9PCHSZl
— デコシ (@Ash_Yin) 2018年7月24日
最近のアップデート、本当に大変なことに...
大変です!RS5は勝手にブルームされてもアプリが終わりません! pic.twitter.com/rmNzXucQb8
— Satoshi Maemoto (@peugeot106s16) 2018年11月14日
悔しい...
勝手にブルームさせろよ
ということで、今回Azure Cognitive ServicesのCustom Visionを使って、勝手にブルームできるようにしてみました。
Bloomを学習させる
まずは、手をつぼみにした状態(Bloom前)の画像と、手を開いた状態(Bloom後)の画像をそれぞれ10枚用意しました。
Bloom前を 0
に、Bloom後を 1
としてラベリングしています。
テストしてみた結果がこちらです。99%以上、区別できています。
ソースコード
開発環境は以下です。
- Unity 2017.4.11f1
- HoloToolkit 2017.4.3.0
- Visual Studio 2017 (15.9.2)
ソースコードはこちら。MR and Azure 302b のCustomVisionを参考にしています。
下記ファイルのAPIに関する部分を変更してください。
- CustomVisionTrainer.cs の
trainingKey
,projectId
- CustomVisionAnalyser.cs の
predictionKey
,predictionEndpoint
実行結果
タップしたらキャプチャを開始します。
10秒おきに、キャプチャしてCustom Vision APIをたたいて、結果を表示します。
これを繰り返して、結果が0(Bloom前)から1(Bloom後)になったときにアプリケーションを終了します。[1]
20181207 - HoloLensBloom: https://t.co/r87HiKGzIm via @YouTube
— 藤本賢志(ガチ本) (@sotongshi) 2018年12月7日
めっちゃゆっくり です。スロモブルーム。
10秒おきにキャプチャしているので、しょうがないですね。
ImageCaptureCustom.csのsecondsBetweenCaptures
を変えると速くなるかもしれません。
学習モデルをWinMLに実装するとか。[2][3]
もっと速くするにはOpenCVでハンドトラッキングして、バリバリやったほうがいいと思います。
RS5のブルームが先に反応してうまくいかないかもしれませんね。(二回ブルームしないといけないとか?)
まとめ
- 「勝手にブルームするなよ」とは、HoloLensのデモ中にお客さんが勝手にブルームして、デモを終了させられたときに使う言葉です。
- RS5になってからブルームしても良くなったため、「勝手にブルームさせろよ」が誕生しました。
- Custom Visionを用いて、ブルームするとアプリが終わるように実装してみました。
- ブルームTシャツは期間限定で再出品中ですので、クリスマスプレゼントにいかがでしょうか?
- 「勝手にブルームするなよ」はKumaMCN選 新語・流行語大賞 第2回 2018年 ノミネート語にも選ばれております。
参考文献
[1] HoloLensアプリの終了処理
[2] HoloLensとWindowsMLとCustomVisionを使って手書き認識をしてみる(データ収集編)
[3] CustomVisionを使って手書き認識をしてみる(学習データ利用編)