読者です 読者をやめる 読者になる 読者になる

Natural Software

KinectなどのDepthセンサーを中心に活動しています

「Intel Developer Forum 2016」でのRealSense周りまとめ

Intel RealSense

かなり盛りだくさんです。

newsroom.intel.com

  • Intel® RealSense™ Robotic Development Kit:Atomを搭載したROS(Robot Operating System)にも対応する基盤と、R200によってロボット用の環境を作れる。来月(2016年9月?)発送予定。
  • Intel® RealSense™ ZR300 Development Kit:もともとProject Tangoとして開発キットが出ていたものと同じ型番(

    http://www.appmarsh.com/intel-unveils-r200-and-zr300-realsense-3d-cameras/

    )。カメラだけ取り出した?高精度の空間マッピングやモーショントラッキングができるそうです。RealSesen SDK for Linuxとあるので、Linuxで動作する前提のようです。2016年末予定。
  • Intel® RealSense™ Camera 400 Series:現行のSR300の次期バージョン。処理速度が2倍に向上(30→60?)。
  • Intel® Euclid™ Developer Kit:RealSense(型番不明)とAtomを組み合わせた一体型のセンサーモジュール。

これにプラスして「Project Alloy」が発表されました。これはOculus RiftやHTC ViveのようなVRデバイスで、HoloLensのような一体型PCです。

前面にRealSense(400シリーズ?)を2つ搭載しており、RealSenseの機能をそのまま使えるようです。

f:id:kaorun55:20160816092116j:plain

Project Alloy」については、こちらにまとめました。

www.naturalsoftware.jp

 

久しぶりにサイトをのぞいてみると、Robotic KitやAero Platformがあったり、クロスプラットフォームAPIのlibrealsenseが入っていたり、変わっていますね。SR300も見た目がかっこよくなっています。

f:id:kaorun55:20160824111621p:plain

外部記事まとめ

newsroom.intel.com

pc.watch.impress.co.jp

ascii.jp

ascii.jp

japanese.engadget.com

japanese.engadget.com

 

Windows Holographicの開放とIntel Project Alloy

HoloLens Intel RealSense

Intel の IDFで「Intel Project Alloy」(以下Alloy)というVR型のデバイスを発表しました。AlloyはOculus RiftやViveのようなデバイスですが、HoloLensのようなPC入りの一体型のようです。

newsroom.intel.com

前面にRealSenseカメラが2つついているので、カメラシースルーや空間検出、自分の手やまわりにいる人の検出もできるそうです。

これらを「Merged Reality」と名付けています(略すとMRでややこしいです)。個人的にはAugmented Virtuality(AV)なのかな?と思っています。Augmented Virtualityについて探していたら、Intelのサイトもありました。

blogs.intel.com

HoloLensは完全なARではあるが、AVができないので、MRとは言い切れない、という話もあります。AlloyがAV側であれば、2つのデバイスの選択によって、MRを実現できる環境が近づいているのかもしれません。

 

f:id:kaorun55:20160824105329p:plain

(上記サイトより引用)

また、AlloyはWindows Holographicのプラットフォーム上で動作しているそうです。

f:id:kaorun55:20160816092116j:plain

Windows Holographicはプラットフォームとしてサードパーティーに公開するというアナウンスが今年(2016年)6月にありました。Alloyは最初のWindows Holographic例でしょうか。

blogs.windows.com

6月のアナウンス時点では、HoloLensとHTC Vive間の協調動作がイメージされていましたが、IDFのデモではOculus Riftが出ていたので、これも含めてWindows Holographic環境で動作するようになるのでしょうか。

f:id:kaorun55:20160824104316p:plain

どこで発表があったかわからないのですが、来年(2017年)Windows 10 PCでWindows Holographic環境が動作するという話もあります。

jp.techcrunch.com

techcrunch.com

個人的な予想ですが、HoloLensやAlloyのような一体型はOSとしてWindows Holographicが載っていて、Oculus RiftやHTC ViveのようなHMD型はWindows 10 PCに接続してWindows Holographicを動かすようになると思っています。

Windows 10 PCのWindows HolographicはNUCのような、どちらかというと非力なPCでも快適に動くようなので、現状のハイエンドPCが必要な環境と比べて、導入のコストが大幅に下がるのかもしれません。

HoloLensのHPU(Holographic Processing Unit)

HoloLens

HoloLensはCPU(Cherry TrailのAtom)のほかにHPU(Holographic Processing Unit)というプロセッサーが搭載されており、ここでジェスチャーや空間マッピングを行っているようです。

HPUについて公になっている情報はなかったのですが、Hot Chipsというイベントで公開されたそうです。

gigazine.net

原文

www.theregister.co.uk

 

24基のDSPだそうで、そりゃあれだけの処理もできるか。。。

HoloLens 2016年8月の更新

HoloLens

Windows 10 Anniversary Updateに合わせて、HoloLensにも更新がきました。

blogs.windows.com

詳細はこちら。

前回の更新は2016年5月に行われています。

www.naturalsoftware.jp

バージョンは5月の14342から14393に上がっています。

f:id:kaorun55:20160804110738p:plain

 

 

新機能

新しい機能は次の3つです。

  • プロセスにアタッチしてデバッグ
  • HoloLensエミュレーターの更新
  • ゲームパッドのサポート

プロセスにアタッチしてデバッグ

起動しているHoloLensアプリケーションに対して、Visual Studio 2015 Update3からデバッグで接続できるようになります。

HoloLensエミュレーターの更新

あたらしいHoloLensのバージョンでのエミュレーターに更新されています。

ゲームパッドのサポート

Xbox One S用の「Xbox Wireless Controller S」でのBluetooth接続が、新たにサポートされています。日本でのXbox One Sの発売は未定なので、今のところ関係なさそうです(HoloLensも同様ですが)。

 

その他のアナウンス

HoloLens購入枠の拡大

購入の優先順位がつけられていたWaveが6まで到達し、HoloLensのサイトから普通に買えるようになりました(米国、カナダ在住のみというのは変わらず)。いままで開発者のみだったものが、企業も購入できるようになったのは大きな前進ですね。1アカウントで5台まで購入できるようになったことも良い変化です(Waveでは2台まで)。価格、ハードウェアの仕様については、変更ないようです。

www.microsoft.com

 

Microsoft HoloLens Commercial Suite

HoloLensが企業向けに販売されるということで「Commercial Suite」が新たに加わりました。

ハードウェアはDevelopment Editionと同じで、OSが変更になっているようです。

Commercial featuresを見る感じでは、OSのライセンス変更(Windows Holographic Enterprise)により、Commercial Suiteになるようです。

f:id:kaorun55:20160804110056p:plain

Release notesから引用

 

合わせて読みたい

hatsune.hatenablog.jp

HoloLens の空間音響を使う

HoloLens

HoloLensは左右にスピーカーがついており、耳元で音をだすことができます。

ソフトウェア的にも空間音響をサポートしており、カメラ(HoloLens)の位置に対して音源(GameObject)から音が出ているように聞こえます。

例えば、音源が右にあるときは右のスピーカーから、左にあるときは左のスピーカーからという感じです。

空間音響を使う

空間音響は、音源となるGameObjectにAndioSourceを追加し、設定を少しいじるだけです。AndioSourceの設定もスクリプトにしたので、コードなしで立体音響になります。

まず、カメラの周辺にGameObjectを配置し音を鳴らします。

f:id:kaorun55:20160623125527p:plain

それぞれのGameObjcetにAudioSourceを追加し、音声データを設定、「Play On Awake」のチェックを外します。

あと空間音響の設定用にSpatialSoundスクリプトを張り付けています。

f:id:kaorun55:20160623125511p:plain

SpatialSoundスクリプトはこんな感じで、AudioSourceのspatialize、spatialBlendを設定しているだけです。これだけで空間音響になります。

gistecc4c53bdeca5381e41dacf1bc7489c7

HoloLens の音声コマンドを使う

HoloLens

HoloLensには単語の音声認識機能があり、登録した単語を「英語で」発音すると、それを認識します。認識をトリガーにして処理を行うことで音声コマンドを実装できます。

サンプルの実行風景です。英語がアレなので、ちゃんと認識してくれませんが、こんな感じになります。英語の発音の学習には最適かもしれません。。。


HoloLens Voice Command Demo

プロジェクト全体はこちらにあります。

github.com

例によってHoloToolkitを追加します。導入方法についてはこちら。

www.naturalsoftware.jp

音声認識の方法

音声認識はKeywordRecognizerクラスで行います。これはUnityEngine.Windows.Speech名前空間にあります。

KeywordRecognizerに認識させたい単語を登録すると、それを認識したタイミングでイベントが発生します。そのイベントで関連付けた処理を実行すると音声コマンドになります。

Holograms 101を参考に、音声認識した結果によってSendMessageまたはBroadcastするコマンドを実装してみます。

SendMessageは音声認識した際に注視しているGameObjectにSendMessageを発行します。AirTap相当です。

Broadcastは該当GameObjectの子オブジェクトに対してメッセージを発行します。

Holograms 101ではコードで登録していますが、今回はInspectorビューから設定でききるようにしています。コマンドとメソッド名を設定し、コマンドの単語を認識したらメソッド名をSendMessageまたはBroadcastします。

f:id:kaorun55:20160622175634p:plain

Broadcastは子オブジェクトに対して発行するので、空のGameObjectをVoiceCommandとして、Cubeをその下に配置します。VoiceCommandにVoiceCommandManagerスクリプトを貼り付け、認識させたいコマンドと発行するメソッド名を設定します。スクリプトは次のようになっています。

HoloToolkitには音声認識後にイベント(UnityEvent)を発行する仕組みでの実装があります。

gist618a0c184be6f105ab518902afa927cc

音声認識後の処理

次はコマンドを受けた側です。メソッド名に設定した名称のメソッドを作成します。そこにコマンド処理を実行します。

gistc08017e37ad186a415fa2841e93fc25b

 

これで音声で色を変え、ブロードキャストで色を戻す処理ができました。

 

HoloLens の視線カーソル(Gaze)とAirTap(Gesture)を使う

HoloLens

HoloLens の視線カーソル(Gaze)とAirTap(Gesture)を使ってみます。

HoloLensの選択処理は現状これしかないので、なんらかのアプリを作る上では必須の機能となるでしょう。

プロジェクト全体はこちらにあります。

github.com

視線カーソルの種類

今回はHoloToolkitを使用します。HoloToolkitの視線カーソルにはいくつかあり、通常のカーソルや手の検出を見せるカーソルなどがあります。アプリによって使い分ければよいでしょう。

通常のカーソル

f:id:kaorun55:20160622173424p:plain

手の検出を示すカーソル

f:id:kaorun55:20160622173422p:plain

 

視線カーソル(Gaze)とAirTap(Gesture)の追加

HoloToolkitを追加します。導入方法についてはこちら。

www.naturalsoftware.jp

オブジェクトの配置

Hierarchyビューにあるものを削除して、UtilityのMain Camera Prefab、InputにあるCursor Prefab(通常のカーソル)、Cubeを二つ配置します。GestureManagerについては後述します。

f:id:kaorun55:20160622172539p:plain

Cubeはこのように配置します。

f:id:kaorun55:20160622172600p:plain

Transformの値はこんな感じで。もう片方はPositionのXが0.3になってます。

f:id:kaorun55:20160622172634p:plain

GestureManager

GestureManagerは空のGameObjectを追加し、InputのScriptsにある「GazeManager」、「GestureManager」、「HandsManager」を追加しています。

カーソルの使い分けでHandsManager」を入れていますが、Cursor Prefabであれば「GazeManager」と「GestureManager」だけで動作します。

f:id:kaorun55:20160622172913p:plain

以上で視線カーソルとジェスチャーの実装は完了です。この状態で実行すると、Cubeに当たるとドーナツ型になるカーソルができあがります。

クリックされた時の処理を実装する

クリックを検出したら、そのときの視線の先にあるGameObjectに対して「OnSelect」メッセージが発行されます。GameObjectにOnSelectメソッドが実装されているスクリプトを貼り付けます。

例えば今回はAirTapごとに色を変える実装の「CubeCommand」をCubeに貼り付けています。

f:id:kaorun55:20160622173652p:plain

スクリプトの実装は次の通りです。

gist6ef1b1e5fbd40407c8cb9e7683e1a7bb

これでAirTapごとに色が変わるようになります。


HoloLens AirTap Demo1

カーソルを「CursorWithFeedback」に変更すると、手を検出するとモデルが変わるカーソルになります。


HoloLens AirTap Demo2